比特人-比特币第一中文社区

 找回密码
 立即注册(register)
查看: 28|回复: 0

深入理解去中心化存储

[复制链接]
发表于 2020-1-6 13:15:24 | 显示全部楼层 |阅读模式
本帖最后由 西崽 于 2020-1-6 13:17 编辑

1  去中心化存储背景与价值主张1.1. 去中心化存储产生的背景WEB 3.0提倡“以数据为中心,数据价值化和隐私保护”,而去中心化存储在其中扮演着至关重要的角色,其中数据安全和隐私保护对应数据冗余存储和备份功能,而数据价值化对应的是文件共享的价值传递。数据安全方面,相比较于个人,企业往往更加重视公司数据的安全和隐私保护。企业存储在云端的数据往往是公司的机密,很多数据一旦被泄露很可能将公司在市场竞争上至于不利的地位,传统的公司资料实物存储方法对于大型企业来说早已不足以支撑海量数据存储的需求;数据价值共享方面,越来越多的人希望共享资源的同时获得相应的交换价值。比如人大经济论坛和喜马拉雅等平台在共享知识学习和文件的时候需要通过法币或积分的形式换取,而百度网盘和迅雷大多数则是以免费的形式进行价值传递,它们仅仅只是对下载速度等性能收取会员费,而共享内容的种子方并没有获得因共享文件而获得的价值。近几年来,全球和国内云存储市场发展迅速,从GB级别到TB级别再上升到PB级别,文件存储的种类越来越多,文件的数据量也越来越大。

图表1:全球云存储和国内云存储市场迅猛发展

数据来源:中国产业信息研究2012-2017年,全球云存储市场维持20%以上的高复合增速,而国内云存储市场的增速维持在85%-110%。根据多家机构的预测结果,预计2022年全球云存储市场规模将达到1000亿美元以上。

虽然云存储市场的规模和用户在飞速增长,但是中心化存储市场却具有四大缺陷:无法保障版权、无法保障数据安全、随时面临服务商停止运营的风险、数据缺乏价值化。

不论是由亚马逊等公司的第三方中心化存储,抑或者是公司本身存储用户的数据,从法律角度上用户对他们泄露数据信息不具有期待可能性。尤其是在数据为王的商业模式时代,精准数据将对各行各业的重构,控制数据来源或者以比竞争对手更低的成本获取数据的企业,其竞争实力将会显著高于其竞争对手。所以,竞争对手往往会想方设法的获取数据,而将用户数据泄露或出售的行为往往可以让数据存储服务商获得巨大的利益。

用户数据被收集后,中心化的存储使用户数据暴露在巨大的风险之下(泄露、黑客攻击等)。CSO 统计了自2000年以来最重大的 18 起用户数据泄露事件,尤其是最近两年,而且数据泄露量级也在呈指数级上升,不论是黑客攻击等外因,还是中心化存储方恶意的内因。例如,印度10亿公民身份数据库Aadhaar被曝遭受网络攻击事件、Facebook剑桥分析公司事件等。

图表2:21世纪18起重大用户数据泄露事件

数据来源:CSO


由此,去中心化存储的商业模式就应运而生了。

去中心化存储基于区块链技术,通过非中心化的架构结合中心化与去中心化各自的优势在效益与公平之间探索平衡点,使存储的安全性提升;同时,通过区块链外存储和API接口的中心化处理,使得存储网络的TPS在现有公有链和联盟链的基础上得到大幅改善;并且,通过对种子节点或文件上传方实施激励措施,让其数据价值化。

1.2. 去中心化存储定义的内涵与外延

存储市场的商业组织形式可以分为中心化存储和去中心化存储。中心化存储是将数据完整的存储在中心化机构开发的服务器上,去中心化存储则是将数据切片分散存储在多个独立的存储供应商上。二者的技术实现方式通常会以分布式存储来体现。分布式存储是一种数据存储技术,它是将数据分散的存储于多台独立的机器设备上,通过纠删码(Erasure Encoding)技术实现数据的冗余存储。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,解决了传统集中式存储系统中单存储服务器的瓶颈问题,并提高了系统的可靠性、可用性和扩展性。

需要注意的是,分布式存储仅仅是一种存储的技术方式,而中心化或去中心化存储是存储的商业模式。因为设备服务器与存储供应者是一对多的关系,即一个存储供应商可以控制多个存储节点,所以去中心化存储一定会使用分布式存储技术;但是,中心化存储可以使用分布式存储技术,也可以不使用分布式存储技术。

图表3:分布式存储技术在去中心化存储和中心化存储的体现  

注:实线箭头表示“一定会用分布式存储技术”,虚线箭头表示“不一定会用分布式存储技术”数据来源:HashKey Hub 1.3. 去中心化存储的价值主张
去中心化存储代表着大规模存储的效率和经济的根本转变,它的价值主张主要体现在以下几个方面:

(1)增强安全性和用户隐私。去中心化存储对数据的加密处理不仅仅局限于用户和软件终端,而且在存储网络所有环节上都在进行加密处理,并通过私有网络访问密钥、零知识证明等方法保护用户隐私。

(2)存储平台或网络的算法和代码必须是开源的。由于2C端的存储服务已经被中心化存储抢占了大多数市场,由于在开源项目初期进入门槛较高,大多数集中于2B端,只有代码开源才能让社区和应用的完善形成有效的正反馈效应。如果算法和代码不公开透明,则存储网络就会变相的中心化。

(3)通过冗余备份防止数据丢失。数据存储于不同的节点,通过数据冗余防止数据丢失(在数据存储或传输出错时存储额外的副本)。


2  去中心化存储系统的架构与运行2.1. 去中心化存储的工作原理在文件共享方式上,去中心化存储系统文件共享方式与中心化存储截然不同,中心化存储系统的大型文件上传后,文件以整体或切片的形式存储在单一或分布式的网络或服务器上,需要及其高效的开发、运营团队来维持其运转。然而,去中心化存储必须使用分布式存储技术,初始种子节点(最初拥有完整文件资源的节点)在将大型文件进行切片处理后,使其产生多个Pieces,每个Piece分别存储在不同的节点上,每个一般节点在下载单个Piece并上传到去中心化存储网络中让其他节点下载后成为这个Piece的种子节点,在多个节点完成相互共享Piece的过程中,实现Piece在除初始种子节点之外的节点共享,并不断扩大该文件共享网络中的节点数。所以,在同一时刻其他条件不变时,随着下载人数的增多,下载同一内容的速度越快。因此,去中心化存储系统弥补了中心化存储系统传输速度慢的缺陷,同时克服了单点故障并保证了数据的安全性。

