RapidChain: Scaling Blockchain via Full Sharding (CCS 2018)

摘要部分说明需要扩容,之前的方案要么容错率低要么有强假设,例如可信初始化。

RapidChain采用了对通讯、计算和存储的完全sharding。采用高效的跨链交易验证,避免Gossip给整个网络。

介绍了contribution, 主要有以下几个贡献:

O(n)级别的通讯,而之前的分片方法都要求Ω (n)级别的通讯量 每个transaction.

可以容错1/3, 主要做到的方法是采用了同步的拜占庭共识。

快速委员会共识, 采用的方法是IDA Gossip协议对大块进行广播.

安全委员会重配置, 采用布谷鸟rule, 解决渐适应攻击者. 作者提出这些内容在之前的文章中没有提到,或者缺失.

跨分片的验证. 借鉴Kademlia思路, 设计了委员会路由协议, 不需要对全部节点Gossip.

去中心化的Bootstrapping. 不需要初始公共随机性, 之前的大部分工作都在初始创世区块里使用随机性.

RapidChain总览:

假设有1/3的节点被渐适应拜占庭攻击者控制,委员会选举从所有节点中抽取一个参考委员会,这些委员会的节点假设最高以1/2的概率被控制。参考委员会负责periodic驱动每个epoch中的reconfiguration 事件。

Epoch Randomness. 在每个epoch的末尾i,参考委员会都会生成新的随机性i+1(怎么生成?安全吗)。(1)每个末尾用新的随机性重新采样,作为sharding committees. (2)让每个参与者都能取得新的identity,在每个epoch中。(3)重新配置委员会。

Peer Discovery and Inter-Committee Routing. 每次提交tx的时候,用户将tx提交给少量任意的RapidChain节点,然后这些节点通过委员会协议将tx路由给需要存储tx的委员会。路由协议和Kademlia相似。

跨分片验证。每个Cout的成员要batch一些交易进一个大block. 在区块可以加入ledger之前,要验证交易transaction是否合法,Cout中的节点要和input委员会确认这个交易是否合法。(会不会导致延迟和开销?)

委员会间共识。一旦向外部(也就是input委员会)验证了transaction的合法性,就要进行内部委员会共识。采用同步拜占庭容错,达到1/2的容错率,然后在small committee中达到1/3的容错。

协议重配置。每个阶段参考委员会都会周期性生成一个配置块,建立两条信息:
(1)新的epoch随机性.(2)新的参与者和委员会成员列表。采用Cuckoo规则,每个委员会之间只移动恒定数量的节点。

委员会共识的详细信息:

总的来说,共识只作用在块的标头上达成共识。 IDA Gossip不是reliable 广播方法,所以可能出现模棱两可的情况。后续会通过对默克尔根的共识算法解决。(怎么做到的?)

协议细节:共识协议包含四个轮次。每个iteration,每个委员会中都会随机选出一位领导者。领导者负责推动共识协议。在第一轮中,每个leader gossip一个<Hi, propose>。然后所有的其他节点gossip <Hi, echo>,如果leader广播不同的数据在这个阶段就会被发现。如果收到了more than一个版本的header,对于iteration i,节点会Gossip Hi’ 和pending。如果有节点不接受提议的块头,那么块头会被挂起。如果区块被挂起,那么在下一个诚实的leader时会解决这个问题。

 

没有评论可显示。

发表评论

邮箱地址不会被公开。 必填项已用*标注