原文作者:@LuozhuZhang
原文编译:0x711,BlockBeats
众所周知,PoS以太坊的共识协议是「Gasper」,它是在LMD-GHOST之上应用CasperFFG构建的。所以要想搞清楚完整的以太坊共识协议,就必须了解这两个部分。此外,这些设计真的很有趣。我打算梳理一下这两个协议的背景和演进,以及它们简单的工作流程。
PoS共识算法的三大流派如下:
1.Nakamoto-inspired
2.PBFT-inspired
3.CBCCasper
Nakamoto-inspiredPoS是一种基于链的算法,模拟在PoW中挖矿。它通过伪随机选择验证者来创建新区块。其在2012年的「Peercoin」论文中首次提出,peercoin是基于权益证明共识的第一个加密货币。
PBFT-inspiredPoS基于多年对拜占庭容错的研究。在2014年的「Tendermint」论文中首次提出。一般来说,这些算法会选择一个代表账本规范交易的唯一链。
Casper直接继承了BFT算法,做了一些修改。CBCCasper是由@VladZamfir提出的,有一些很好的资料可以更充分地解释它。
V神的CBCCasper教程
VladZamfir写的CBCCasper历史
CBCCasper介绍视频
虽然以太坊最终选择了CasperFFG而不是CBCCasper,但对CBCCasper的研究也很有价值,比如满足以太坊需求的分叉选择规则「LMD-GHOST」。CasperFFG由V神和VirgilGriffith在2017年提出,引入了justification和finalization的概念,并引入了slashingconditions和动态验证者机制,这些都是非常重要的特性。
CasperFFG用于保证「最终性」,这在PoW中是不存在的。简单来说,每个验证者都会对检查点进行投票,经过两轮投票后,检查点将被「最终确定」。
所有最终确定的检查点都成为规范链,所有忠诚节点都同意他们永远不会逆转这条链。「最终检查点」之后的区块可以随意分叉,但之前的区块不允许分叉。
CasperFFG除了通过「最终性」来保证区块链安全外,还引入了slashing条件来惩罚所有违反规则的验证者,所有违反规则的验证者都将被跟踪和惩罚。
除此之外,CasperFFG是无需许可的,pBFT通过一个列表来维护共识,只有列表中的人才能成为参与者。CasperFFG构建了动态验证者机制,所有验证者可以自由进出。CasperFFG用于保证「最终性」和「安全性」,负责确认区块的最终状态,但不负责创建新区块,所以它需要底层区块链和分叉选择规则。
以太坊使用的分叉选择规则是基于GHOST,该规则最早在2013年的一篇论文中提出。2017年,@VladZamfir在CBCCasper工作时,他尝试将GHOST与Casper结合,产生了一个变种「LMD-GHOST」。
区块链允许分叉,当出现不同的分支时,应该选择哪条链继续添加后续新区块,需要分叉选择规则。PoW使用的是最长链规则。思路是锻造最长的链需要最多的算力,所以这条链是最可信的。所以当所有矿工添加新区块时,他们会默认在最长的链上添加。
GHOST的思路与此类似,其选择票数最多的链而不是高度最长的链,LMD-GHOST做了一些修改,只考虑最近的投票。
LMD-GHOST的规则很简单:
-从创世区块开始;
-每次有分叉,选择票数多的分支;
-重复,直至找到blockleaf;
-返回链的头部;
这是CasperFFG和LMD-GHOST的演变以及它们如何工作,它们共同保证「安全」「活性」。LMD-GHOST允许提议者随时创建新区块,新区块将按照分叉选择规则添加到权重最大的链上。虽然CasperFFG将根据所有验证者的投票最终确定一个规范链。所有忠诚节点默认接受规范链,从而获得安全。
共识真的很有意思,以太坊对PoS的研究始于2014年,2022年完成了合并。这是一条漫长而曲折的道路,过程中诞生了许多奇妙的想法、设计和工程。
原文链接
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。