图表4:去中心化存储工作原理

数据来源:HaskKey Hub


2.2. 去中心化存储的架构

去中心化存储架构自下而上有4个组成部分:网络协议(TCP/IP)、区块链或分布式账本、去中心化存储协议和应用程序。其中,网络协议对应的是Layer 0;区块链或分布式账本对应的是Layer 1的底层加密和共识机制;去中心化存储协议对应的是Layer 1的激励机制设计和身份协议,以及Layer 2对接各类应用程序的智能合约、脚本语言和API接口等,直接对接各种服务应用,一般以API或者是智能合约的形式呈现;应用程序则对应的是Layer 2的应用层[1]。

图表5:去中心化存储自下而上的架构层次和对应

数据来源:HashKey Hub

2.2.1. 网络协议与网络层

网络协议包括TCP/IP的网络协议、存储网络和传播机制。网络拓扑结构的搭建和设计方式往往代表了该系统的价值目标的实现方式,决定了其传播机制和验证机制的运行效率。

存储网络的拓扑结构可以是P2P网络,也可以是存在几个联盟的中介服务商或运营商的去中心化网络(本文将此网络拓扑结构定义为非P2P网络),但不包括单一或寡头中心化存储服务商构建的基于多个服务器的分布式存储网络。

图表6:非P2P网络和P2P网络

注:左侧为非P2P网络,右侧为P2P网络数据来源:

对于P2P网络,所有的节点都是对等节点(Peers),它们具有平等的权利和义务,去中心化程度是最高的,也是BitTorrent、IPFS和Storj等主流去中心化存储项目的网络结构模式,任何节点都可以通过租用和自身的磁盘等硬件为用户节点提供存储空间,也可以通过支付代币或免费的形式将数据分片存储到不同的对等节点上,交易的过程是可逆的,每个节点获得记账权的概率是均等的。对于非P2P去中心化存储网络,存在部分中介节点,服务器没有充分分散化和边缘化,类似联盟链(许可型区块链)的网络结构,交易信息的传播和沟通必须经过这些中介节点,中介节点与一般节点在权利与义务存在一定的不对等[2]。传播机制方面,P2P网络传播延迟小于非P2P网络,并且更容易扩大规模[3]。假设对同一个内容存在一个非P2P共享存储网络(网络A)和一个P2P共享存储网络(网络B),A和B中均有100个节点,其中A存在20个中介节点,B存在100个对等节点。从主观能动性上来说,因为网络B更容易扩大规模,节点上传文件分片(Pieces)的动力强于A;从客观规律性来说,即便网络A和网络B的节点数拥有保持在相等的状态,由于存在网络A存在中介节点,仅有中介节点充当种子节点的角色,其他80个节点就会有搭便车(只下载资源不上传资源)的行为,完全起不到作用,从而导致网络传播延迟大于网络B。验证机制方面,P2P网络的验证动力明显强于非P2P网络。P2P网络可以通过设置奖励代币的方式,激励大量的节点自发地去验证前面交易的真实性,寻找相应证据来佐证;而非P2P网络中,具有足够验证动机的节点仅有少数联盟的中介节点,其他节点因利益分配不均缺乏其他交易真实性的动力。显然,从发动51%攻击、女巫攻击或者镜像攻击的难易程度上,P2P网络显然比非P2P网络具有更高的难度。2.2.2. 区块链或分布式账本
去中心化存储系统的区块链或分布式账本自下而上一般包括加密基础设施、交易记录、广播方式和存储证明机制。
对于加密基础设施,其加密方式一般是通过哈希函数加密,包括SHA-1、SHA-256等算法或配置表(Allocation Table)连接到默克尔根,在每个环节对数据加密处理后,再通过分布式哈希表(DHT, Distributed Hash Table)、追踪服务器(Tracker)等方式通过主键(Key——种子文件地址)检索到特定存储内容的共享网络。

对于存储证明机制(PoS, Proof-of-Storage),一般是在不通过下载内容的情况下,证明服务器在特定时刻已经存储了特定下载内容,及其数据的完整性,从而降低恶意节点的舞弊空间。它包括数据持有性证明(PDP, Provable Data Possession)和可恢复数据证明(PoR, Proof-of-Retrievability),但是不同项目针对不同的作恶动机和方式对该共识机制进行了完善。比如IPFS通过复制证明(PoRep, Proof-of-Replication)和时空证明(PoSt, Proof-of-Spacetime)两个方式分别遏制了女巫攻击、生成攻击和外源攻击[4]。

对于交易记录,交易记录一般都是以抽象化的形式加密后记录在链上,交易记录的发生与记录必须在完成存储证明之后,将文件名称、时间戳、文件类别等信息组成区块头并存储在链上。

2.2.3. 去中心化存储协议

去中心化存储协议是整个系统的核心,包括存储协议、检索协议、激励机制和身份协议。其中激励机制和身份协议处于其下层,一般在Layer 1(链上);存储协议和检索协议则属于服务层,包含各类智能合约和脚本文件,从而决定了相关应用程序的设计,一般在Layer 2(链下)。由于去中心化存储项目的定位不同、进展阶段不同等多方面的因素,导致其去中心化存储协议在不同维度的设计上存在较大差异。

身份协议方面,分为存储用户的身份和节点身份。存储用户的身份一般以去中心化身份(DID, Decentralized Identity)的形成呈现,但是也有BitTorrent中心化身份的特例。用户仅仅只在提供最小化满足功能的个人信息的情况下,拥有对自己的身份及其相关数据的控制权、许可权和收益权;节点的身份一般在检索过程中,以哈希字符串的形式存储在链上,通过追踪服务器或哈希表可以有效查询某一特定文件或文件集的种子节点,一般表现形式为URL。

存储协议方面,协议指出用户节点以支付代币或免费的方式从种子节点下载其感兴趣的文件或文件集,而其对手方节点通过提供存储空间(购买或租用)或带宽资源来赚取代币或获得更高的获得记账权的概率,进而形成一个双向的智能合约或交易订单。首先,文件或文件集需要做切片处理,经过2.1节中的流程后,存储磁盘空间由该内容的共享网络(Swarm)中所有的节点提供相关的分片。存储协议中所有的步骤流程均在链上进行,包括订单的生成、共识机制的验证和价值传递等。

