原文作者:Leo, IOSG Ventures
Arweave 协议设计从技术上保证永久存储的实现,更适用于高价值数字资产,如 NFT metadata 的保存
数据存储之上,更需要计算。随着智能合约和可编程性的引入,去中心化数据存储网络的发展已经进入「不仅仅是存储」的新阶段
实现存储数据冗余,Filecoin 诉诸经济激励手段,Arweave 则借助协议设计
FVM 为 Filecoin 带来存储金融,将存储空间和时间商品化,用户可以提前锁定成本,存储供应商也能提前回笼资金,并根据远期需求规划管理库存、硬件、运营
计算机网络发展的主流,无外乎数据计算,传输,存储三个方向。Web3 发展时至今日,去中心化数据存储协议的发展有目共睹。Filecoin 于 2023 年 3 月 14 日 2, 683, 348 Epoch 高度正式在主网发布了兼容 EVM 的 Filecoin Virtual Machine (FVM),将智能合约和可编程性带入 Filecoin 网络,去中心化数据存储协议的发展已经进入了「不仅仅是存储」新阶段。
去中心化数据存储协议有很多,最引人注目的唯属 Filecoin 和 Arweave,针对 FVM 发布赋予 Filecoin 的新特性,我们在本文中逐一进行讨论。
永久存储在 Web3 中有特别的意义和需求,高价值的数字资产如 NFT Metadata 须要被永久保存。
Filecoin 在 FVM 发布后,强调了永久存储(Permanent Storage)的特性。我们理解的 Filecoin 永久存储是通过经济手段在理论上实现长期保存,但在 Filecoin 协议设计层面没有太多改动。在 Filecoin 当前设计中,存储订单是在存储供应商和存储需求者之间链下撮合链上记录的,订单包含的信息有数据大小、存储时间、订单价格和抵押物。若想所存数据在订单所定义的存储时间到期后被继续保存,存储需求者不得不人为手动地提交更新订单。但 FVM 发布后,订单可以在链上得到自动续费更新。Lighthouse 是致力于实现 Filecoin 上永久文件存储的项目,用户只需付费一次,文件即可「永久」保存。Lighthouse 通过基于智能合约的捐赠池(endowment pool)来为文件持续支付存储费用。当用户创建订单并付费时,金额的一部分交给存储供应商,剩下的部分则进入捐赠池。捐赠池智能合约将在订单到期时自动续约并用捐赠池中的金额付费,以此实现「永久存储」。这个设计的可行性在于捐赠池会通过质押、farming 等方式实现池内资产增值,随着时间流逝,增值的部分足以覆盖存储的开销。这与 Arweave 黄皮书中对于存储成本的假设类似,即存储费率会不断下降,存储需求者支付金额的增值足以涵盖永久存储的开销。
「过去 50 年,存储费率以年均下降 30.57% 」。
Arweave Yellow Paper: 自 1980 年来,每保存 1 GB 数据 1 小时的成本(log scale)
Arweave 则是在常见的区块链数据结构上引入了命名为 Blockweave 的设计,通过协议设计从根本上来实现数据被永久存储。Blockware 中,链上的每一个区块(除了最新确认区块和正在被挖的候选区块)会和另外三个区块相连,分别为前序区块、后序区块和召回区块(recall block)。对某一高度的区块而言,召回区块可以是 Blockweave 中该高度区块以前的任意历史区块。在矿工挖新块时,召回区块的选择是由前序区块高度和哈希随机决定的。召回区块在 Arweave 所采用的共识机制——随机访问简洁证明(Succinct Proof of Random Access — SPoRA)中扮演了重要的角色。在 Arweave 中,矿工不必保存所有历史区块(即保存所有历史区块非参与挖矿的必要条件),但矿工本地保存有被随机选中的召回区块是矿工参与候选新块挖矿的入场券。召回区块功能上类似于随机抽查矿工是否保存有历史某一区块的内容,从而实现历史数据的永久存储。
Arweave 的永久存储是根据协议设计从技术上来保证的,相较于 Filecoin 的永久存储是更 robust 的方案,也是 Web2 科技巨头 Meta, Instagram 和 Web3 应用 Mirror 选择 Arweave 作为其 NFT、内容的存储方案的主要原因。
数据保存了,更重要的是使用。Filecoin 和 Arweave 的愿景远不仅是「去中心化网盘」(然而当前大部分存储需求者仅仅将其用作于此),更要做兼具低成本存储和高吞吐计算的区块链协议。数据存储之上,Web3 Dapps 还需要计算。
Filecoin 和 IPFS 在遍布世界各地的存储供应商之间分发内容寻址的(content-addressed)数据集,以增加数据的冗余性和弹性。这种去中心的数据分布,带来了成本、可用性和可靠性的优势,但随之而来的问题是单个数据集的各部分被存储在地理位置相距较远的各个存储供应商处。广泛而分散保存的数据集不利于在数据之上执行计算或查询索引的操作。但是将高度分散的数据重新组合到一个中心以对其进行计算是昂贵、浪费、性能低下且违背去中心化存储原则的。Filecoin 上 EVM 兼容的 FVM 提出了边缘计算(edge computation)结合链上协调执行计算的方案。FVM 中的合约可以代理经纪计算资源、激励计算执行、在可用存储供应商之间分配工作负载,并证明计算结果的有效性以获得奖励。存储供应商可以通过 FVM 合约注册参与去中心化计算网络。计算客户端会将计算任务发布到合约。合约定义的机制会将计算任务分配给注册参与计算网络的存储供应商,当完成计算,存储供应商将发布证明来获得报酬。
Arweave 上的去中心化计算通过 SmartWeave 智能合约协议实现,具备直接处理丰富数据的能力。SmartWeave 和其他区块链智能合约协议的主要区别是「Lazy Evaluation ( 惰性计算 )」,将智能合约执行计算的负担从网络节点转移到智能合约用户。惰性计算的好处是显而易见的,通过将存储和计算解耦,节点不需要保存不断增长的全局状态。智能合约可以在被使用时才由用户计算、验证最新状态,而不需要参与链上共识的每个节点都进行计算、验证。将计算下放给用户,区块链的可扩展性也得到了提升。Warp 开发了一套基于 SmartWeave 初始版本的 Warp SDK,相较于原生版本提升了性能和模块化程度,并允许不同的执行环境。
Warp 近期发布了 2023 年路线图,开发目标包括:
1 )Layer 1 同步器:实现 Warp 合约与基础 Arweave 层的高效同步;
2 )Layer 2 排序器,与其将数据直接发到 Arweave 主网(可能等待 2 ~ 3 分钟区块时间直到数据被打包进下一个新挖区块),数据交易被导向 Warp 排序器,再通过 Bundlr 网络,交易可以立即结算,为用户提供数据的即时访问和近乎即时的最终确定性;
3 )合约增强改进,Warp contract 旨在为 Web3 Dapps 提供功能齐全的技术堆栈,以与 Web2 服务竞争;
4 )开发委托解析环境(Delegated Resolution Environment)和聚合节点,委托解析环境允许对高交互和 / 或不安全合约进行计算委托,聚合节点则提供合约状态信息的监测和洞察。
去中心化数据存储网络避免了单点故障,但如何保证各节点 / 各存储供应商真实有效地保存了存储需求者的上传数据?并让多个节点 / 存储供应商分别保存上传数据以实现存储冗余和可靠性?Filecoin 和 Arweave 采取了不同的方案,Filecoin 诉诸经济激励手段,Arweave 则借助协议设计。
FVM 发布亮点中介绍了Replication Worker(数据复制工作者), Repair Worker(数据维修工作者)。在 FVM 发布前,如果存储需求者希望在网络节点中备份他们的数据,以最大限度地提高数据在存储供应商出现故障时被保存下来的机率,需求者必须繁琐地与供应商链下撮合 N 次订单,执行 N 次链上交易,并密集耗费资源传输 N 次数据。在 FVM 发布后,数据复制工作者将作为中介,仅收取少量费用来实现数据冗余,为存储需求者节约时间和开销。复制工作者会根据需求者所选择的备份数量、存储地理区域、延迟要求、价格范围等条件,自动在 Filecoin 网络上撮合并生成存储订单。数据维修工作者则可以作为需求者的代理,监控存储数据是否丢失或过期,并根据需求者的设置将低于冗余阈值的数据自动复制备份到更多存储供应商,还可以代表存储需求者更新已过期或终止的存储订单。
Arweave 的存储冗余是通过协议设计自然实现的。Arweave 将召回区块作为随机访问简洁证明(SPoRA)工作量算法输入的一部分,保证挖得新块的矿工确实保存有召回区块的所有数据。SPoRA 共识机制鼓励矿工在其存储空间能力范围内尽可能多地保存历史区块和 Blockweave 数据。但若矿工的存储能力不足以保存所有历史区块和完整 Blockweave 数据,矿工会优先保存被其他矿工较少保存过的区块,因为当一个被较多矿工保存了的召回区块被选中时,较多矿工会同时参与挖新块的竞争;而当一个被较少矿工保存了的召回区块被选中时,竞争会相对较小。又因为召回区块的选择是高度随机的,任一召回区块被选中的几率是离散均匀分布的,因此在存储能力受限的情况下,理性矿工应该优先保存被较少保存过的区块以提高其挖得新块的几率来获得区块奖励。Arweave 的协议通过精巧设计和经济激励,让 blockweave 和所有历史区块能够在整个网络所有矿工存储能力范围的约束下,尽可能地将任一历史区块被最大化地备份,保证了 Arweave 去中心存储网络的可靠性和数据冗余。
数据保存了,如何高效、准确、快速地取回数据是另一个问题。
Filecoin 中数据检索服务是一套单独的经济激励系统。Retrieval Provider(检索供应商)负责为存储需求者提供对其数据的快速访问。检索供应商专注于快速访问数据,而不是长期存储。大多数存储供应商同时也是检索供应商。需求者向检索供应商付费以获取数据。Filecoin 生态中已有 retrieval.market 和 Saturn Network 等项目实现数据的快速检索和内容分发。
Arweave 的 SPoRA 共识机制除了上述永久存储和存储冗余的优点,也一石三鸟地提高了数据检索和访问速度。在升级 SPoRA 之前,Arweave 的可访问证明(Proof-of-Acces — PoA)旧共识机制解决了如何激励矿工尽可能多地存储数据的问题,但并没有激励矿工快速检索存储数据。事实上,在 PoA 时期,矿工们将存储资源归集起来做了存储池,存储池里保存历史区块。当某一召回区块被选中,存储池在被矿工请求时向矿工发送该召回区块的内容。这是不利于网络去中心化的。Arweave 网络统计曾出现了全网哈希算力增长的同时节点数量却下降的情况,间接证明了存储池的存在。为解决这个问题,也为鼓励各个矿工在本地存储数据,Arweave 将 PoA 升级成了 SPoRA。升级 SPoRA 后,选择不在本地存储历史区块数据的矿工向存储池(需要极多次地)请求并传输召回区块,传输数据的成本和时间极大增加,而在本地存储了历史区块数据的矿工能有较高的几率挖得新区快。从机制设计上杜绝了存储池的存在。而分布世界各地的矿工节点在本地存储历史区块数据,也提高了存储需求者对数据的检索和访问速度。
随着 FVM 的发布,Filecoin 上可以引入包括 DeFi 在内的众多 Web3 应用,例如质押协议、保险协议、存储衍生品等。Filecoin 中的存储供应商需要抵押一定数量的 FIL 作担保才能提供存储服务,在过去存储供应商要么筹钱购买 FIL,要么依赖链下的借贷合同借得 FIL。但借助建立在 FVM 上的质押协议,FIL 代币持有者可以将闲置 FIL 存入协议中,并制定规则和条款,任意规模的存储供应商可以根据这些规则和条款在链上获得 FIL 来筹集足够抵押数量的 FIL,以开展存储服务。存储衍生品是另一个很有趣的应用场景,动态的存储开销给存储需求者和存储供应商都带来了统筹预算的挑战。将存储空间和时间商品化(commoditize),存储需求者可以提前锁定存储成本,存储供应商也能提前回笼资金,并根据远期需求提前规划管理库存、硬件、运营和财务。
Filecoin 当前全网共有 3678 个节点提供约 19.544 EiB 的存储空间,而 Arweave 全网共有 112 个节点实际保存了 125.62 TiB 的数据。从规模上看 Filecoin 网络更大,但 Filecoin 和 Arweave 虽同为去中心化数据存储协议,但他们有着不同的定位,不能简单地诉诸网路节点多少或规模大小来比较。
Protocol Labs 将 Filecoin 定位为 Storage Marketplace 和 Incentive layer,围绕 Filecoin 做了完善的存储市场、检索市场、金融产品等,通过经济激励设计来实现丰富的产品功能(如永久存储、存储复制与修补等),致力于成为最大最重要的去中心化的数据存储、分发、计算协议。Arweave 最重要的定位则是永久保存数据,并基于最底层的 Arweave 开发智能合约协议实现对数据的计算。所有的机制设计均为这个最重要的目标服务,从前面几个特性的介绍中,不难体会到 Arweave 的设计是精巧而统一的。
相较于以太坊生态和以太坊虚拟机的突飞猛进,去中心化数据存储网络的发展在过去几年略显平淡。在 Filecoin 和 Arweave 生态中有很多优秀的项目和创业者,但是现在 Web3 Dapps 的存储方案并没有大规模采用 Filecoin 和 / 或 Arweave,很多 Dapps 依然依赖 Web2 存储方案。在解决存储的区块链上做计算是一个新颖的路径,不论是 FVM 还是 SmartWeave,都具备让开发者解锁前所未有的去中心化应用的潜力。作为开发者或用户,使用哪个去中心化存储协议并不是二选一的问题,而是应该根据应用和内容的存储需求来选择。Filecoin 和 Arweave 的定位虽有重叠的地方,但更能在各自独到之处精进发展,满足持续演进的去中心化网络存储需求,实现从「去中心化网盘」到去中心化服务器的愿景。