关于任何一个区块链项目而言,基于区块链的一致层是最重要的底层架构,一致层的规划直接决议了整体网络的功率、安全性、去中心化程度等问题。当下许多新公链的兴起,很大程度上也是因为以太坊在DeFi Summer使用迸发后,链承载才能缺乏的问题被扩大而导致的流量外溢。
相较于单纯的公链,存储公链虽然是一个比较细分的功用性网络,但关于数据处理功率的要求并不亚于一般公链。究其原因,还是因为当下公链为了追求功率,许多时分链上只是作为终究状况确认的场所,而将较多的杂乱内容放在链下执行。
作为Web3.0底层基础设施,去中心化云存储网络CESS(Cumulus Encrypted Storage System)在规划之初秉持着对去中心化理念的坚持,在“信息上链”层面做到了尽可能的满意,并使用高效的链上处理功率来避免除中心化带来的低效问题,在“涣散”和“高效”两个对立面上做到了很好的平衡。
1. 随机选取轮值一致节点机制(RS)
为了在进步链上业务处理功率的一起又能够完结节点的去中心化,CESS选用了创新的随机选取轮值一致节点机制(RS)来完结区块打包以及其他链上业务。正如字面上所看到的,该机制中完结链上一致的节点是轮值的,也便是说会随着时刻的推移而改变。另一方面,所谓的“轮值”,在挑选上也是“随机”的,单从字面意思来看,CESS在一个时刻窗口内会由一定数量的轮值节点负责一致的保护,而且经过选取的随机性来确保去中心化程度。
不过,实在的RS并不如字面上看起来那么简略。
1.1 如何完结“随机”与“轮值”
其实区块链最重要的点是一致问题,但在解说RS的一致机制之前,需求先介绍一下该机制中节点相关的问题。
RS机制答应一切希望成为节点运营者的用户能够自由地参加候选节点,但在每一个时刻窗口内(例如每1万个区块),只选取11个正式的轮值节点参加出块。而未参加出块的候选节点,也能够经过参加数据预处理流程来为自己的作业才能供给证明,然后参加下一轮的正式轮值节点选取。在这个进程中,网络对每个节点都会进行信誉评分,当节点在作业进程中呈现对网络整体利益存在危害的行为时,将会降低其分数。当分数低于某一基准线时,该节点将无法参加候选节点的竞争。
这儿简略解说一下,CESS关于用户上传的数据需求经过一轮数据预处理后,再分配给节点进行存储。预处理包含了数据的分片、加密、冗余等流程。详细的内容咱们会在后续存储的详细流程中展示。
咱们来完好看一下机制的整套运作流程:首要,网络从一切候选节点中随机选取11个轮值节点,在固定的时刻窗口内完结出块等一致的保护作业,而候选节点则参加数据的预处理进程为自己的作业才能供给证明。在轮值节点当值进程的一起,网络将会在满意条件的候选节点中再度随机选取11个节点作为下一个时刻窗口内的正式轮值节点进行一致保护,以此类推。
在这个进程中,如果有单个正式节点存在故意作恶或无法满意网络要求等问题,然后导致被强制下线时,网络将从候选节点里随机选抽节点补上直至完结此轮时刻窗口的当值。所以对一致节点运营者而言,即使只是作为候选节点也需求坚持对网络的持续奉献,如此能够大大添加获取收益的可能性。
1.2 拜占庭容错与可验证随机函数
在了解完详细的节点进入与退出机制后,下面便是区块链的核心问题:如安在去中心化的前提下确保链上数据的准确性。在该方面,CESS挑选了选用安全性更高的拜占庭容错与可验证随机函数来确保一致的安全。
1.2.1 拜占庭容错
CESS借鉴PBFT一致算法,引入门限签名算法和搜集者人物,完结高可用性的拜占庭容错一致算法。该算法确保了当网络中呈现作恶节点时,仍然能够完结链上一致的达到。
本算法的11个当值一致节点可分为主节点和副节点,其间副节点依据任务不同,共包含转发节点和搜集节点两个人物。每轮的一致进程都会有一个主节点,主节点在收到来自客户端的恳求后将打包买卖成块并发送至一切副节点。然后,转发节点将确认与签名音讯并转发至搜集节点。搜集节点经过门限签名机制,把搜集到的一切音讯聚合成一个签名音讯,随即发送至其他一切节点。接下来,持续新的一轮转发与搜集进程,直至将确认音讯返回至客户端。值得注意的是,两轮的搜集节点能够指定为同一节点,也可为不同节点。本算法确保安全性和活性的的前提相同是假定体系中拜占庭节点数量不超过体系总节点数的1/3。节点总数量为N时,最多只能容纳f个拜占庭故障(叛徒)节点,令N大于等于3f + 1。
1.2.2 可验证随机函数
与大多数公链不同,CESS的一致节点经过随机选取生成,这意味着对网络应对改变的才能有更高的要求。为了能够在这样的背景下仍然尽可能确保安全性,CESS选用“随机从候选一致节点中选取出若干一致节点,接着再经过一致算法合作打包买卖出块”的形式,在添加节点选举的随机性和不行猜测性的前提下,进步区块链的安全性。
每个候选一致节点具有一个公私钥对,在每轮时刻窗口选举当值一致节点时,各候选一致节点经过以下公式核算哈希随机输出。
R=VRF_Hash(SK, Seed)
P=VRF_Proof(SK, Seed)
其间,SK是节点的私钥,Seed是CESS链上某区块中的一个字段信息,无法提前猜测。R为哈希随机输出,P为哈希证明。
经过上述步骤,验证者能够轻易验证和两个值确实是由具有该值的节点发生。
R=VRF_P2H(P)
VRF_Verify(PK, Seed, P)
其间PK为被验证节点的公钥。
此时,可挑选哈希随机输出最小的11个节点为当值一致节点。如果选出的节点多于11个,将依据信誉度评分高低进行挑选。
1.3 准入与退出
虽然CESS对节点的进入并未设置过于苛刻的前置要求,但也需求满意网络运转条件的根本运转指标、资源奉献指标,并质押一定数量的CESS代币来进行参加,避免节点作恶。在节点完结了CESS代币的质押之后,就能够参加到上述的流程中去。当节点想要退出时,网络会依据节点在运营进程中的评分来判定是否全额交还典当代币。理论上只需节点正常作业,未呈现长时刻的掉线或许故意作恶等问题,网络都将全额交还典当代币。
该准入机制可预防女巫进犯,进步一致安全性。
2. RS机制优势安在
单从机制规划的视点上来说,RS略显杂乱了一些,但CESS团队在规划该形式的时分,有针对存储公链特别的考量。
2.1处理“矿工窘境”,避免独占
“矿工窘境”是指在存储网络中,因为矿工更倾向于存储能够发生收益的数据而并非区块前史(能够理解为不愿意树立全节点),只经过向少量全节点调取数据来确保网络同步或许参加矿池,然后导致了全节点的过于中心化。CESS经过RS来完结一致和存储的隔离,一方面确保了关于区块前史的存储愈加去中心化,另一方面也避免大矿工的过于集权而对网络整体的开展不利。
2.2 大幅进步去中心化框架下的功率
如果单纯由11个节点来保护一致,虽然进步了功率,但网络却会像联盟链一样十分地中心化。CESS为了在该高效计划的背景下完结去中心化,所以设置了随机选取每一轮参加保护一致的机制。只需求满意节点要求即有时机参加出块,很好地处理了中心化的问题。
2.3 完结链上业务处理
CESS的链上数据,除了买卖以及合约的确认,还包括了用户上传数据的“方位”信息。也便是说,CESS成功完结了所存储内容元数据的上链。虽然当下许多项目倾向于使用部分数据链下处理来进步链上功率,但这样的计划在安全性上需求十分多的确保机制,而且也是因为链处理功率较低而不得已为之。CESS因为链上业务处理的高效,所以能够完结元数据的上链,然后在数据存储的寻址等方面能够直接经过链上数据完结,而上链则是确保了数据的实在性。
但这个需求说明的是,实际的操作中,为了存储网络功率优先的原则,节点会保护一个元数据的数据库,寻址将首要从该数据库中出发,只有在无法找到的情况下才会挑选在链上调取数据。该数据库是经过同步链上信息而生成的,本质上并没有破坏实在性这个特色。
而作为一致节点之所以需求将相同的数据一起在链上链下进行保存,一方面是为了在网络需求旺盛时降低不断向链上恳求数据造成的高成本,另一方面也是便利了其他调度方能够更快地处理用户数据。
3. 总结
总体而言,CESS选用RS机制,一方面完结了一致与存储分离,避免呈现“矿工窘境”与独占;另一方面,经过可信执行环境(TEE)技能定时查看一致节点的诚实性和调度功用,来确保节点之间经过公平竞争来为网络供给尽可能优质的服务。基于Substrate开源框架开发的CESS去中心化云存储网络,不仅支撑WASM,还将在未来兼容EVM智能合约,这不仅是为了便利开发者树立CESS原生生态,让许多对数据交互需求较高的项目有容身之地;也使得许多使用能够无缝迁移至CESS,为前期的快速开展铺好了路途。