检索协议方面,去中心化存储的检索协议一般在链下执行,并由中心化机构进行开发、维护和运营,仅仅只有存在代币经济体系的情况下,其价值传递仍在链上进行,其记录抽象化加密后记录在区块链或分布式账本上。检索方式一般是通过节点身份(URL形式)对种子节点和共享网络进行检索,通过中心化检索服务器和DHT(分布式哈希表)的方式使下载者之间连接起来,进行资源检索。而DHT是对Tracker检索方式的改进,通过Key(通过检索内容的哈希函数生成的哈希字符串)对特定内容进行检索,并大大提升了检索效率。

图表7:DHT检索原理

数据来源:https://dwz.cn/hKCgNhEY

2.2.4. 应用层应用层一般包括存储客户端软件(包括存储功能和检索功能)、加速软件和用户代理程序等。通过SaaS(Software-as-a-Service,软件即服务)的方式实现盈利,应用软件及其相关基础设施在Layer 2(链下)。客户端软件一般与用户进行直接交互,它本质上是一个数据传感器,用来记录用户在存储网络中的行为,评估其转化率、活跃用户数(日活和月活)、搜索记录等,从而为项目未来的发展与经营提供有效参考。通过DID(去中心化身份)的模式让节点实现数据暴露最小化,使去中心化存储客户端仅仅在实现功能的基础上对用户的存储行为进行画像,而不反映存储和检索功能之外任何的数据信息。


3 去中心化存储与中心化存储的比较3.1. 比较分析

图表8:中心化存储VS去中心化存储


数据来源:HashKey Hub

3.1.1. 存储空间和带宽来源的差异

中心化存储指由单一或寡头第三方机构利用自身搭建的服务器对外提供大规模数据存储服务的商业模式;去中心化存储指大量普通PC服务器通过Internet 互联,对外作为一个整体存储服务。

中心化存储的空间来源是由指定存储服务提供商开发和运营的存储云端,比如Amazon S3、阿里云和华为云的服务器等,下载的带宽由服务供应商提供;而去中心化存储空间来源是大量能够提供存储空间的PC、移动终端等设备,同一文件或文件集的共享网络中的所有节点都可以为其下载提供带宽。

3.1.2. 使用方式的差异

由于存储空间的来源不同,进而导致文件存储方式和检索方式截然不同。

存储方面,中心化存储由于存储空间是由中心化存储服务商开发并运营的,因此文件存储空间容量足够大,以至于可以存储海量数据,存储文件(不论是文本、语音还是视频等)整体存入云端,不需要对文件进行切片和去重的处理;去中心化存储由于存储供应者(服务商或个人)相对分散,存储空间也相对分散,需要相应的匹配优化算法在冗余的存储空间中寻找最优的存储空间提供者(即以最快的速度存储并合适的存储空间)。并且为了保证存储数据不会因单点攻击或故障、女巫攻击等外部性因素而丢失,去中心化存储系统在进行加密处理后将文件进行切片处理,并分散存储至不同的存储提供者的磁盘空间中。

内容检索方面,中心化存储以账户范式的形式对已存储数据进行访问,通过输入HTTP URL的方式连接到追踪服务器(Tracker),从而实现搜索特定存储内容;去中心化存储因为数据分散存储在不同的节点,所以需要通过DHT分布式哈希表将每个节点的链接用哈希函数生成哈希字符串,因此其下载速度随着下载的人数增多而加快。但是也造成了数据的大幅度冗余,很容易造成存储空间资源(如磁盘等)和带宽的浪费。

3.1.3. 安全性和隐私保护的差异

去中心化存储和中心化存储在安全性和隐私保护上具有各有优劣。去中心化存储的优势主要体现在以下两个方面:

一方面,去中心化存储规避了单点故障和部分节点断网或不可用等风险。由于去中心化存储的共享网络为P2P网络,而中心化存储的共享网络为以服务供应商为中心的中心化网络,从而导致前者不容易受到单点故障和服务器断网的影响,也不容易受到黑客的攻击。

另一方面,去中心化存储使用户的具体存储内容不因主观原因而泄露。去中心化存储通过零知识证明和非对称加密等技术,将哈希加密的字符串放在区块的最底层,连接到默克尔根,从而将存储内容的分片实现加密处理,其他任何节点包括运营商都无法看到存储的具体内容;而Amazon S3等中心化存储系统则通过账号范式,其具体内容服务商都可以看到,从而导致大规模云泄露和云安全事件频发,用户的隐私无法得到有效保障。

但是去中心化存储的劣势也很明显。采用非许可型区块链技术实现去中心化存储模式时,由于出块的全网广播和时间戳技术,导致所有参与节点都知道某一节点在某一特定时刻存储数据,随着节点之间的交互频率提升,全节点可以很容易查找交易发生的区块,从而暴露Hash值背后的身份,并用算法推测请求方或存储方的存储余额。再加上分散存储,每个片段如果都一般为64-512KB,一旦存储网络的大多数存储空间掌握在少数几个存储供应商手中,会比文件整本存储更容易被破解。

3.1.4. 存储费用结构的差异

由于中心化存储系统和去中心化存储系统的存储方式和检索方式的差异,导致二者在服务费用定价上存在差异。

中心化存储系统的收费标准是按月度、季度或年度为单位根据存储数据文件的大小收取存储费用,并且对存储费用实施一定的促销策略(免费试用期等)。比如Amazon S3收取存储费用为每月0.03美元/GB;阿里云针对个人和企业采用差异化定价的方式:个人收费为每月10元/GB,企业收费为每月2.5元/GB。

由于大多数去中心化存储网络平台处于项目运营初期,大部分产品处于开发阶段或MVP阶段,因此以低廉的存储费用来吸引用户流量。但是,相比较中心化的相对固定的服务费用,除了存储费用之外,去中心化存储还有检索费用、手续费和交易费。因此,去中心化存储仅仅适合冷数据存储,在检索数据量较少的情况下其费用比中心化存储低得多。而对于热数据,因检索频繁导致其成本可能高于中心化存储的费用。对于去中心化存储,因存储共享网络在扩大规模的同时必须伴随着检索热度的增加,而搜索热度的增加必然伴随着检索费用的上升,这在某种程度上是一个难题与挑战。

