如果我们想在去中心化互联网更进一步,最终将需要这三大支柱:共识、存储以及计算。如果人类成功将这三个领域去中心化,我们将踏向互联网的下一阶段征程:Web3。
存储,作为第二大支柱,正迅速成熟,各种存储解决方案已经应用到使用场景中。
去中心化存储的需求
区块链的视角
从区块链的视角来看,我们需要去中心化存储是因为区块链本身并不是被设计用来存储大体量数据的。获得区块共识的机制依赖小数量的数据,这些数据被放置于在区块中,并迅速分享至网络供节点验证。
首先,在区块中存储数据非常昂贵。在撰文时,在layer1上存储一个完整的BAYC#3368需要花费超过18000美元。
其次,如果我们想要在这些区块中存储大量套利数据,网络拥堵将会变得严重,这会在使用网络时引起gas战从而导致价格上涨。这就是区块的隐含时间价值的后果,如果用户需要在某一特定时间向网络提交交易,他们会需要付额外的gas费来使得他们的交易被优先处理。
因此,建议将NFT的元数据以及图像数据、dApp的前端进行链下存储。
中心化网络的视角
如果链上存储数据如此昂贵,为什么不直接在中心化网络链下存储数据呢?
中心化网络容易受到审查并且具有可变性。这要求用户信任数据提供方能维护数据的安全。谁都不能确保中心化网络的运营方真的不会辜负用户对他们的信任:数据可能会因为有意或出于意外被抹除。例如可能会因为数据提供商改变政策、硬件故障或被第三方攻击。
NFTs
随着NFT藏品的地板价超过10万美元,一些NFT每kb图像数据价值高达7万,仅仅通过承诺不足以确保数据每时每刻的可获得性。需要更强的保证来确保底层NFT数据的不变性和持久性。
NFT并不真正包含任何图像数据,相反,它们只有指向存储在链下的元数据和图像数据的指针。但需要保护的正是这些元数据和图像数据,如果这些数据消失,NFT将只是一个空荡荡的容器。
可以说,NFT的价值并不主要由它们所指的元数据和图像数据驱动,而是由围绕藏品而推动的运动和生态系统的社区所驱动。虽然这可能是正确的,但如果没有基础数据,NFT将无意义,无意义的社区根本无法形成。
除了个人资料图片和艺术收藏品,NFT还可以代表现实世界资产的所有权,例如房地产或金融工具。此类数据具有外在的现实世界价值外,由于是通过NFT代表其价值,因此保存NFT每一个字节数据的价值不会低于链上NFT的价值。
dApps
如果NFT是存在于区块链上的商品,那么dApp可以被认为是存在于区块链上并促进与区块链交互的服务。dApp是存在于链下的前端用户界面和存在于网络上并与区块链交互的智能合约的组合。有时它们还有一个简单的后端,可以将某些计算转移到链下以减少所需的gas,从而减少最终用户对某些交易产生的成本。
尽管dApp的价值应当根据dApp的背景来考虑,dApps带来的价值是惊人的。在撰文时的过去30天内,DappRadar上排名前10位的dApp共同促成了超过1500亿美元的转账。
尽管dApp的核心机制由智能合约执行,终端用户可通过前端确保用户可访问性。因此,在某种意义上,确保dApp前端的可访问性在于确保底层服务的可用性。
去中心化存储减少了服务器故障、DNS黑客、以及中心化实体删除对dApp前端的访问。即使停止dApp的开发,也可以通过前端继续访问智能合约。
去中心化存储图景
如比特币以太坊这样的区块链的存在主要是为了促进价值转移。当涉及到去中心化存储网络时,一些网络也采用了这种方法:它们使用原生区块链来记录和跟踪存储订单,这代表了价值转移以换取存储服务。然而,这只是众多潜在方法中的一种——存储领域广阔,多年来出现了具有不同权衡和用例的不同解决方案。
尽管存在许多差异,但上述所有项目都有一个共同点:这些网络都没有在所有节点上复制所有数据,比特币和以太坊区块链就是这种情况。在去中心化存储网络中,存储数据的不变性和可用性不是借由大多数网络存储并验证相继链接的数据实现的,比特币和以太坊就是这种情况。尽管如前所述,许多网络选择使用区块链来跟踪存储订单。
去中心化存储网络上的所有节点都存储所有数据是不可持续的,因为运行网络的间接成本会使用户的存储成本迅速提高,并最终推动网络的中心化,转向少数能够负担得起硬件费用的节点运营商。
因此,去中心化存储网络需要克服非同寻常的挑战。
去中心化存储的挑战
回顾前面提到的关于链上数据存储的限制,很明显去中心化存储网络必须以不影响网络价值转移机制的方式存储数据,同时确保数据保持持久性、不可变性和可访问性。从本质上讲,去中心化存储网络必须能够存储数据、检索数据和维护数据,同时确保网络中的所有参与者都受到他们所做的存储和检索工作的激励,同时还要维护去中心化系统的去信任性。
这些挑战可被总结为如下问题:
数据存储格式:存储完整文件还是文件碎片?
数据复制:跨多少个节点存储数据?
存储跟踪:网络如何知道从哪里检索文件?
存储数据的证明:节点是否存储了他们被要求存储的数据?
随时间推移的数据可用性:数据是否仍随时间推移而存储?
存储价格发现:存储成本如何确定?
持久数据冗余:如果节点离开网络,网络如何确保数据仍然可用?
数据传输:网络带宽是有代价的——如何确保节点在被询问时检索数据?
网络代币经济学:除了确保数据在网络上可用之外,网络如何确保网络长期存在?
作为本研究的一部分,已探索的各种网络采用了广泛的机制,并通过某些权衡来实现去中心化。
有关上述网络对于每个挑战的深入比较,以及每个网络的详细配置文件,可于Arweave或CrustNetwork阅读完整研究文章。
数据存储格式
在这些网络中,有两种主要的方法用于在网络上进行存储数据:存储完整文件和使用纠删码:Arweave和CrustNetwork存储完整文件,而Filecoin、Sia、Storj和Swarm都使用纠删码。在擦除编码中,数据被分解成固定大小的片段,每个片段都被扩展并用冗余数据编码。保存到每个片段中的冗余数据使得只需要片段的一个子集来重建原始文件。
数据复制
在Filecoin、Sia、Storj和Swarm中,网络确定擦除编码片段的数量以及要存储在每个片段中的冗余数据的范围。然而,Filecoin还允许用户确定复制因子,该因子决定了作为与单个存储矿工的存储交易的一部分,应该在多少个单独的物理设备上复制擦除编码片段。如果用户想用不同的存储矿工存储文件,那么用户必须进行单独的存储交易。Crust和Arweave让网络决定复制,而在Crust上手动设置复制因子是可能的。在Arweave上,存储证明机制激励节点存储尽可能多的数据。因此,Arweave的复制上限是网络上存储节点的总数。
用于存储和复制数据的方法将影响网络检索数据的方式。
存储跟踪
在数据以网络存储它的任何形式分布在网络中的节点之后,网络需要能够跟踪存储的数据。Filecoin、Crust和Sia都使用本地区块链来跟踪存储订单,而存储节点还维护本地网络位置列表。Arweave使用类似区块链的结构。与比特币和以太坊等区块链不同,在Arweave上,节点可以自行决定是否存储来自区块的数据。因此,如果比较Arweave上多个节点的链,它们将不完全相同——相反,某些节点上的某些块会丢失,而在其他节点上可以找到。
最后,Storj和Swarm使用了两种完全不同的方法。在Storj中,称为卫星节点的第二种节点类型充当一组存储节点的协调器,用于管理和跟踪数据的存储位置。在Swarm中,数据的地址直接嵌入到数据块中。检索数据时,网络根据数据本身知道在哪里查找。
存储数据证明
在证明数据的存储方式时,每个网络都采用自己独特的方法。Filecoin使用复制证明——一种专有的存储证明机制,它首先将数据存储在存储节点上,然后将数据密封在一个扇区中。密封过程使得相同数据的两个复制片段可以证明彼此是唯一的,从而确保正确数量的副本存储在网络上。
Crust将一段数据分解成许多小块,这些小块被散列到Merkle树中。通过将存储在物理存储设备上的单个数据的散列结果与预期的Merkle树散列值进行比较,Crust可以验证文件是否已正确存储。这类似于Sia的方法,不同之处在于Crust将整个文件存储在每个节点上,而Sia存储擦除编码的片段。Crust可以将整个文件存储在单个节点上,并且仍然可以通过使用节点可信执行环境(TEE)来实现隐私,这是一个即使硬件所有者也无法访问的密封硬件组件。Crust将这种存储证明算法称为「有意义的工作证明」,而有意义表示仅在对存储的数据进行更改时才计算新的哈希值,从而减少了无意义的操作。Crust和Sia都将Merkle树根哈希存储在区块链上,作为验证数据完整性的真实来源。
Storj通过数据审计检查数据是否已正确存储。数据审计类似于Crust和Sia如何使用Merkle树来验证数据片段。在Storj上,一旦有足够节点返回他们的审计结果,网络就可以根据多数响应确定哪些节点有故障,而不是与区块链的事实来源进行比较。Storj中的这种机制很有意,因为开发人员认为,通过区块链减少网络范围内的协调可以在速度和带宽使用方面提升性能。
Arweave使用加密工作证明难题来确定文件是否已存储。在这种机制中,为了让节点能够挖掘下一个区块,他们需要证明他们可以访问前一个区块和网络区块历史中的另一个随机区块。因为在Arweave中上传的数据直接存储在块中,通过证明对前一个块的访问证明存储提供者确实正确保存了文件。
最后,在Swarm上也使用Merkle树,不同之处在于Merkle树不用于确定文件位置,而是将数据块直接存储在Merkle树中。在swarm上存储数据时,树的根哈希证明文件已正确分块和存储。
随时间推移的数据可用性
同样,在确定数据存储在特定时间段内时,每个网络都有独特的方法。在Filecoin中,为了减少网络带宽,存储矿工需要在要存储数据的时间段内连续运行复制证明算法。每个时间段的结果哈希证明在特定时间段内存储空间已被正确的数据占用,因此是「时空证明」。
Crust、Sia和Storj定期对随机数据片段进行验证,并将结果报告给他们的协调机制——Crust和Sia的区块链,以及Storj的卫星节点。Arweave通过其访问证明机制确保数据的一致可用性,这要求矿工不仅要证明他们可以访问最后一个块,还要证明他们可以访问一个随机的历史块。存储较旧和稀有的区块是一种激励措施,因为这增加了矿工赢得工作量证明难题的可能性,该难题是访问特定区块的先决条件。
另一方面,Swarm定期运行抽奖活动,奖励节点随着时间的推移持有不那么受欢迎的数据,同时还为节点承诺要在更长时间内存储的数据运行所有权证明算法。
Filecoin、Sia和Crust需要节点存入抵押品才能成为存储节点,而Swarm只需要它用于长期存储请求。Storj不需要前期抵押品,但Storj将代扣矿工的部分存储收入。最后,所有网络在节点可证明存储数据的时间段内定期向节点付款。
存储价格发现
为了确定存储价格,Filecoin和Sia使用存储市场,存储供应商设置他们的要价,存储用户设置他们愿意支付的价格,以及其他一些设置。然后,存储市场将用户与满足其要求的存储提供商联系起来。Storj采用了类似的方法,主要区别在于没有一个单一的网络范围的市场可以连接网络上的所有节点。相反,每颗卫星都有自己的一组与之交互的存储节点。
最后,Crust、Arweave和Swarm都让协议来决定存储价格。Crust和Swarm可以根据用户的文件存储要求进行某些设置,而Arweave上的文件则是永久存储。
持久数据冗余
随着时间的推移,节点将离开这些开放的公共网络,当节点消失时,它们存储的数据也会消失。因此,网络必须积极地在系统中保持一定程度的冗余。Sia和Storj通过收集片段子集、重建基础数据然后重新编码文件来重新创建丢失的片段,通过补充丢失的擦除编码片段来实现冗余。在Sia中,用户必须定期登录Sia客户端才能补充碎片,因为只有客户端才能区分哪些数据碎片属于哪条数据和用户。而在Storj上,Satellite会始终在线并定期运行数据审计以补充数据片段。
Arweave的访问证明算法确保数据始终在整个网络中定期复制,而在Swarm上,数据被复制到彼此靠近的节点。在Filecoin上,如果数据随着时间的推移而消失并且剩余的文件碎片低于某个阈值,则存储订单将被重新引入存储市场,允许另一个存储矿工接管该存储订单。Crust的补货机制目前正在开发中。
激励数据传输
随着时间的推移,数据被安全存储后,用户会想要检索数据。由于带宽是有代价的,因此必须在需要时提供数据对存储节点进行激励。Crust和Swarm使用债务和信用机制,其中每个节点跟踪入站和出站流量与他们交互的节点是如何流动的。如果一个节点只接受入站流量,但不接受出站流量,则它会被取消优先级以供将来通信,这可能会影响其接受新存储订单的能力。Crust使用IFPSBitswap机制,而Swarm使用名为SWAP的专有协议。在Swarm的SWAP协议上,网络允许节点用邮票来偿还他们的债务,这可以用来兑换他们的实用代币。
这种对节点慷慨性的跟踪也是Arweave确保数据在请求时传输的方式。在Arweave中,这种机制称为野火,节点将优先考虑排名更好的对等节点,并相应地合理化带宽使用。最后,在Filecoin、Storj和Sia上,用户最终会为带宽付费,从而激励节点在请求时交付数据。
代币经济
代币经济设计确保了网络的稳定性,也确保了网络将长期存在,因为最终数据只与网络一样永久。在下表中,我们可以找到代币经济学设计决策的简要总结,以及嵌入在相应设计中的通货膨胀和通货紧缩机制。
哪一个是最佳网络?
不能说一个网络在客观上比另一个网络更好。在设计去中心化存储网络时,存在无数的权衡。虽然Arweave非常适合永久存储数据,但Arweave不一定适合将Web2.0行业参与者迁移到Web3.0-并非所有数据都需要永久保存。但是,一个强大的数据子领域的确需要永久性:NFT和dApp。
最终,设计决策会基于该网络的目的。
以下是各种存储网络的总结概况,它们在下面定义的一组尺度上相互比较。使用的尺度反映了这些网络的比较维度,但是应该注意的是,克服去中心化存储挑战的方法在许多情况下并没有好坏之分,而只是反映了设计决策。
存储参数灵活性:用户控制文件存储参数的程度
存储持久性:文件存储在多大程度上可以通过网络实现理论上的持久性
冗余持久性:网络通过补充或修复来保持数据冗余的能力
数据传输激励:网络确保节点慷慨传输数据的程度
存储跟踪的普遍性:节点之间对数据存储位置的共识程度
有保证的数据可访问性:网络确保存储过程中的单个参与者无法删除对网络上文件的访问的能力
分数越高表明上述各项的能力越强。
Crust的代币经济学确保超冗余和快速检索,使其适用于高流量dApp并适用于快速检索流行NFT的数据。
Crust在存储持久性方面的得分较低,因为没有持久冗余,它提供永久存储的能力会受到严重影响。尽管如此,仍然可以通过手动设置极高的复制因子来实现持久性。
Sia是关于隐私的。之所以需要用户手动恢复健康,是因为节点不知道自己存储了哪些数据片段,以及这些片段属于哪些数据。只有数据所有者才能从网络中的分片中重建原始数据。
相比之下,Arweave是关于持久性的。这也反映在它们的禀赋设计中,这使得存储成本更高,但也使它们成为NFT存储的极具吸引力的选择。
Storj的商业模式似乎在很大程度上影响了他们的计费和支付方式:亚马逊AWSS3用户更熟悉按月计费。通过移除基于区块链的系统中常见的复杂支付和激励系统,StorjLabs牺牲了一些去中心化,但显着降低了AWS用户关键目标群体的进入门槛。
Swarm的联合曲线模型确保随着更多数据存储在网络上,存储成本保持相对较低,并且它与以太坊区块链的接近使其成为更复杂的基于以太坊的dApp的主要存储的有力竞争者。
对于去中心化存储网络面临的各种挑战,没有单一的最佳方法。根据网络的目的和它试图解决的问题,它必须在网络设计的技术和代币经济学方面进行权衡。
最后,网络的目的和它试图优化的特定用例将决定各种设计决策。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。