把区块链技术应用到存储领域,建立去信任、更分散、去中心化存储网络的努力已经经历了数年,在2020年至2021年这一轮区块链的热潮中,去中心化存储引起了极大的关注。本文简要做一个汇总。
去中心化存储的简要介绍
随着IT技术的发展,云计算逐渐占据主流,这使得现代计算和存储高度集中化。在过去的十年中,一些大型的云公司发了大财,将传统的计算机系统划分为基于云的各类产品。
这种中心化的计算和存储模式的发展是历史发展的一个阶段,其成功的一个的原因在于中心化构建计算和存储体系相对更加容易,无论是架构、安全、和性能都更容易处理。
但是,这种集中化有一些明显的弊端,比如当其中一个提供商发生故障时,就是重大的互联网事件。这样的例子举不胜举,在中外每一年都能看到这样的案例,包括2017年的Amazon Web Storage中断,Github在2020年6月的长期中断或Microsoft在2020年10月的持续数周云服务问题。
这样的一种趋势,违背了互联网发展的初衷,为了建立更好的网络,摆脱互联网巨头的控制,世界需要更分散的网络、计算和存储。这也是区块链发展的契机和受欢迎的原因之一。在区块链发展10年之后,随着区块链技术的突破,基于区块链技术的分布式存储也迎来发展的时机。
去中心化存储是构建新型网络的关键组件之一。其发展令人期待也令人兴奋。
去中心化存储的基础特点
去中心化存储的设计有不同的方法,这也是产生不同的去中心化存储项目的原因。通常而言,大家都要解决很重要的几个基本问题:
去信任化
去中心化也是去信任化,也就是说不能依赖于单个或数个裁判来判定数据存储的有效性和持久性。最好通过算法或一些机制来保证,这也是区块链最重要的特性之一。
也就是说,这里面有一个存储证明的问题。作为一个去中心化存储项目,需要有一套机制和共识来保证每一个存储的服务者不能作假,从而保证整个网络的有效性和价值
弹性
弹性就是要避免文首提到的一些互联网中断或存储服务终止事件。当数据存储在一个服务商的设备上的时候,你必须信任这个服务商,但是单个服务商因为其系统的设计或维护问题,难免出现故障,而一个分散的网络,内容在多个分散的节点上进行相互备份,并能够同时服务,从而提供更高的弹性和数据安全性。因此,一般说来,与区块链其他项目相似,一个分散的去中心化存储网络往往建立在一个点对点的网络智商。
效率
效率分为多个方面,包括存储资源利用效率、内容传输对资源的利用率以及存储访问的效率等等。
去中心化存储在存储的发展初期,就其访问效率而言,当前还很难和中心化存储抗衡,但在其上发展新的应用,其对效率和信任的要求往往不同,去中心化存储的发展会首先带动一些对信任要求较高的存储应用方面。
同时,去中心化存储由于其分散性和广泛性,随着其发展,其存储资源的利用效率会极大地高于传统去中心化存储,尤其是一些热门数据,用户随时可以访问,网络可以根据热度对数据的副本数量进行自动增减。这是一种弹性的效率。而当大量的用户加入网络后,内容传输的效率也会大大提高,无论是带宽还是能源的消耗都会大大降低。同时规模效应也会极大地提高访问速度。
去中心化带来的特性
在一个去中心化的网络之中,构建一个去中心化的存储网络或存储市场,这个分布式的存储网络中需要的特性,这些特性在不同的项目中实现程度可能有所不同:
- 内容寻址:一个完全去中心化网络中存储访问的基本共识,也是存储效率和访问效率实现的基础。内容寻址与传统存储的路径寻址不同。在去中心存储网络中,要实现内容寻址,往往通过在网络中的分布式哈希表来进行内容定位,也需要实现内容的灵活路由来提升内容的可达性
- 可验证性:内容要是可自动验证的,这与内容寻址的技术一脉相承,通过达成共识的算法来自动进行数据验证
- 开放性:一个去中心化网络往往是开放的,而不是封闭的,那么在这样一个网络中,用户数据的隐私需要采用与中心化网络完全不同的技术来实现,简单的说,就是采用密码技术
- 可编程:在一个去中心化数据网络平台上,数据的流通是没有阻碍的,数据的所有权和使用权的管理是一个重要的课题,数据和应用完全可以是分离的、分层的。数据可以在应用之间自由流动,应用可以是中心化的应用,也可以是智能合约
- 信息流和价值流的结合:在去中心化网络中,由于应用和数据的通证化,数据的流动和价值的流通可以同时绑定在一起,直接实现数据价值
- 可扩充性:去中心化存储网络在设计上需要是可以线性扩展的,在线性扩展的同时,要求性能不能降低,最好是由于网络的扩展,网络的性能越来越好。
一些去中心化存储项目
去中心化存储的发展已经有数年事件,随着理论的突破和技术的发展,去中心化存储技术发展也更加成熟。总体来说,去中心化存储网络的基本实现都是把数据划分成 Chunk 或 Piece,存储到一个点对点网络中的一些节点之上。
IPFS(星际文件系统)
IPFS大家再熟悉不过了,其由写意实验室创建于2014年,目前是DApps生态系统中最受关注的技术之一。IPFS是一套协议,是在Web3中替代HTTP的技术。
IPFS利用了前人开发的诸多技术,比如 DHT,BitTorrent,Git,SFS等等,采用内容寻址内容寻址。IPFS非常成功,其在2019年全网就达到40万节点左右,目前估计有上百万节点。
IPFS公共网络是一个开源的免费网络,它本身不是区块链项目,也没有与之对应的Token,这样一个网络主要用于公益存储,也有一些商业系统建立在其之上。总的来说,由于IPFS没有激励层,其服务质量难以保证。这就是后来诸多区块链项目在IPFS之上建立,为其提供激励层从而希望提供有保障的去中心化存储服务的原因。Filecoin 就是其中之一。
Filecoin
创建Filecoin就是是为了激励IPFS网络上的数据存储。Filecoin协议通过独立存储提供商的网络提供数据存储和检索服务。这些存储服务提供商不依赖于任何第三方,仅仅基于网络协议和共识来提供服务,从而获取服务费用和区块奖励。
Filecoin 有诸多创新,其中最为突出的是其存储证明,包含复制证明和时空证明,通过这些证明,能够实现存储内容的真实性和可用性保证。另外,Filecoin 是第一次建立了去中心化的存储市场和检索市场,同时,Filecoin作为区块链项目,其共识机制也是第一次在大型公链项目中实现了有用共识,是一种较为绿色的共识方式。
Filecoin 并不是一个完整的存储解决方案,而是提供了存储的基础设施,也就是建立了存储仓库,并建立好了监控系统,但是存储服务还有很多方面需要考虑,比如数据的冗余性、服务接口、统一的客户端SDK等等,可编程智能合约等,这些都需要在更上的层次解决。
在一个完善的 Filecoin 存储服务的系统中,IPFS会在里面承担重要角色,从而加速网络服务。Filecoin 提供了基础平台,也给上层服务和应用提供了丰富的想象空间。
Crust
Crust 也是在 IPFS 之上建立的存储市场,它为 Polkdot(波卡)提供存储解决方案,与 Filecoin 不同,Crust 的存储证明在 TEE (可信执行环境)中进行,凭借对 TEE 的信任,大大加快证明的速度,从而实现更快的证明,因此相对 Filecoin 而言,其参与的门槛较低,数据的存储和检索更易实现。
与 Filecoin 的存储市场有用户实现点对点存储交易不同,Crust 通过网络来帮助用户寻找存储服务,并实现存储的冗余。
Siacoin
Sia是一个分布式存储的早期项目,始于2013年于HackMIT,并于2015年正式启动。该项目旨在利用全球未充分利用的硬盘驱动器容量来创建一个数据存储市场,该市场比现有解决方案更高效,更便宜。他们有一个可行的产品,并具有有趣的设计功能。
Sia偏爱工作量证明(PoW),拥有自己的ASIC芯片用于Siacoin挖矿,并利用文件合约来设置存储的规则和要求(类似于智能合约)。他们的存储证明算法用于进一步保护和验证网络上的证明和文件合约。
由于技术的原因,Sia的发展一直不温不火,但作为区块链存储的早期项目,其初期还是吸引了不少注意力。
Storj
StorJ 是一个在以太坊网络上构建的一个去中心化存储项目,拥有大量的社区用户,并且致力于开源和用户体验的精神。Storj本身既是一个平台,也是加密货币和存储分布式应用组件,也就是做事做了全套。
他们的技术围绕文件共享展开,类似于种子文件的工作原理以及将部分文件分散给网络中的用户的方式。当用户需要文件时,他们会请求它,并且Storj使用分布式哈希表来查找所有碎片并将它们组合在一起。这些文件在共享之前已经加密,上传者拥有自己的私钥以验证所有权。
Storj Labs公司的另一实体是营利性机构,它将其网络出租给数千名用户,并收取网络使用费。这是一个稍微集中化的模型,可与Dropbox和Google Drive等同类产品竞争。他们还与Microsoft Azure和Heroku建立了合作伙伴关系,以部署他们的一些开发工具,这对开源开发人员生态系统来说是一个很好的计划。
但不可否认,Storj实际上是一个半中心化的项目。在其存储证明无法完全利用算法实现的情况下,这可能是一个不错的选择。
Swarm
Swarm也是基于以太坊建立的另一套存储协议,是以太坊关于去中心化网络的愿景的一部分。Swarm的目标是为以太坊提供存储。但是存储显然没有那么简单,Swarm距今已经开发4年以上,目前测试网正在进行中,计划于今年正式上线。
采用Swarm,以太坊生态的去中心化应用可以看成三个部分组成:
- Whiper 用于消息传输
- Ethereum 用于计算
- Swarm 用于存储
实际上,当前测试的 Swarm Bee 是其第二个实现了,这个实现采用 IPFS 使用的LibP2P 作为其网络层协议,摒弃了其第一个版本采用的 devp2p。
arwave
Arweave最大的特色是可以永久保存数据。只要在将数据添加到区块链上时,才需要支付存储费用。Aweave认为数据存储成本和摩尔定律类似,会逐渐下降,用户超额付款所产生的利息将帮助后续存储,因此一次付费足以覆盖永久存储的成本。
去中心化数据库
上面提到的每一个项目都是存储项目,具体一点讲,可以对标中心化系统的文件存储或者对象存储。还有另外一类存储也非常重要,那就是数据库,去中心化数据库业界也有不少探索,列举部分如下:
- OrbitDB:OrbitDB是一个分布式的对等数据库(每个对等都有其自己的特定数据库实例)。OrbitDB使用IPFS作为其数据存储,并使用IPFS Pubsub自动将数据库与对等方同步。在对等方之间复制数据库。当任何对等体进行更新时,它都会自动生成数据库的最新视图。在OrbitDB中,应根据数据的访问权限对数据进行存储,分区或分片。它支持多种数据模型,即键值,日志(仅追加日志),提要(与日志数据库相同,但可以删除条目),文档(存储索引的JSON文档)和计数器。
- GUN:GUN是实时,分散,离线优先的图形数据库。默认情况下,它允许在所有连接的节点之间无缝地进行数据同步。GUN背后的想法是提供一个去中心化的数据库系统,该系统可提供最终一致性的实时更新。
- Skeps:Skeps旨在构建定制的分散式数据库ChainwolfDB。它受OrbitDB的启发,使用IPFS pubsub作为基础层,并在每个对等节点上维护一个mongo实例以存储数据。数据层MongoDB为要共享的数据提供了持久性和动态模式。它使用PGP加密以安全的方式将数据同步到其他节点。它还支持事务,有助于确保所有请求的节点都接收到数据或没有数据时可对它采取相同的行动。
还有很长的路
目前去中心化存储网络项目中,Filecoin发展最快,当前其存储容量已经超过5EiB,而且每天增长超过30PiB以上,速度惊人。但同时,我们应该看到,Filecoin 上面的真实数据存储比例还非常非常低,在Filecoin,或者其他分布式存储项目之上如何完善用户存储和访问机制,提高用户体验同时又不失安全性,还有很多方面需要设计和突破。
2020年末,是区块链存储的发展的开端,在未来的数年内,这一领域必然讲得到更大的发展,生态更加壮大,尤其是于去中心化存储相适应的应用将纷纷出台。在分布式存储登上舞台大战宏图之前,区块链应用以金融创新为主,他们都基本上无关内容。去中心化存储为区块链打开了一扇大门,Web3.0 的发展除了价值交换的创新,内容交换的创新将是其最重要的内容。给我另一个6年,展示给你一个全新的世界。