行业新闻

​Web3系列研究 | 中国信通院程彤彤:Swarm——去中心化应用的坚实后盾

​Web3系列研究 | 中国信通院程彤彤:Swarm——去中心化应用的坚实后盾

 一、目标愿景

区块链演进受限于存储模式的发展。现阶段,区块链链上存储空间资源稀少,存储成本极高,同时,区块链作为新一代互联网必不可缺的核心技术与新型基础设施,设计一个去中心化的分布式存储系统来实现稳定持久的数据存储和交换是十分迫切的。

中心化存储难以满足大规模存储数据的需求。一是随着用户数量以及数据体量的急剧膨胀,急需一个功能强大、运行安全和分散快速的内容存储和分发系统为分布式应用程序提供服务。二是面对飞速发展的互联网,整个生态应用不断革新,数据不断增加,导致中心化存储遭受巨大的存储和带宽压力。三是庞大的中心化存储受成本和地理位置的影响,制约了数据的快速流通,让数据隐私性与安全性受到威胁。

Swarm为区块链应用数据提供去中心化存储服务。Swarm作为以太坊生态原始成员之一,为以太坊生态提供去中心化的内容存储与分发网络。Swarm会将存储的文件数据分解为多个数据块,由参与的存储节点进行数据储存。存储服务的提供者会从服务的使用节点获得收益。

二、解决方案

Swarm 激励系统围绕 Swap (交换)、Swear (保证)、和 Swindle (欺诈)三个重要合约组件建立而成,其运行机制如下 :

1、Swarm合约组件

图1 Swarm核心合约机制

Swarm 通过三个基本合约提供用户自由交换数据的环境。Swap通过交换合约记录带宽的使用情况,通过激励手段奖励服务提供者,加速高热度内容的快速传播与获取。Swear利用合约处理数据的长期存储,节点既可以在Swarm上进行存储数据,也可以为其他节点提供存储空间。Swindle基于欺诈合约解决存储过程中的恶意行为,对破坏存储环境的节点进行处罚。通过三个关键的智能合约,Swarm 提供了一种职责明确的分发和存储方案。

2、Swarm核心架构

Swarm为去中心化互联网提供可扩展的存储基础设施。通过存储基础设施的构建,以达到一个自主权的全球社会和无需授权的开放市场。Swarm利用点对点存储和通信来扩展当前的区块链存储容量,以此实现一个能够为去中心化应用提供操作系统和部署环境的世界电脑。图2展示了Swarm的核心应用层。

图2 Swarm核心架构层

(1)分布式不可变存储块

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系统点对点传递。

Swarm提供数据持久化保存和恢复接口。Swarm通过固定大小的数据块,保证任何节点可以让特定内容在本地持续存储,被固定的本地存储内容通过传输接口,可以主动或被动的参与到数据恢复中,从而使存储所有者产生收益,激励节点用户持续维持数据的保存与恢复。

三、项目历程

  • 2015年,以太坊创始人Vitalik Buterin提出Swarm项目理念和设计蓝图。
  • 2020年,Swarm基本完成现行主网基本网络框架搭建。
  • 2020年6月,发布Swarm Alpha版本。
  • 2020年11月,发布Swarm Live版本,此版本增强了稳定性,改善了Swarm1.0的所有高级功能。
  • 2021年5月,区块浏览器测上线。

四、思考评论

受到以太坊需求的影响,Swarm能更有效支撑DAPP的应用发展。Swarm能够在不干扰区块链信息的情况下,协助DApp存储和分发代码、数据及内容。Swarm网络会把数据分成小块,分散存储在整个网络中,使得节点运营商无法知道节点上存储了哪些内容,用户拥有数据所有权和管理权。

Swarm通过奖惩手段实现对参与数据存储节点的监督。区块链只负责监控矿工工作量的完成情况并予以奖惩,但是无法弥补因恶意存储节点破坏,造成的数据与经济损失。Swarm利用智能合约实现监督机制,通过智能合约来处理节点的押金支付,并且保留强制性措施作为对恶意行为的威慑,使存储双方对特定内容单独负责,有效提高数据存储的安全性。

Swarm的初始定位使其严重依赖以太坊网络。Swarm的定位是以太坊生态系统的三大支柱之一,它的发展受到以太坊系统的支持与影响,其出现的驱动力也是为了满足以太坊生态系统的正常运行。因此,Swarm可以借助以太坊庞大的生态圈快速发展,但同时,其发展路径也会受以太坊的制约。

关闭