3.1.5. 可用性的差异

可用性方面,中心化存储在当前状态下具有显著优势。

一方面,中心化存储的文件存储形式采用整本上传,其数据完整性优于去中心化存储。一般来说,可用性的度量维度是客户端直接可用的文件(或文件集)的完整副本数。比如说对于种子节点,因其已上传完整的内容资源,所以其可用性为1,而对于去中心化存储分片后将不同的Piece存储在不同的节点,其共享网络中的单个节点的可用性通常小于1。

另一方面,中心化存储由一个或寡头的服务供应商运营并维护其共享网络的可持续性,特定共享内容网络的持续期较长。其HTTP URL的有效性在上传者不主动删除的情况下,链接将永久有效;而去中心化存储在存储内容可用性的可持续性上比较短暂,主要原因是缺乏有效的激励机制。

3.1.6. 存储文件大小与类型的差异

中心化存储在存储文件大小与类型没有任何限制,不论是视频、音频、文档都可以上传和存储,具有显著优势。

去中心化存储不同项目存在不同的适合存储的文件类型和大小,比如Storj定义小文件是1MB以下的而大文件是4MB以上的。显然文件越大切片的难度也就越高,有些去中心化存储网络只能存储文本文档和图像,有些则可以存储视频和音频,导致市场相对分散。

去中心化存储可减轻数据故障和中断的风险,同时提高对象存储的安全性和私密性。它还使市场力量能够以比任何一家单一提供商都无法承受的更高价格优化价格更低廉的存储。尽管有很多方法可以构建这样的系统,但是任何给定的实现都应该解决一些特定的责任。基于我们在PB级存储系统方面的经验,我们引入了一个模块化框架来考虑这些责任并构建我们的分布式存储网络。另外,我们描述了整个框架的初始具体实现。而对于大型文件(一般大于1GB),在通过哈希加密产生的字符串太多,以至于用户无法记住其哈希字符串,从而导致去中心化存储对用户的接受性减弱。

3.1.7. 下载速度评估方式的差异

去中心化存储和中心化存储在对下载速度评估上存在显著差异。

中心化存储通过中心化的服务器为用户提供带宽进行下载,只要缴纳会员费或者提升会员等级就可以显著提升下载速度,比如用户在使用百度网盘时,在没有会员的情况下下载速度仅为200KB/s,而在成为会员的情况下下载速度高达2-5MB/s,而且还会有限速措施;去中心化存储的下载速度取决于其贡献程度,即该节点当前上传内容分片的数量,在其他条件不变的情况下,种子节点的数量越多,下载的人数越多,上传的内容越多,其下载速度越快。同时,对“只下载,不上传”的搭便车节点以限速的形式进行适当的惩罚[5]。

3.1.8. 发展程度的差异

中心化存储市场占主导,处于成熟期;去中心化存储仍然处于初创期,技术架构和体系尚未成熟。

从行业周期理论角度出发,行业的发展阶段分为初创期、成长期、成熟期和衰退期。存储市场总收入规模达到了130亿美元以上,中心化存储2019年上半年目前已经形成了寡头垄断的竞争格局,以Dell Technology、H3C、IBM、联想、华为等巨头为主,并且前10家中心化存储公司的市场份额达到62.9%。

而Sia、BitTorrent、IPFS等去中心化存储项目部分仍在开发阶段,而且进度较为缓慢,而开发完成的Sia和Storj的存储空间总量仅为2PB,而实际使用空间仅为全网总存储空间的40%不到,与中心化存储的收入相去甚远。

图表9:存储市场份额分布

数据来源:http://www.cnbp.net/news/detail/22363

3.2. 去中心化存储的挑战

相比较于中心化存储,去中心化存储虽然在隐私保护和安全性上具有一定的优势,但是在技术、治理、激励机制等方面仍存在诸多不足,比如对于大型文件的用户体验减弱、费用不稳定、激励机制设计上存在规模与效益的矛盾等。因此,未来去中心化存储市场需要引入稳定的费用定价、建立恰当的激励机制等方式来逐步完善,在保持安全性的优势基础上,实现规模与性能的兼顾。接下来将简析现有的去中心化存储项目,并对其优缺点进行相应评价。

4 去中心化存储项目简析4.1. 代表性项目

目前,已经部署的去中心化存储项目无法从单一的维度进行分类,每个项目都有各自的特点,只能在大致上进行初步划分。按功能实现的模式划分,以BitTorrent、IPFS和Lambda为代表的项目更加偏向于基于内容寻址的文件共享网络,而以Sia、Storj、MaidSafe为代表的项目则更加偏向于提供电子网盘。

BitTorrent是最早的去中心化存储项目,但是因其大部分缺乏激励机制,只有少部分引入了TRON网络的BTT经济,所以作为去中心化存储模式的雏形;IPFS则是去中心化项目中融资额度最大的,累积融资额高达2.57亿美元,通过出块奖励、手续费和服务费等方式激励点对点存储,并通过优化的Kademelia算法匹配存储的供应和需求;Lambda在IPFS的基础上引入了TBB经济,通过质押TBB代币变相地降低了存储矿工的进入壁垒;Storj和Sia更倾向于提供电子网盘,不要求实际存储,只要提供足够的存储空间就可以挖矿;Sia则是通过内置智能合约的方式为P2P存储网络中不同的节点提供协商和沟通的空间。

图表10:代表性去中心化存储项目比较

数据来源:HashKey Hub 4.2. BitTorrent——去中心化存储项目的雏形
(1)项目介绍BitTorrent简称BT,是一种开源的内容分发协议,由布拉姆科恩于2003年自主开发[6]。它采用高效的软件分发系统和点对点技术共享大体积文件(如一部电影或电视节目),并使每个用户像网络重新分配结点那样提供上传服务。常用的应用软件包括BitTorrent、μTorrent等。

(2)工作原理

BitTorrent的工作原理与一般的去中心化存储协议无差异,如上文2.1节阐述,将文件进行切片处理,再将每个Piece分割成多个大小为64-512KB的块,每块生成一个哈希字符串,然后利用SHA-1算法加密后分发给该文件或文件集的共享网络(Swarm)中的各个节点。具有完整文件的对等节点为种子节点,其他为非种子节点。然后,共享网络中的所有节点相互传输文件资源,让更多的节点变成种子节点,并且通过Opitimistic Unchoked算法选出2个共享网络外的节点,以扩大共享网络。

