Web3系列研究 | 中国信通院程彤彤:Swarm——去中心化应用的坚实后盾
一、目标愿景
中心化存储难以满足大规模存储数据的需求。一是随着用户数量以及数据体量的急剧膨胀,急需一个功能强大、运行安全和分散快速的内容存储和分发系统为分布式应用程序提供服务。二是面对飞速发展的互联网,整个生态应用不断革新,数据不断增加,导致中心化存储遭受巨大的存储和带宽压力。三是庞大的中心化存储受成本和地理位置的影响,制约了数据的快速流通,让数据隐私性与安全性受到威胁。
二、解决方案
1、Swarm合约组件
图1 Swarm核心合约机制
Swarm 通过三个基本合约提供用户自由交换数据的环境。Swap通过交换合约记录带宽的使用情况,通过激励手段奖励服务提供者,加速高热度内容的快速传播与获取。Swear利用合约处理数据的长期存储,节点既可以在Swarm上进行存储数据,也可以为其他节点提供存储空间。Swindle基于欺诈合约解决存储过程中的恶意行为,对破坏存储环境的节点进行处罚。通过三个关键的智能合约,Swarm 提供了一种职责明确的分发和存储方案。
2、Swarm核心架构
Swarm为去中心化互联网提供可扩展的存储基础设施。通过存储基础设施的构建,以达到一个自主权的全球社会和无需授权的开放市场。Swarm利用点对点存储和通信来扩展当前的区块链存储容量,以此实现一个能够为去中心化应用提供操作系统和部署环境的世界电脑。图2展示了Swarm的核心应用层。
图2 Swarm核心架构层
DISC(Distributed Immutable Storage of Chunks)是Swarm的底层存储模型。存储使用节点与存储服务提供节点通过DISC组建了庞大的Swarm网络,任何拥有多余存储空间及带宽的节点都可以参与Swarm网络建设,并由此获得奖励。DISC的强隐私保护、强防御措施、自动扩展、完整性保护、自适应遗忘的特性由下列几项技术实现。
DISC建立和维护所有节点之间数据交互的通信网络。DISC通过使用P2P网络协议实现节点之间信息交互。Swarm节点通过Kademlia(一种P2P覆盖网络传输协议)协议连接到其他节点集时,节点对该目标节点集地址做出是否搭建的判定,最终找出数据传输的全局最优路径。
小体积存储块构建Swarm基本存储单元。存储块最多由4Kb的数据组成,并且附有相应地址。Swarm存储方案要求每个块都由多个节点冗余存储,从而保证数据的安全性。为了实现数据的保密性,存储块可以在填充到4千字节后进行加密,通过非明文手段保护传输数据的安全。
记账协议确保Swarm节点协作路由,节约网络带宽资源。当节点转发请求和响应时,数据传输会占用主网的传输带宽。当带宽需求达到阈值时,服务需求者既可以选择等待,也可以通过激励手段获得优先传输的机会,既可以保障低数据量的节点低价或免费使用Swarm进行下载或上传,也可以为高数据量的节点提供更迅捷的付费存储体验。
自适应清理Swarm系统的无效数据存储块。每个Swarm节点通过“储备”和“缓存”两个系统实现存储块的自适应清理。“储备”是固定大小的存储空间,专门用于存储属于节点邻域的块。“缓存”的作用是保留不受“储备”保护的块。当容量达到限度,缓存就会被定期清理,长时间未被请求的块将被删除。通过“储备”和“缓存”最大限度地提高DISC的存储效率。
(2)Swarm应用接口
Swarm通过接口满足应用层的多种需求,实现自身API与现有web功能API的镜像,其新功能和数据结构都可以通过映射与现有web功能实现对应。
Swarm使用文件清单表示文件集合。清单对字符串及其引用内容的映射进行编码,以便对目录树、键值对存储或路由表进行建模,使Swarm能够实现文件系统、数据库,甚至是网站和分布式应用所需要的虚拟主机等功能。
Swarm具有追踪更新订阅接口。当web应用或网站通过更新而获取新的Swarm引用地址时,ENS中注册的引用地址就会相应地更新。这样用户就可以不用频繁地与区块链交互,实现订阅的内容更新,避免每次更新需要的交易花费。
Swarm提供点对点消息通信接口。Swarm利用数据接收者地址信息对待传输数据进行加密,一起封装成一个基于内容寻址的数据块。由于数据块的地址本身落在接收节点集的范围,依据传输协议,数据块会被Swarm系统点对点传递。
三、项目历程
2015年,以太坊创始人Vitalik Buterin提出Swarm项目理念和设计蓝图。 2020年,Swarm基本完成现行主网基本网络框架搭建。
2020年6月,发布Swarm Alpha版本。
2020年11月,发布Swarm Live版本,此版本增强了稳定性,改善了Swarm1.0的所有高级功能。
2021年5月,区块浏览器测上线。
四、思考评论
Swarm通过奖惩手段实现对参与数据存储节点的监督。区块链只负责监控矿工工作量的完成情况并予以奖惩,但是无法弥补因恶意存储节点破坏,造成的数据与经济损失。Swarm利用智能合约实现监督机制,通过智能合约来处理节点的押金支付,并且保留强制性措施作为对恶意行为的威慑,使存储双方对特定内容单独负责,有效提高数据存储的安全性。
程彤彤 | 博士
中国信息通信研究院工业互联网与物联网研究所技术部工程师
主要从事工业互联网、标识解析、区块链存储等领域研究和产业推进工作。
Web3专题系列介绍
校 审 | 陈 力、珊 珊
编 辑 | 凌 霄
推荐阅读