为什么要用分布式存储?

2020-06-06 11:46:52

自从区块链出现以来,各种项目已经开始探索其应用作为分布式存储市场的激励层,一些值得注意的存储解决方案开始在许多应用场景中与集中式主机争夺市场主导地位。

  分布式存储长期以来一直被称为下一代互联网Web 3.0的核心,但是由于缺乏激励机制,分布式存储的功能和对大众的普遍可访问性一直受到限制。这些对于为用户提供保证数据将保持可用并在需要时迅速交付至关重要。否则,要在真正分布式的环境中作出承诺就很难(即使不是完全不可能)。

  自从区块链出现以来,各种项目已经开始探索其应用作为分布式存储市场的激励层,一些值得注意的存储解决方案开始在许多应用场景中与集中式主机争夺市场主导地位。

  在本文中,我们将介绍去中心化数据存储的主要概念,并考虑其潜在的应用,使用它们将Neo的本机解决方案NeoFS与区块链行业的其他相关和知名项目(Sia,Filecoin和Swarm)进行比较。


 11.png


  为什么要使用分布式数据存储?

  在深入研究各种解决方案之间的比较之前,我们应该考虑分布式式存储(与集中式存储相比)的优势和挑战来借用上下文。

  云存储的简单性和低维护量导致将数据大规模迁移到集中式服务器,无论是休闲用户还是有大量存储需求的企业。由于规模经济,导致出现了大型数据孤岛,这些孤岛主要由亚马逊,微软,IBM和Google等技术巨头拥有和运营。

  尽管公司之间的竞争可确保为用户提供许多服务提供商供选择,但服务本身的性质通常引起人们对审查或滥用私人数据的可能性的关注。向云存储的转变也为数据盗窃创造了更多机会。欧盟主要隐私监管机构在其2019年报告中报告称,有效数据泄露量比2018年增加了71%。