(3)项目架构

图表11:BitTorrent自下而上的架构图

数据来源:HashKey Hub

BitTorrent的架构采用“P2P+中心化”的双层模式进行布置,其中存储共享网络采用P2P的模式,而检索协议采用中心化检索模式,其索引文件后缀为”.torrent”。检索方面,正如本文2.2.3节所述,BitTorrent检索中以加密后的链接为节点的身份,采用哈希分布表对接追踪服务器的模式对特定存储文件或文件集进行有效检索。其中,Torrent文件包括Announce和info两个部分组成, Announce为检索所需的URL,其数据类型为字符串;info是一个字典型的数据,其索引包括Name(内容名称)、Piece Length(每个切片的字节大小, 除了最后一片,其他等分)、Pieces(利用SHA-1哈希加密后的每个Piece,以便于通过hash验证)、length or files(内容是单一文件还是文件集)。

存储方面,通过对特定Torrent文件切片后分散存储在不同节点上,在此之前必须通过Tit-for-Tat(TFT)的激励机制来筛选该内容共享网络中的节点。
BitTorrent将该内容共享网络中的所有节点分为阻塞节点(Choked)和非阻塞节点(Unchoked),只有非阻塞节点拥有足够的速度或带宽下载或上传该内容,而阻塞节点则无法传输内容。通过以下三种情况将被判定为阻塞节点:

(a)贡献过少或搭便车过多(只下载不上传)而因此被列入黑名单的节点;
(b)接受节点本身就是种子节点;
(C)存储空间已经满负荷的节点。

在TFT(Tit-for-Tat)算法配合的激励机制下,一方面根据以上判定方法在该内容的共享网络中确认阻塞节点,共享网络中的其他节点为非阻塞节点,再随机抽样出2个共享网络外的节点作为乐观非阻塞节点(Optimistic Unchoking)。一方面,遏制了该共享网络内节点搭便车(Leech)行为;另一方面,有利于共享网络的扩大。

(4)项目评价

BitTorrent项目作为最早的分布式存储项目,在激励机制和共享网络上的设计上是比较成功的,并通过免费的模式让其普遍受到用户的青睐,并且通过P2P网络实现了下载人数越多速度越快的目标。

但BitTorrent仍存在一定的改进空间。首先,BitTorrent只能将该激励机制局限在同一内容的共享网络范围之内,而对用户下载后保持内容的可用性方面缺乏有效的激励手段;其次,因BitTorrent的协议开源导致盗版猖獗,甚至通过该网络传播暴力、色情等不良内容,从而导致部分重视知识版权的国家(如法国等)全面禁止使用BitTorrent;再者,BitTorrent对贡献带宽高的节点不公平,在其他条件不变时,节点贡献的带宽越高,TFT算法的时延越长,下载速度的边际增长越低[7]。

图表12:下载速度随着带宽的提升而边际递减

数据来源:http://bittorrent.org/bittorrentecon.pdf

4.3. IPFS——融资额度最高的项目

(1)项目介绍

IPFS本质上是一个底层的开源文件传输协议,旨在对基于HTTP URL检索协议进行补充甚至替代,其代币为Filecoin。虽然Filecoin目前尚未正式在交易所上市或者发行,但是Filecoin期货早在2017年8月上线。Filecoin在上线之初就获得超过2.5亿美元的融资,其融资额远超其他去中心化存储项目,目前项目处于开发阶段,Protocol Labs目前对Filecoin激励机制和经济模型的仍在处于开发阶段。

(2)项目架构

图表13:自下而上的IPFS架构


