以太坊2.0 共识算法

Casper如何保持着超大规模的验证人的情况下,实现即时最终性?当下以太坊共识验证人的规模大约是60万,这么多的验证节点,在技术上面保证了以太坊极大的去中心化。但是以太坊共识算法是确定性的算法,也就是说经过了一定的时间后,某个区块一定是不会改变的,而不是概率性确定。casper采取对PBFT算法

Casper如何保持着超大规模的验证人的情况下,实现即时最终性?

当下以太坊共识验证人的规模大约是60万,这么多的验证节点,在技术上面保证了以太坊极大的去中心化。但是以太坊共识算法是确定性的算法,也就是说经过了一定的时间后,某个区块一定是不会改变的,而不是概率性确定。

casper采取对PBFT算法进行改造,保持pbft算法的即时敲定性,但是必须解决pbft的以下三个问题:

  1. 防止Leader作恶而进行veiw change所带来的极高切换成本。
  2. Leader选举的不可预测性,在区块链领域非常重要。这保证了区块链的liveness。
  3. 因为pbft是基于广播签名消息通信的共识算法,每轮共识都需要两轮N^2通信复杂度,这就极大的限制了共识节点数量。而共识节点数量是区块链是否去中心化最重要的一个方面。
  4. 出块和对块共识,从理论来说是两个东西,为了提高性能,最好可以进行解耦。

分叉选择规则

  • Committee (委员会) 是由信标链在每个 slot 期间随机选择的验证者集合 (每个委员会的目标验证者数量是128名),每个委员会中第一名被随机选择的验证者将有机会在该 slot 期间提议新区块,该委员会的其他验证者将对这个被提议的区块进行证明 (attest)。

image.png

LMD 让“消息 (messages)”发挥了作用,即以太坊2.0链上的最终性是“由最新消息驱动的”。消息就是证明 (attestation),所有这一切归结起来就是,拥有最多投票的分叉链将被认为是“权威链”

上图中体现了由最新消息驱动的分叉选择规则:绿色区块表示经由 LMD GHOST 分叉选择规则证明了的区块,笑脸符号表示最新的验证者证明 (attestations),某个区块中的证明总量 (笑脸总数) 就是该区块的权重,用区块中的数字表示。

在上图中,尽管位于上方的那条分叉链是最长的链,但下方的那条由绿色区块组成的链才是“权威链”**,因为绿色区块包含了最多的证明,也就是拥有最多的验证者投票**。

检查点

image.png

每个epoch的第一个区块我们称之为检查点。 每个epoch里面32个slot,每个slot会根据随机算法,选出一个委员会,这个committee的第一个validator成为proposer,proposer出块,committee的validtor对区块进行attestation投票,同时对上一个 epoch的检查点进行FFG投票,也就是会进行两次投票,一次attestation投票给本slot的新出块,同时对上一个epoch的检查点区块进行投票。attestation投票是为了分叉链选择做依据。FFG投票是为了进行区块的justified和finalized。

image.png

每个epoch会把全网所有的验证人随机的全部分配到每个slot,而每个slot的committee的validator都会对上一个epoch的检查点进行FFG投票,这也意味着,本epoch走完时,上一个epoch的检查点已经被justified(+2/3的验证人对其投了FFG投票)。pre-pre-epoch的检点已经被finalized(不会再改变,相等于pbft的+2/3的commit投票)。

从这里我们知道,casper是通过把全网60万validator通过随机分组的方式组成每个slot的committee,如果是32个slot的话,每个slot的committee的validator数量是60万/32 == 2万左右。这2万左右个validator对在slot时间(12秒)内对当下slot进行attestation投票和对上一个Epoch进行FFG投票。以这样的方式把对于一个区块的投票,变成了对于一个epoch的投票(和polkadot的grandpa对于链进行投票一个意思),从而加快了的区块链性能。

而且对于一个检查点的投票周期,从PBFT的全部validator在一个view周期内全部投票完毕,变成了全部validator在32个slot时间内(12秒*32==6.4分钟)投票完毕,解决(缓解)了pbft在大规模验证人情况下的消息复杂度剧增的问题。

当然了,这里的validator的退出是会带来一个远程攻击,解决办法是validator请求提出后,会有一个延迟期,延迟期过了才能退出。

参考

https://support.token.im/hc/zh-cn/articles/17271785866009-imToken-Labs-%E4%BB%A5%E5%A4%AA%E5%9D%8A-PoS-%E6%BC%94%E8%BF%9B%E5%8F%B2 https://learnblockchain.cn/article/1235 https://www.tuoluo.cn/article/detail-56560.html https://www.techflowpost.com/article/detail_10681.html https://www.8btc.com/article/473424 https://zhuanlan.zhihu.com/p/135231626 https://www.jianshu.com/p/f8656a2a4a9d

点赞 3
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
杜满想Elvin
杜满想Elvin
老程序员,区块链架构师