12.png

  2005-2019年间美国的年度数据泄露事件和公开记录


  分布式存储网络旨在以多种方式破坏现有的云市场。首先,这些网络中的大多数都在自由参与的市场原则下运作。这意味着任何人都可以参与网络,并且不必冒单个故障点的风险,而是将数据复制到整个分布式网络中的多个节点。

  区块链集成还可以自然包含公钥加密。数据通常在存储到主机之前先经过加密,只有其合法所有者和所有者选择与之共享的任何一方才能解密。此过程可以使这些服务更不受审查和操纵的影响,并使攻击中丢失的任何数据对攻击者无用。

  此外,与区块链技术的集成提供了对激励层的访问,该激励层可用于奖励良好行为或惩罚恶意活动。这使得这些平台可以通过服务全球市场来利用加密货币的全球性和无边界性。

  最后,分布式存储网络是经济高效的解决方案的有力证明。与归因于数据孤岛操作的大量开销不同,分布式式网络利用了遍布全球的最终用户设备中未使用的存储容量。激励用户为网络贡献存储空间,理想情况下会产生大量供应,从而长期压低价格。

  不利的一面是,分布式存储的技术复杂性吸引了必须解决的重大问题,否则可能无法为最终用户提供与现有集中式服务可比的体验。

  这些网络面临的显着挑战包括原始可扩展性,激励基础设施的构建以维持开放的市场以及确保动态分布于全球的动态网络的数据完整性。

 

  分布式存储项目

  尽管它们具有共同点,但分布式式存储解决方案具有许多不同的形状和大小,通常具有独特的优先级和目标市场。让我们花点时间介绍今天正在讨论的四个项目:

 13.png

  Filecoin

  尽管仍处于试验阶段,但Filecoin可以说是带给比较最多的血统。该计划是由协议实验室发起的,该协议实验室是广受欢迎的行星际文件系统(IPFS)的创建者,该系统于2015年启动,是一种点对点存储网络,旨在彻底改变数据在Internet上的分配方式。

  与超文本传输协议(HTTP)(当前的Web标准)不同,IP是在Web标准中从托管数据的特定位置请求数据的,而IPFS请求仅指定数据的加密哈希。可以将其视为类似指纹的标识符。

  这种技术称为内容寻址,它允许用户直接通过其标识符请求所需的内容,并连接到可以为其提供服务的任何节点。但是,这确实需要至少一个节点来努力存储该特定内容。

  自IPFS发布以来,这已被证明是其主要弱点-需要激励节点固定内容并保证其可用性。这就是Filecoin发挥作用的地方,被设计为IPFS的基于区块链的激励层。尽管尚未正式发布,但该团队在4月份的路线图更新中报告说,其TestNet上已验证的存储超过了5 PB。根据同一消息来源,Filecoin预计将于2020年7月至8月之间启动其MainNet。

 14.png

  NeoFS

  NeoFS最初是在原始Neo白皮书中提出的有关集成分布式存储协议的建议。包含本机数据存储网络旨在通过授予应用程序存储,检索和管理链下数据的能力,为应用程序提供进一步的分布式功能。

  该系统的最终设计由俄罗斯圣彼得堡新技术开发中心(Neo SPCC)创建,该研发团队旨在支持Neo生态系统并开发真正的分布式式云平台。

  NeoFS通过商品或企业级硬件从任何用户那里获取存储空间,他们可以将未使用的HDD / SDD容量出租给网络,以换取GAS。通过在网络多图上使用集合点哈希来确定性地计算数据放置,即使在分布式环境中,该解决方案也可通过消除节点之间不必要的元数据传输的需求来实现极高的可扩展性。

  该解决方案还引入了一种交互式的零知识证明协议,该协议基于同态哈希来异步地保持整个网络的数据完整性。该协议提供一致的审核;未能通过审核会阻止付款,从而阻止节点尝试通过删除数据来玩网络。

 15.png

  Sia

  Sia于2013 年构思,旨在通过使用区块链创建开放的市场供用户购买或租用未使用的数据存储容量来破坏云存储。

  参加者就存储条件(例如容量和持续时间要求)达成一致,这些条件以加密服务级别协议(称为文件合同)的形式结算。这些将在Sia区块链上自动处理并完成。

  自2016年6月首次发布稳定版以来,Sia在软件开发和存储网络增长方面均取得了持续的进步。根据siastats.info的数据,该网络最初侧重于归档应用程序,当前存储的数据超过800 TB,并且在全球分布着300多个活动主机。

 16.png

  Swarm

  Swarm被设计为以太坊Web3堆栈的基础层,是一种分布式式存储和通信基础架构,具有审查制度和抗DDOS设计。该网络采用分布式的,内容寻址的块存储形式,利用以太坊的devp2p网络层进行对等点发现和通信。以太坊还用于智能合约,以建立其激励基础设施,即Swarm Accounting Protocol或SWAP,简称SWAP,向节点收取资源请求费用,并向节点收取服务费用。

  通过SWAP及其基于地址密钥的检索协议,Swarm打算创建一个环境,希望最大程度提高其获利能力的节点自然会缓存并存储可以频繁使用的内容。在撰写本文时,Swarm的激励方案仅可用于在TestNet上选择加入,此时大多数数据是以无私方式存储的。

  每个项目在方法上的低级差异可能导致难以直接比较它们。为了解决这个问题,我们将潜在的用例分为三个主要组,并比较每个项目如何为应用程序场景提供服务。

 

  备份和存档

  分布式存储的最简单应用也是当今最常见的应用之一。云存储已受到个人和企业的广泛欢迎,为那些希望长期保留重要文件或在灾难发生时增加冗余设置的人们提供了一种资源。

  为了与当今的云服务竞争,打算满足此应用方案的分布式存储提供商通常会将原始容量置于性能或带宽之上。这使其成为开放式分布式存储网络的理想用例,该网络可以在开放市场上出售任何设备的未使用空间,从而通过大量供应来降低价格。

  由于NeoFS,Sia,Filecoin和Swarm都提供了类似的基础架构来支持开放数据存储市场,因此它们都可以从这种用例中受益。同样,每个项目都提供了一种数据复制机制来确保持久性,以应对分布式网络中固有的不确定性因素。每种协议都采用类似的方法,即使用纠删码或类似的技术来拆分数据,然后将副本分发到网络上的多个节点以实现冗余。

  为了确保节点可以保持数据的访问性,对良好行为的鼓励和定期进行数据完整性检查(例如Filecoin提出的复制证明或NeoFS的零知识数据验证机制)使遵循规则的成本比尝试进行成本低欺骗网络。

17.png

  NeoFS零知识数据审核游戏,用于发现损坏或恶意的节点


  在上述网络中,Sia当前在备份和归档用例上保持主导地位,这是所讨论的唯一具有有效MainNet的协议。Sia的另一独特优势进一步巩固了这一地位。其基于种子的文件恢复服务,使用户可以创建网络上存储的当前文件的快照。

  该种子使用户可以随时随地从任何位置恢复这些文件,从而使其成为功能强大的工具。但是,该团队指出,该解决方案并不是“一劳永逸”的,因为用户必须确保文件合同保持活动状态才能还原文件。这意味着用户必须每隔几周手动访问Sia来续订合同,或预留自动续订的费用。

 

  虚拟主机和内容分发

  有时,目标并非主要是长时间保留数据,而是将数据快速提供给用户。这是Web前端的典型情况,也适用于经常访问的内容,例如音乐,视频或游戏流。

  为了满足这些用户的需求并与数据中心竞争,这些应用程序的存储提供商可能会优先考虑性能(例如SSD优于HDD)和大带宽。此外,将内容放置在尽可能靠近用户的位置有助于减少满足检索请求所需的时间。

  当谈到优化数据放置时,以太坊的Swarm提出了一种特别优雅的解决方案。通过其节点同步和缓存机制,Swarm被设计为充当“ 自动缩放弹性云 ”,其中特定内容的流行度的增长将增加附近缓存块的节点的数量,进而有助于优化路由。通过减少任何给定请求的平均跳数为最终用户。

  最终结果是一个分布式系统,该系统自然地对其自身进行了配置以实现快速分发,使其成为此类应用程序场景的有力竞争者,尤其是对于已经以其他方式与以太坊集成的服务。

