摘要:在上一篇文章《IPSE跨链:BABE共识算法工作原理简析中已经介绍了Babe算法,本文将阐述与之协同工作的GRANDPA算法的工作原理。


IPSE“星际搜索”是一个面向IPFS网络的搜索引擎,帮助用户快速搜索分布式网络上的文件,并快速访问。在IPSE的挖矿模型中,用户完成分发、存储等任务,为哈希内容添加语义标签,数据安全存储到IPFS网络,获得挖矿奖励。其token发行和转账依赖于EOS网络。由于区块链网络之间的互操作已经不可避免,数字资产的转换需要一个跨链通道,IPSE开启了2.0计划。

 

在现有基础上,IPSE将打造应用链,经过跨链系统,实现与其它区块链网络的互通,之后会完成资产映射,使效率提升。IPSE 2.0网络将基于现有的Substrate进行开发设计,连通Polkadot等网络。Polkadot是一个异构的多链架构,其本身也使用Substrate,而在底层,Polkadot使用到了IPFS协议栈的Libp2p协议。

 

IPFS(星际文件系统)作为一种分布式的超媒体传输协议,目的是构建一个去中心化结构的互联网,这和Substrate/Polkadot的愿景一致

 

Polkadot愿景是为互操作性、安全性、可扩展性和创新提供最强大的平台。Polkadot的目标是在2019年底之前发布一条中继链和几条平行链以启动创世块。此后,网络将增加到大约100条平行链。IPSE将会使用到平行链技术,进行2.0网络的设计。为保证IPSE平行链Polkadot系统中继链状态一致性,利用了混合共识机制分别是BABE和GRANDPA。

 

GRANDPA:一个值得信赖的共识算法

比特币的工作量证明或其它协议有一个问题,即它们不提供异步安全性,这意味着足够大的***可能导致全网混乱。Polkadot为了实现异步安全,将区块的生成和确认进行分开。

 

Polkadot使用其原始的GRANDPA(基于GHOST的Recursive Ancestor Deriving Prefix Agreement)共识来建立一个更安全,更有弹性的网络。

 

在良好的网络条件下,GRANDPA几乎可以瞬间完成分块。在糟糕的网络条件下,比如网络分区,GRANDPA可以在分区解析时一次性完成大量的块(理论上是数百万个)。

 

GRANDPA背后的关键是将区块链的结构纳入共识算法。考虑一个区块是否有效时,依赖于要考虑该区块父块的有效性。此区块有效即父块有效,依此类推。另外,参与者对单个区块进行投票,而是让参与者对他们认为有效的最高区块进行投票,并且GRANDPA算法将利用表决方式将投票应用到之前所有的区块。之后GRANDPA算法确定投票数量大于2/3的最佳块,并生成最终证明(proof-of-finality)。最终证明是通过获得多数票并将它们捆绑在一起成为一条消息来构造的。

 

换句话说,只要有超过2/3的验证证明链包含了某特定区块所有和该区块的相联的区块也就获得最终确认。

 

那么拥有投票权的验证人会作弊吗?首先,验证人运行的时全节点,负责验证和增加区块到 中继链中,2/3保障只有符合全网大多数节点的利益的事物才会被确认。其次,在网络中还有提名人和校对人(钓鱼人)角色,验证人作弊将受到校对人的制约,并将失去提名人的信任。

 

总体上,BABE算法负责出块,GRANDPA算法负责确认,在2/3递归确定原则的进行下,区块整体效率就获得质的提升。中继链是Polkadot网络的核心,它确保平行链和平行链之间传递信息。信息可以是 交易或任何类型数据。IPSE 2.0平行链构建之后,在BABE+GRANDPA混合共识算法的作用下,将获得高的消息传递效率,并同时能共享共识安全。