RapidChain: Scaling Blockchain via Full Sharding

1. Background

基于分片的区块链协议缓解了传统区块链协议中的节点规模问题、延迟问题和低吞吐问题。但是目前基于分片的区块链协议,每笔交易仍需要与参与者数量呈线性的交互量,这降低了吞吐量并且增加了延迟。除此之外,这些协议或者是有较高的失败可能,或者是有较强的假设,无法很好地应用。为了解决这些问题,文章提出了RapidChain协议。

2. Main Contributions

l Sublinear Communication。每笔交易只需要次线性(o(n))的交互。
l Higher Resiliency。可以允许存在不超过三分之一的欺骗节点。(之前其他文章的工作最多允许四分之一)
l Rapid Committee Consensus。降低了3-10倍的通信开销和延迟。
l Secure Reconfiguration。
l Fast Cross-Shard Verification。每个节点只需存区块链的部分信息,通过log 的时间和空间进行路由。
l Decentralized Bootstrapping。不需要设定公共的创世块。(can bootstrap itself with only O(n√n) messages without assuming any initial randomness)

3. RapidChain Protocol

1) Decentralized Bootstrapping

初始参与者集合通过选举协议选出root group. The group is responsible for generating and distributing a sequence of random bits that are used to establish a reference committee. Then, the reference committee creates other committees.
构成election network的方法:
RapidChain: Scaling Blockchain via Full Sharding_第1张图片
a) 构造sampler graph,如Level 0和level 1所示,构成一个随机二分图,一部分是nodes,一部分是groups。
b) Subgroup election。所有节点进行计算,每个group内哈希值最小的选为subgroup成员。
c) Subgroup Peer Discovery。被选中节点发送消息告知全部节点。
d) Committee Formation。重复上述过程直到选出root group。

2) Consensus in Committees

a) 把大消息拆分成与可靠节点数量m相等的chunks,然后通过erasure code scheme创造出与欺骗节点数量n相等的chunks。节点收到任何m个chunks即可拼出完整的消息。每个节点通过Merkle tree来验证消息的完整性。
b) 共识过程分成四步:首先leader发出消息;其余节点收到消息并广播;如果有可靠节点收到多个版本的block headers,说明leader是欺骗节点,并且拒绝这个消息并向外广播;最后如果可靠节点收到足够数量的对同一header的广播,则接受这个消息。
c) 上述四步操作可以通过流水线方法进行加速。

3) Cross-Shard Transactions

RapidChain: Scaling Blockchain via Full Sharding_第2张图片
通过交易中不同的committee ID拆分交易,每个committee只保存输出值的ID前缀是自己的committee ID的交易。

4) Inter-Committee Routing

RapidChain: Scaling Blockchain via Full Sharding_第3张图片
每个committee的路由表中保存log n条记录,根据编号进行路由。

5) Committee Reconfiguration

利用Cuckoo rule,当新节点加入时,保证所有的committee保持欺骗节点数量不超过1/2,并且不对所有的committee进行重组。

新节点加入后,不需要对全部历史交易进行验证,只需要下载仍有效交易的集合,保证能够验证未来交易即可。因为区块链是通过投票决定的,而不是最长链原则。

你可能感兴趣的:(论文)