查看原文
其他

CESS机制详解(3):存储、内容分发网络与多副本可恢复存储证明

CESS CESS Fans 2023-02-17

上一篇文章我们详细解释了CESS(Cumulus Encrypted Storage System)在共识机制和区块链层的设计上的思路:通过随机选取轮值共识节点机制(R²S)来保证共识达成的公平与高效,同时避免存储矿工的话语权过大。区块链本身除了交易、证明、合约等基本信息外,还包含了用户上传内容的元数据,是少有实现了元数据链上记录的存储公链。这些要归功于CESS高效的链上事务处理效率,使得在链上处理数据这种更去中心化的方式得以成为现实。

本篇文章将重点阐述CESS在存储和内容分发层上的设计,以及CESS独特的多副本可恢复存储证明机制。与存储挖矿相关的内容我们将在后续单独向大家展示包含了共识、存储以及内容分发的挖矿机制与分发规则。

1

 存储网络

CESS目前将存储层与内容分发层并为一层网络,但我们还是分开来看二者的功能。

作为去中心化存储网络最为重要的功能的载体,存储网络是整个CESS网络的“心脏”。CESS的存储网络由存储矿工组成,解决当前去中心化存储无法提供弹性可伸缩的云存储能力的问题,CESS存储网络通过虚拟化技术将存储资源「池化」,对顶层应用或外部应用提供统一的、按需使用存储方式,屏蔽底层硬件差异化带来的不稳定问题。矿工通过一系列链上证明包括有效存储空间、存储数据量、流量贡献量、及运行性能等指标来向整个CESS网络提供有效的存储空间及可用存储空间,CESS并非通过撮合需求方和存储服务提供方来提供点对点的交易,而是整合存储矿工提供的存储资源,并通过算法将需求按照其所需的容量、带宽等分配给相应的存储服务提供方(即虚拟化技术,指将矿工提供的具体的服务抽象为「虚拟」存储服务),即当用户有数据存储的需求时,并为应用提供存储服务。

在存储资源的利用上,CESS通过“池化”技术实现了资源利用效率的最大化。所谓“池化”,就是将所有的存储资源作为一个整体的存储资源池而非个体矿工进行看待,用户上传的数据将会随机分配给满足存储条件的存储矿工。

具体来说,当用户上传数据后,共识节点会首先将数据进行加密(采用可信执行环境进行加密)、分片和冗余等预处理(去中心化代理重加密机制),处理完毕的数据将依据用户对数据的存储要求(例如存储时间等)挑选满足条件的矿工进行存储。最重要的是,CESS并非选择一个或几个矿工完成存储任务,而是将切片后的数据段随机分发给满足要求的矿工。如此便避免了Filecoin点对点的存储模式中可能出现的大户垄断的情况。

另一方面,这样的模式还可以实现存储资源的利用率最大化。在现有的存储网络中,当接收了较大规模的数据存储任务(例如超过5TB的数据量),可能对某些家庭矿工而言就无法实现整体的存储,也就失去了竞争的能力。这一点在现有的大部分存储网络中都没有得到很好的解决,当存储网络发展到一定程度,Filecoin和Arweave等都会不可避免的走向存储的中心化。举例来说,当网络中存在矿工A(3TB存储容量)和矿工B(1TB存储容量)时,对于现有的存储网络而言,2TB的数据只能由矿工A存储,而CESS可以实现A和B各存储1TB,从而实现最大的利用率。

除了利用率的提高,该模式还降低了存储设施的硬件门槛。一方面是由于矿工只需要执行存储的任务而无需进行例如“接单”和运行节点这样复杂和专业的事宜;另一方面,也是由于矿工会随机接收数据段,并不取决于矿工本身的规模有多大。

如此而言,CESS的存储层真正实现了存储“去中心化”和使用效率最大化的愿景,真正将闲置资源利用起来,而并非完全为了获取收益而额外增加存储资源。

2

 内容分发网络

CESS中的内容分发网络事实上起到了传统的云中CDN的功能。

对于去中心化的存储网络,最大的问题之一并非存储本身,而是“数据的上传”。对于矿工尤其是国内的矿工而言,下载用户需要存储的数据不难,但当用户需要使用时上传所需要的网络成本却比较高。这就导致很多矿工在存储数据后虽然通过存储证明保证了数据的续存但不愿意将数据上传给用户,导致了网络实际上的不可用。

不仅是去中心化的存储网络,即使是对于传统的云来说,也无法承受用户直接从云数据中心直接调取数据而产生的高瞬时并发与流量,这也是CDN存在的必要性之一。

CESS在内容分发网络中设计了缓存以及检索矿工来帮助网络实现更加高效的运转,其中缓存矿工将缓存热门数据来实现更快的调用速度,而检索矿工则将帮助应用快速定位所需数据的位置。

3

 多副本可恢复存储证明 (PoDR²)

上文中所提到的数据预处理、向矿工分发等过程,属于CESS创新的多副本可恢复存储证明(PoDR²)机制。多副本可恢复存储证明(PoDR²)机制确保CESS平台有效的存储了用户上传数据时定制的副本。任意一份数据上传CESS系统后,将会自动复制若干个数据副本(默认为三份,可定制),并为每个数据副本生成可恢复证明所需要辅助验证元数据,并将这些元数据保存到区块链系统之中。

此时,CESS可将处理后的数据下发至各个存储矿工之上,在有效的周期内,矿工需要上报自己存储的数据,便于CESS系统确认数据是否损坏。

值得一提的是,PoDR²机制会以组成单个文件(包括所有副本)的所有数据段为整体进行统计与监测。一旦某个数据段被认定为损坏时,CESS会自动生成新的数据段作为补充,并发送至新的存储矿工,保证副本的可恢复性,提升系统数据存储的鲁棒性。

显而易见的是,CESS的存储机制最大的不同点就在于:相较于依赖矿工对数据进行冗余等保护操作的设计,CESS在系统的底层就实现了对数据的加密、冗余等保护策略,而矿工需要做的仅仅是将系统处理好的数据段进行存储并保证存储的有效性。此外,即使部分矿工丢失了数据,系统也可以通过其他的数据段实现对原始数据的还原。此举大大降低了单点故障的可能性,提高了去中心化存储网络中数据的安全性。

4

 总结

CESS在存储机制的设计上,一方面通过多副本可恢复存储证明(PoDR²)机制实现了对数据隐私和安全的保护,并且设计了容灾的应对措施;另一方面,也通过对存储资源的“池化”,实现了存储资源利用率的最大化,并且解决了真正调用“限制资源”的能力,为去中心化存储在机制和设计理念上的创新和进步做出了卓越的贡献。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存