18.png

  缓存如何优化最终用户的内容交付时间的示例


  Filecoin还采用了一种激励机制来确保内容的快速交付。通过将网络划分为存储和检索市场,帮助区分不同类型的存储提供商(提供高容量的存储提供商和专注于快速检索的存储提供商),可以实现此目的。这可以帮助用户选择可以更紧密地满足其需求的提供商,从而提供IPFS的基础结构,以用作响应式CDN /网络托管服务。

  尽管在数据档案市场中处于强势地位,但从历史上看,提供数据一直是Sia的弱点,该团队旨在在2月份推出Skynet(Sia的第2层网络)来解决这一问题。

  天网通过天网门户(通常是私有使用的修改后的Sia节点)和天网Webportals进行操作。Webportals是配有Web UI的可公开访问的服务器,允许用户上传或访问Skynet内容而无需任何其他软件,类似于NeoFS的协议网关。

  利用Sia后端进行存储,Skynet旨在为最终用户增加文件共享和内容分发功能,并利用门户的改进延迟来及时交付请求。

  这两种方法也可以在NeoFS中看到。像Filecoin一样,开放市场允许客户在进行初始数据放置时进行自我优化。NeoFS上的存储节点可以在加入网络时定义其地理位置,存储类型,容量和价格,为租户在放置数据时提供重要信息。例如,公司可能希望专门针对基于美国的存储节点,以帮助更快地将数据传递给美国用户。

  此外,Neo SPCC 还创建了CDN服务,以进一步改善性能和延迟。与Skynet相似,可以使用缓存和地理位置来优化数据传输,并通过独立的CDN网络层请求存储在NeoFS上的内容。将来,网络参与者将能够使用或托管自己的NeoFS.CDN Edge,即使数据完全存储在另一个区域中,也可以提供健康的端点来尽快提供内容。

  在Send.NeoFS服务中可以看到运行NeoFS.CDN的示例。用户当前可以进行公共测试,可以将具有指定生存期的文件上载到NeoFS TestNet,并通过链接共享它们以演示服务。

  尽管可能需要进一步的发展,才能使所讨论的任何网络在一致的交付时间和成本方面持续挑战当今的云服务,但每个网络都表明,这几乎可以肯定是“何时”而不是“是否”的问题。

 

  通过智能合约与链下数据进行交互

  智能合约平台的创建为开发人员提供了一种设计用于不信任地执行业务逻辑的环境,但是,这仅涵盖特定应用程序的一个方面。经常可能会要求用户通过集中式Web前端访问服务,从而重新引入信任要求,并且项目可能会运行或租用自己的服务器来处理应用程序所需的任何其他数据。

  尽管如上一节所述,尽管其中一些用例可以通过考虑到内容分发而设计的协议来满足,但区块链应用程序仍经常依赖于脱链数据存储,从而带来了对信任的担忧。为了允许创建真正的分布式式应用程序,可以使用分布式脱链存储来托管两个用户界面并替换这些集中式后端。

  在理想情况下,开发人员可以将代码编写到智能合约中,以从链外源请求一段数据,对数据进行处理,然后保留更改或继续进行操作。问题在于,智能合约本质上仅限于执行环境提供的指令和数据集。

19.png

  存储操作将通过Neo3内置的oracle服务传递,以允许智能合约与分布式式脱链存储进行交互


  简单地说; 如果虚拟机不具有访问链下服务的能力,则必须将数据存储在链上才能通过合同进行访问。反过来,这意味着数据需要与合同一起部署,或者通过事务聚合将其随时间累积。

  以这种方式在链上获取数据可提供彻底的冗余,但这伴随着每字节的极高价格,这不可能满足许多开发人员的需求,尤其是在需要越来越大的数据集的情况下。

  尽管Sia和Filecoin都表示有兴趣通过跨链桥直接使智能合约可以访问脱链数据,但在设计合约与存储网络互操作之前,必须与区块链VM或oracle服务进行适当集成。

  NeoFS是尝试提供此功能的已知分布式式存储网络中的第一个。Neo的本机oracle服务完成后,通过NeoVM运行的合同将能够请求甚至操作NeoFS链下存储的数据。这可以为集中后端提供一种功能替代方案,同时避免了对链上存储相关的高成本和通常不必要的冗余的需求。

  这种集成使NeoFS成为唯一能够满足此应用场景的已知分布式式存储系统,从而促进了可能成为第一个真正的分布式式应用程序的创建-在该系统中,可以以分布式式方式为应用程序的后端数据库和面向用户的前端提供服务。

 

  摘要

  总而言之,区块链技术和分布式存储之间的最新关头已导致创建了一些有前途的分布式存储网络,每个网络都具有确保其可访问性和可行性所需的激励层。尽管这些网络在整个潜在应用场景中的应用目前仍处于试验阶段,但它们代表了云领域的破坏力。

  展望未来,Neo SPCC还打算通过添加Neo Lambda(一种用于分布式式无服务器计算的服务)来进一步改善其技术堆栈。正如NeoFS允许应用程序将其数据存储需求移到链下一样,Neo Lambda也打算让它们卸载繁重的计算,从而实现了团队的目标,即创建一个真正的分布式式云平台。


最新推荐