邓小铁课题组、孔雨晴课题组 ICDCS 2022 入选论文解读:FileInsurer:可扩展且可靠的区块链去中心化文件存储协议
本文是 ICDCS 2022 入选论文 FileInsurer: A Scalable and Reliable Protocol for Decentralized File Storage in Blockchain 的解读。文章创新性地提出了一种区块链去中心化文件存储协议,命名为 FileInsurer,在通过分布式存储确保可扩展性的同时,通过增强鲁棒性和全额补偿文件丢失损失来保证可靠性。
论文链接:https://arxiv.org/abs/2207.11657
01 概 述
文件存储是分布式系统中的一个基本问题。随着区块链和元宇宙技术的发展,文件数据的财产属性变得越来越重要。以数字藏品为例,如果数字藏品的源文件丢失了,那么数字藏品的价值也随之消失。因此,保证文件存储的可靠性是区块链与元宇宙中一个十分重要的问题。
人们传统将文件存储在本地或云存储服务中。然而,本地存储难以保证文件的安全和可访问性;而云存储缺乏透明度并且不受信任,用户很难知道应该存储多少文件备份以保证安全,不仅如此,文件丢失在云存储中也经常发生。
由于本地存储和云存储的缺陷,越来越多的用户开始选择将文件存储在基于区块链的去中心化存储网络(Decentralized Storage Network, DSN)中。然而,现有的 DSN 协议仍然不能很好地保证可靠性。当文件丢失时,这些文件的所有者只能独自承担文件丢失的损失,而几乎不会得到来自 DSN 的赔偿。该论文提出了一种新的 DSN 协议,旨在从两个角度提高去中心化文件存储的可靠性。
第一,为存储在 DSN 中的文件建立保险。根据保险计划,我们要求存储提供者在存储文件之前为她们的硬盘抵押押金。如果文件丢失,意味着所有存储该文件的硬盘都已损坏,这些硬盘的押金可以完全弥补丢失文件的损失。
第二,通过确保存储随机性来实现可证明的鲁棒性。 存储随机性要求 DSN 随机选择副本的存储位置,使这些位置均匀分布。存储随机性保证了即使攻击者只想破坏一小部分文件的所有副本,她们也必须腐化相当一部分文件提供者的硬盘。这样的设计同样也减少了存储提供者需要提供的押金数量,在保证存储可靠性的同时保证了矿工有更强的动机参与该协议。
02 主要贡献
低成本地在网络节点中存储动态内容:FileInsurer 支持以低成本在磁盘中存储动态内容,这是存储随机性所必需要求的。FileInsurer 提出动态副本(DRep)以支持快速在存储中添加、换入和换出文件。DRep 还能够抵抗女巫攻击并确保网络中硬盘的空间确实可用。
基于存储随机性的可证明的鲁棒性:FileInsurer 可以实现可证明的鲁棒性。在 FileInsurer 中,文件副本存储在扇区中,当且仅当该文件的所有副本都已不可用时,该文件才会丢失。而只要存储文件的硬盘有任何位置损坏,网络将会认为其损坏并扣除押金。在常见的条件下,我们证明即使有一半的存储崩溃,需要赔偿的丢失文件比例不超过千分之一。
DSN 上的保险计划:FileInsurer 在 DSN 上实施了一项保险计划,可以为丢失文件的损失提供全额赔偿,赔偿由所有崩溃存储扇区的押金支付。我们的理论分析表明,只需很小的押金率即可覆盖网络中的所有丢失文件的赔偿。
03 在磁盘中存储动态内容
在 FileInsurer 的协议设计中,每个网络节点中存储的内容是随时间变化的。FileInsurer 通过将文件存储为多个副本来抵御女巫攻击,这些副本是由复制证明(PoRep)生成的,本文使用了由 Filecoin 提出的 PoRep,具体细节可以参考 [1]。FileInsurer 需要存储提供者其声明的空间(包括已使用容量和空闲容量)确实可用。一个简单的想法是对整个空间进行复制证明。每当内容变化后重新对空间进行复制证明。然而,这不是一个可用的解决方案,因为它会给存储提供商带来极高的负担,因为 PoRep 本身非常消耗算力并且其消耗和证明的空间大小成正比。我们提出了一种新的解决方案,称为动态副本(DRep)来解决这个问题。与 Filecoin 不同的是,我们不会将整个空间编码为副本,而是将空间存储的每个文件编码为不同的副本。我们将容量证明副本(CR)定义为 PoRep 生成的固定大小的全零文件的副本。当一个扇区被注册时,它需要填充有 l 个不同的 CR 充满整个扇区。在扇区正常工作时,要求该扇区在空闲空间保存尽可能多的 CR 使得一个扇区不可证明空间小于一个 CR 的大小。图1展示了 DRep 的一些示例。此外,动态副本方案使得 FileInsurer 以低成本更改副本的位置成为可能。
图1. DRep 的示例:最初,该扇区包含六个容量证明副本,如(a)所示。在填充一些文件 后,其剩下两个容量证明副本,如(b)所示。当一些文件从扇区中转移出去时,存储提供商 重新生成 CR3,如(c)所示。
04 协议设计
我们的 DSN 协议设计旨在同时取得高可拓展性、高可靠性、高鲁棒性和高参与激励。
可扩展性:指系统能够承载的文件总数,每个文件存储的副本越多,可扩展性越低。
可靠性:高可靠性要求系统中存储的文件几乎不会丢失,或者丢失的文件可以得到全额补偿。
鲁棒性:指系统能够抵御多大比例的存储介质损坏,每个文件存储的副本越多,鲁棒性越高。
参与激励:指系统中的存储提供者是否有足够的经济学激励参与这个系统。
在我们的协议中,每个文件都只被一小部分存储提供者所存储,这保证了协议的可拓展性。此外,丢失的文件会得到全额的赔偿,因此我们的协议拥有高可靠性。我们希望通过降低押金率来使得我们的协议拥有高参与激励。存储提供者抵押的押金越少,那么他们的收益率就越高。图2提供了一个示例来说明低押金率在适当的假设下是可能的 [2]。
图2. 低押金率的可能性:假定网络中至多2/3的节点损坏,那么每个节点只需要交1/2文件价值的押金,因此可以达到押金率为1/2。
正如图2中的例子,当文件和存储者都是静态的设定下,我们可以设计一组具有良好性质的文件分组策略,使得在一定比例的存储存储介质损坏时丢失的文件足够少。例如有 n 个文件和 C(n, k) 个存储者,每个存储者存储大小为 k 的文件子集。但是该策略仅能用于文件和存储者都是静态的设定下,在实践中文件和存储者集合都会随时间而产生快速的改变。因此,本文提出了一种新的策略,称为随机存储策略。顾名思义,就是为每个到来的文件随机分配存储位置。利用存储随机性,我们以随机存储策略作为核心设计了 FileInsurer 协议。
随机存储策略使得 FileInsurer 的协议具有可证明的鲁棒性并在适当的参数选取下可以得到极低的押金率。具体细节在论文解读中略去,有兴趣的读者可以阅读论文原文。在论文中我们还对实践中可能会产生的一些问题给出了适当的解决方案,例如存储超大文件,存储价值差异巨大的文件,支持 IPFS,以及在特定情况下维持存储随机性。
05 理论保证
假定对手瞬时损坏 \lambda 比例的网络存储容量,我们使用 \gamma_{\text {lost }}^{v} 表示丢失文件价值的比例。那么以不小于 1-c 的概率, \gamma_{\text {lost }}^{v} 满足以下限制
当损坏总容量 \lambda 比例的网络存储容量时,如果押金率满足
那么在一次攻击中可以以不少于 1-c 的概率实现全额赔偿。
参考文献
[1] BENET J, DALRYMPLE D, GRECO N. Proof of replication[J]. Protocol Labs, July, 2017, 27: 20.
[2] CHEN Z, YANG G. Decentralized Asset Custody Scheme with Security Against Rational Ad-versary. WINE 2021.