数据来源:HashKey Hub架构最底层为Libp2p,包括路由层(网络协议)和交换层(P2P网络),确保数据能够在点对点网络上实现点对点的传输。上一层为Multiformat,用于加密数据并将数据抽象成放在链上的格式,它本质上是一个针对未来系统的协议集合,通过增强的自我描述格式(包括自我描述的哈希值、网络地址、编码值、序列化值、网络传输流和分组网络协议来实现互操作性并避免被锁定。

再上一层是Filecoin协议作为激励层,该协议包括链上存储市场、链下检索市场和Filecoin区块链三部分[4]。存储市场方面,矿工通过抵押Filecoin租用或购买存储空间,接着用户向其发起定向存储请求,并生成bid(用户)和ask(矿工)双向订单,并进行PoRep(复制证明)和PoSt(时空证明),最后用户获得有效存储(完成两种共识后的存储大小),矿工获得存储费用,注意不论是订单、交易记录还是Filecoin的价值转移全部在链上完成。检索市场方面,用户先发起检索请求,接着矿工获得检索订单并提供检索服务,最后用户通过支付Filecoin获得服务,注意仅有Filecoin的价值转移被记录到链下,其他均在链下完成。Filecoin区块链方面,分为订单簿(Orderbook)、交易记录(Transactions)、配置表(Allocation Table)。其中最底层的配置表通过连接到默克尔根对链上信息加密,用于存放双方的数字签名,对矿工发起质询并接受其回复;交易记录用来实现Filecoin的价值转移功能;订单簿用来记录存储订单。

图表14:自下而上的Filecoin架构


数据来源:《Filecoin白皮书》IPLD包括命名层、对象层和文件层,用于定义和查找数据,从而实现文件从命名到编程再到检索的过程。对于命名层,IPFS通过IPNS使在文件名变更的情况下锁定到其最新状态,它采用自我认证证明的方式,给每个用户分配一个可变的命名空间(路径为/ipns/),用户可以在此路径下发布一个用自己私钥签名的对象,当其他用户获取对象时可以检测签名与公钥和节点ID(IPFS之前生成的链接)是否匹配;对于对象层,IPFS使用Merkle DAG技术,构建了一个有向无环图数据结构,用于存储对象数据,通常由Base58编码的散列引用,该数据结构具有内容可寻址、防篡改、重复数据删除的特点;对于文件层,将大于256KB的数据文件分割成多个块(每块256KB),每块的数据类型为blob对象,list对象由几个blob对象组成(可能重复),而Tree则是一个json格式的从名字到哈希值的映射表,由于Tree比blob小从而便于通过DHT进行检索。

(3)项目评价

IPFS在治理上采用了PoRep和PoSt的证明有效遏制了女巫攻击、生成攻击和外源攻击等投机行为,并且通过强制购买GPU矿机使PoSt可以在每隔45s可以证明“任意节点是否在该特定时刻已经存储了某一特定大小的文件”,通过默克尔树让每个文件分片(Piece)保留一个根哈希值,大大减少了数据冗余。但是因项目处于初步公测阶段,仍有以下几点值得探讨:

(a)IPFS的市场非常小众,仅仅是对私存储(因为容量有限),并且由于GPU矿机的挖矿成本较高,家庭户无法直接参与到存储挖矿,只能参与检索过程并赚取服务费,仅仅只是对大型规模的矿池或者合伙存储供应商具有较大吸引力,从而不利于全网总存储集中于少数存储供应商或矿池分散化,容易陷入Filecoin供过于求的困境;
(b)如果数据量较大(超过1TB),用户必须记住和保留多个根Hash值,从而不利于用户体验,如何控制少数家庭用户的流失率将会成为IPFS发展的挑战;
(c)与BitTorrent相比,即便IPFS初期存储免费,检索费用根据数据热度决定,不提供永久的存储,仅仅只是租用存储空间,高额的存储费用和检索费用以及高投入(GPU矿机)导致用户门槛巨高;
(d)IPFS网络没有特定服务器的P2P节点,效率有待于进一步加强;
(e)无法充分遏制存储矿工上传大量垃圾数据作为有效存储的行为;
(f)PoRep共识机制决定了无法进行全网校验,付费存储的方式才可以进行挖矿,如果规模扩大,由于Filecoin的出块率等于挖矿节点的有效存储除以全网总存储量,挖矿难度将会大增,无法赚取收益,容易陷入价格战。

4.4. Lambda——基于IPFS的延伸

(1)项目介绍

Lambda是一个区块链数据存储的基础设施,通过对Lambda Chain和Lambda DB的逻辑解耦和分别实现,通过Dapp提供可无限扩展的数据存储能力,并实现了多链数据协同存储、跨链数据管理、数据隐私保护、数据持有性证明、分布式智能计算等服务。

(2)项目架构

Lambda包括Lambda Chain(同构多链的链系统)、Lambda DB(同构多链的链系统)、Lambda Agent(提供内存数据存储、性能监控、安全监控和Metrics数据上传能力的探针系统)、Lambda P2P(提供数据检索功能)[8]。Lambda采用链库分离的架构设计的原因有二:

(a)因为区块链系统更新导致分叉,所以将主要数据处理能力放在数据库(Lambda DB)上;
(b)通过功能子链保证其可扩展性,从而实现隐私保护(基于多授权机构属性加密)和数据持有证明(PDP, Provable Data Possession)。

图表15:链库分离的Lambda架构



数据来源:《Lambda白皮书》(3)经济设计Lambda项目采用LAMB和TBB双层代币的方式分别对存储挖矿和质押存储实施激励和惩罚手段。其中,LAMB是原生代币,用于区块奖励发放,流通、支付交易手续费和生态应用费用结算;TBB则是存储网络的存储空间资产,主要作用是质押和锚定存储资产权益。

Lambda网络中主要角色有5个:存储矿工(提供存储空间)、验证节点(负责运营和维护共识网络)、存储资产做市商(为存储矿工提供存储资源流通性)、合伙人节点(负责生态建设,不参与存储网络)、出块节点(由验证节点结合质押容量量按照权重选出,负责区块数据的打包以及共识的发起)[9]。

出块奖励有2种:对于存储挖矿方面,43%的出块奖励给矿工及其验证节点;对于质押挖矿方面,50%的出块奖励给矿工及其验证节点。二者的区块打包收益则根据该验证节点收集投票的多少决定打包区块收益(出块总奖励的1%-5%),社区收益占总收益的2%,验证人可以自定义佣金费率。

当验证节点对区块进行双签、对近10000个块中少于500个签名、质押少于666.66TBB时会受到“扣除质押TBB和提出验证节点候选人”的惩罚。

(4)项目评价

Lambda通过非中心化的方式,在存储做市商和数据库上以中心化的形式部署,大大提高了全网的数据吞吐量,使网络未来的可扩展性大大增强。它本质上是IPFS项目的延伸与扩展,并且通过引入TBB抵押存储机制降低了使用门槛,但是仍然不利于家庭用户参与到存储挖矿。

但是,Lambda仍有值得商榷的地方。比如Lambda通过NPoS(Nominated Proof-of-Stake)和PDP(Provable Data Possession)的存储证明机制无法证明存储矿工恶意存储大量垃圾数据从而提升其打包概率赚取LAMB的行为,一旦验证节点候选人被“黑化”,甚至全网总存储份额无法得到充分稀释,使51%攻击的难度较低,大多数挖矿的收益集中于少数人手上,从而导致用户的存储需求和质押需求大幅下降,从而导致LAMB逐渐供过于求,导致LAMB兑美元大幅下跌和贬值。

4.5. Storj ——基于ETH网络的分布式存储协议

(1)项目介绍

Storj 是一个基于以太坊的分布式云存储协议,由盈利性公司Stroj Labs开发,旨在利用未使用的硬盘和带宽,让P2P网络上任何节点之间都可以进行磋商、数据传输、验证数据完整性和可用性、检索数据、价值传递,存储节点通过提供存储空间收取租金,而其对手方承租磁盘空间支付租金。当前,Storj全球总存储量已经超过了150PB,存储费用为每月0.015美元/GB,下载1GB所需的带宽费用为0.05美元。

(2)Storj协议架构

Storj协议包括文件切片处理、Storj网络、PoR证明机制、支付协议、广播协议。对于同一内容的共享网络,节点分为存储节点、卫星节点和上连节点[10]。

存储节点方面,通过出租磁盘和提供带宽而赚取Storj代币,如果没有通过随机审查,则该节点会从存储节点池中剔除,它们不为存储数据的初始传输(带宽入口)付费,不为节点发现支付任何费用,有效遏制了存储节点为了更多存储空间而删除原有存储数据的行为(延长内容共享网络的可用性的持续期)。存储节点将允许管理员在最近30天内配置最大的磁盘空间和每个卫星的带宽使用量,在跟踪以上2个指标后拒绝没有有效签名的操作。

文件切片和加密方面,对于特定文件集Bucket,每个文件可以根据特定路径进行检索。对每个文件,首先将其切分成多个Segments(分片大小由用户自定义),若某个Segment小于其元数据的大小,则节省了存储空间,该Segment被称为内联Segment。在通过AES256-CTR算法加密后,将加密后的哈希字符串拆分成多个Stripe,每个Stripe执行纠删码编码(通过调整原数据块和校验数据块的比例来提升网络节点的容错能力,使数据安全性提升),将相同索引的纠删码片段拼接组成一个Piece。最后,将每个Piece分发给共享网络中不同的节点,并通过指针实现对不同文件片段的检索。

Storj网络方面,为了使承租节点和存储节点进行磋商和交互,Storj将合约和磋商系统建立在Kademlia分布式哈希表上,以实现传递所需的确认信息最小化。通过增强核心Kademlia功能,传递Ping(确认节点是否在线)、STORE(在DHT上存入哈希值)、FIND_NODE(寻找DHT上有存储空间的节点)、FIND_VALUE(寻找DHT上的哈希值)四种信息,促进不同节点的交流。首先,如果某个节点要加入某个文件的共享网络,必须先创建一个公钥私钥对,Kademlia节点的ID必须与通过SHA-256加密后的公钥哈希字符串一致,因此每个节点的ID也是一个有效的比特币地址,在发送信息前必须通过数字签名对信息进行验证。

共识机制方面,Storj通过“质疑-回复”的形式来实现PoR(检索证明),确保远程主机确实存储了特定文件分片,并验证文件的完整性和可用性。Storj采用默克尔根和默克尔树的深度两个指标,通过验证其叶子集合的元素个数是否与默克尔树的深度相等,并且提供的哈希值会重新创建存储的根。通过执行简单的Tit-for-Tat模式,如果存储节点未通过审核或无法证明自己仍然有数据,那么承租节点就不必付款;如果租户下线或未能按时付款,则存储节点可以删除数据,并从其他人那里寻找新合同。

图表16:Storj文件存储工作原理


数据来源:《Storj白皮书》


图表17:Stroj节点分类

数据来源:HashKey Hub

(3)项目评价Storj在技术上通过Bridge客户端实现了对Amazon S3等其他存储格式的兼容,并且通过以美元计价的标准避免了存储费用的大幅波动,其存储费用远远低于中心化存储平台,并且通过Kademlia算法优化了检索模式,大大减少了数据的冗余和资源浪费。

但是有些地方仍值得商榷。首先,由于Storjcoin的波动率较高,从而导致存储节点获得的出块奖励大幅波动,从而无法在长期上保证更多的用户提供更多的存储空间。其次,由于缺乏有效措施延长文件可用性维持的时间,这将不利于共享网络的扩大。再者,随着Filecoin加入市场,Storj不具备显著的竞争优势和资金优势。更重要的是,Storj本质上只是完成存储资源的对接,缺乏有效的内容寻址方法,不利于文件共享(如电影、音频等),只是适用于大规模数据的存储(如监测数据、交易数据等)。

4.6. Sia——BTC在去中心化存储的变体应用

(1)项目介绍

Sia是一个分布式云存储协议,由Nebulous公司负责开发与运营,倾向于在P2P和2B端与现有存储解决方案进行竞争。Sia支持存储网络的对等节点之间形成合约,为下载特定存储内容定价,旨在让承租节点以更便宜、更快捷的方式租赁到合适的存储空间,通过Siacoin经济设计促进承租节点和出租节点双方达成一致。目前,Sia的存储空间总容量仅为2PB,已存储的空间仅为206TB,而存储节点为333个,累计下载总量仅为1.2MB。

(2)项目架构

交易结构方面,Sia交易包括协议版本号、Arbitrary Data(任意数据字段,以便于数据的检索)、矿工奖励、Inputs(收入资金)、Outputs(支出资金)、文件合约、存储证明、数字签名(所有输入都应当进行数字签名)[11]。Sia通过在所有交易中使用M-N多重签名方案,完全避开了脚本系统,减少了复杂性和攻击可能性。每个区块头的输入必须来自上一个区块头的输出,因此该区块的输入必须是上一个区块头的输出的哈希值,输出包含其Merkle根;Siacoin的支出条件是“时间锁定已经超且足够的指定公钥添加了它们的签名”,签名的数量、公钥组和时间锁定写入Merkle树的叶子节点,而该树的默克尔根作为Siacoin发送的地址,交易双方可以自主选择披露公钥的数量和签名的数量。

文件合约方面,文件合约是存储节点和其客户之间的存储协议,文件被分片成多个散列在哈希加密后,生成其默克尔根(合约的核心),根散列以及文件的总大小可用于验证存储证据。合约进一步规定持续时间、挑战频率和支付参数(有效证明的奖励、无效或缺少证据的奖励以及可以错过的最大证明数量)。其中挑战频率规定提交存储证明的次数,在挑战期间提交一份有效证明将触发转账交易;若没有在持续期内提供有效证明,合约将会发送到“错过证明”地址(有效防止DDOS攻击)。支付参数中“可以错过的最大证明数量”为1个阈值,如果错过证明数量超过该阈值,合同无效。

存储证明方面,存储证明仅需要合约的身份(哈希值)和证明数据。首先,通过原文件分片存储在默克尔树的叶子节点,生成的哈希根将与之前预先生成的根哈希进行对比,若二者相同,则可证明这些分片确实来源于原文件。Sia通过让客户端指定很高的挑战频率,并对丢失的证据进行大量处罚,从而阻止低于全网总算力50%以下的任何攻击,并遏制私自挖矿的行为。另一方面,由于用户节点有权拒绝任何交易,所以当恶意矿工人为以“是否将存储证明上链”为名来勒索高额交易费时,用户可以直接终止交易。

(3)项目评价

Sia协议本质上是BTC在去中心化存储的一个变体应用,但是其机制设计有些地方仍值得商榷。在Siacoin经济方面,Siacoin的发行数量是递增的,但是其增长率是递减的(初始区块产生30万个Siacoin,之后每产生一个区块减少1个Siacoin,直到减少到30000个区块,平均每10分钟产生1个区块),从而导致随着Siacoin数量的增加而带来较大幅度的贬值,从而导致其存储费用波动较大。对于挖矿体系来说,随着Siacoin的贬值与滥发,导致算力较强的矿工会产生不成比例的优势,最终挖矿人数将会大幅下降,不利于调动矿工参与的积极性。因此,Sia不论是从存储规模上还是交易效率上都远远低于Storj,更不用说和BitTorrent相比。

5  去中心化存储未来展望5.1. 去中心化存储的发展陷入瓶颈或停滞从严格意义上,去中心化存储并非真正意义上的去中心化,而是非中心化,比如Filecoin在存储方面是去中心化的,而在检索方面是中心化的。尽管中心化存储在隐私保护、收费标准、数据安全性方面存在诸多不足,但是去中心化存储由于法律因素以及经济设计等诸多问题,从而导致大多数去中心化存储平台的客户仍然十分小众,提供的存储空间远远小于中心化存储网络,难以满足数据大规模存储和检索的要求,与1.3节中提到的去中心化存储的价值主张发生严重背离。以下两点主要原因导致去中心化存储网络难以做大:

(1)存储成本不稳定,费用结构不合理一方面,去中心化存储网络的存储成本存在较大波动性。比如Sia、MaidSafe和Lambda等项目因其代币波动较大,而且代币发行机制设计不合理,容易导致代币超发,从而导致其代币价格长期呈下跌趋势,进而导致存储费用和检索费用不稳定,从而导致用户流失率较高。另一方面,数据检索不是免费的,从而使费用结构不合理。尽管去中心化存储网络的存储费用远远低于中心化存储,比如Storj的存储费用仅为每月0.015美元/GB,远远低于Amazon的每月2.5美元/GB,但是如果考虑检索费用或者对数据检索和调用频率的话,那么去中心化存储费用很可能高于中心化存储的成本。

(2)利益多方冲突导致项目方的短期行为严重
为了克服传统非许可型区块链(如BTC、ETH和EOS)等可扩展性不足的缺陷,相当一部分去中心化存储项目采用非中心化的方式,比如Lambda在存储资产做市商的中介化与链下的Lambda DB和Filecoin检索协议的链下处理。但是,项目方和用户的利益在诸多情况下存在不一致,从而导致项目方的短期行为。存储网络规模的扩大和交易公平性往往是存在矛盾的,例如Filecoin的项目方为了短期扩大全网存储规模而基于有效存储占全网总存储的比例设计挖矿成功的概率,导致用户存储和挖矿的动力减弱,具有高存储空间的节点可以获得比线性增量更高的回报和收益,而项目方本身可能就会扮演具有高存储空间的角色,使去中心化存储项目的价值观出现扭曲。

(3)代币发行通胀率设计陷入两难
去中心化存储网络的商业目标是吸引更多的用户提供更多的存储空间,并且将存储空间的利用率最大化,而实现此目标的前提是保证代币的高流动性并且不让其币值稳定,但是这往往是矛盾的。如果代币发行的通胀率偏低,在未来一定时期内代币的发行量是递减的,很容易造成代币走向升值趋势,存储网络参与者倾向于囤积代币以实现资产增值,从而不利于维持存储市场的高流动性,全网存储总量将会受到抑制;如果代币发行的通胀率偏高,在未来一定时期内代币的发行量是递增的,很容易造成代币兑法币(一般是美元)长期呈贬值趋势,那么矿工的铸币交易产生的收益会大幅缩水,从而导致矿工买入磁盘的投入高于因提供存储空间产生的收益,若买入GPU矿机挖矿则更会入不敷出,从而导致进入项目壁垒较高。目前,MaidSafe、Storj、Sia和Lambda等项目陷入了第二种困境。

(4)如何快速稀释全网总存储的集中度
去中心化存储项目在初期,全网总存储将不可避免地集中在少数存储供应商手中,它们大多数以合伙人的身份参与到其中。全网总存储的大规模集中容易发生51%攻击,不论攻击方是单个存储供应商还是矿池,甚至是“多方合谋”。导致大多数家庭用户掌握的存储份额越来越低,导致存储区块链从“非许可型”变质成“许可型”,从而导致其代币的需求下降并陷入长期贬值趋势,全网的流动性大幅减弱,甚至大型存储供应商的流失。

5.2. 去中心化存储发展建议

针对5.1节的去中心化存储的发展瓶颈,我们对未来去中心化存储项目的布置提供以下参考建议:
(1)   引入稳定币的机制使费用趋于稳定;
(2)   检索应当免费;
(3)   使用Hash加密时让区块头上的根哈希值与上一个区块头的根哈希值高度相关,让特定存储内容的共享网络的其他节点有更强的动力去验证其存储文件的完整性和可用性;
(4)   设计合理的共识机制,让出块概率与提高有效存储总量呈线性正相关;
(5)   降低提供存储的进入壁垒,让家庭用户可以以存储矿工的身份参与到存储网络当中,不要让过多的全网总存储集中在少数存储供应商的手上,建议以存储空间的绝对值为度量实施有效奖励,而非比例。

参考文献[1]袁煜明,刘洋.《区块链技术可扩展方案分层模型》[2]彭俊.复杂网络的拓扑结构及传播模型的研究[D].西安:西安电子科技大学.2009[3]海沫,朱建明.区块链网络最优传播路径和激励相结合的传播机制[J].计算机研究与发展.2019,56(6):1205-1218[4]《Filecoin白皮书》: https://filecoin.io/filecoin.pdf
[5] E. Adar and B. A. Huberman. Free riding on gnutella. First Monday, 5(10), 2000
[6]《BitTorrent白皮书》: https://dwz.cn/dKuhcIRR
[7] Bram Cohen. Incentives Build Robustness in BitTorrent. [email protected]. 2003
[8]《Lambda技术白皮书》: https://dwz.cn/yktCaGCp
[9]《Lambda经济白皮书》: https://dwz.cn/ftm1Wl6d
[10]《Storj V3白皮书》: https://storj.io/storj.pdf
[11]《Sia白皮书》: https://sia.tech/sia.pdf

作者:陈艺鑫
来源: HashKey Hub社区
编者注:原标题为《万字讲透去中心化存储》

本版积分规则

小黑屋|Archiver|手机版|比特人-比特币第一中文社区

GMT+8, 2020-1-28 21:06 , Processed in 0.022389 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表