GRANDPA

GRANDPA(GHOST-based Recursive ANcestor Deriving Prefix Agreement)是Polkadot中继链实现拜占庭最终性的工具。

GRANDPA在一个部分同步的网络模型中工作,只要 2/3 的节点是诚实的,并且能够在异步设置中处理 1/5 的拜占庭节点。

GRANDPA有一个像 BABE 一样的已知 weight 的权限集用来选取选民

GRANDPA 验证人在链上投票,而不是在区块上投票,也就是说,他们投票给一个他们认为“最好”的区块,并且他们的投票可以传递地应用到之前的所有区块。一旦超过三分之二的 GRANDPA 权限者投票支持某一特定区块,它就被认为是最终的。

具体流程

GRANDPA按轮次工作,每一轮都有一组3f+1名的合格选民,其中2f+1名被认为是诚实的。此外我们假设每一轮都有一个参与者被指定为主要参与者,并且所有参与者都同意投票集和主要参与者。我们可以从选民集中伪随机选择或轮换投票。在高层次上,每一轮都包含一个双回声协议,之后每一方都等待以检测我们是否可以在这一轮中敲定一个块。如果这一轮不成功,双方只需继续进行新的初选即可进行下一轮。当选择了一个好的主要参与者,预言将一致(所有诚实方返回相同的值),并且网络是同步的(在GST之后),一个新的块将被最终确定,它将传递地最终确定其所有祖先。

posted @ 2022-04-20 17:31  哪吒young  阅读(236)  评论(0编辑  收藏  举报