跨链的核心技术点:共识穿透

我们先来认识共识。“共识”,其汉语解释为共同的认识。相互没有联系的彼此,对一个特定问题持有共同的看法,除了因为一些不可控的道德、价值等方面的共识,规则的作用是非常重要的。

区块链的共识机制
共识机制,就是游戏的规则,社会的法律,是人们共同采用的达成和维护共识的方式,也就是所有人都认可并遵守的规则,这也是区块链的灵魂所在。
区块链最早的共识是 Bitcoin 的 POW,这是挑战 dificulty,谁最先产生合适的 nonce。POW:proof of work, 翻译过来是工作量证明,即用一定量的工作量来换取记账权利,在比特币中,就是计算一个数学难题,谁先算出来并广播出来,谁就有权利记账。
区块链时代的拜占庭容错:Tendermint
因为 POW 共识有巨大的能源浪费,效率低的缺点,大家就开始实现类 BFT 共识, 最知名的是 Tendermint。
Tendermint 开源项目诞生于 2014 年,旨在解决比特币的工作证明共识算法的速度,可扩展性和环境问题。通过使用和改进 1988 年在麻省理工学院开发的经过验证的 BFT 算法,Tendermint 团队是第一个在概念上展示股权证明加密货币的公司,它解决了第一代股权证明加密货币所遭受的无关紧要问题。正因为它的名气,才成就了后面的 Cosmos。
区块链时代的进阶:BFT-DPoS
又因为类 BFT 共识有多方网络交互,带来的网络压力和性能导致区块链上层应用无法拓展。接着就出来了 EOS 的 DPOS, 这个共识在类 BFT 上用“时间换空间”来提升效率,大家轮流出块,用大家出块了的 BFT 签名来统计 BFT 确认,当然这个,至今没有论文证明这符合严格的拜占庭协议。
ChainX 1.0 在线跑的共识,就是这类共识, 用时间换空间,每个 Epoch 中大家轮流出块,统计在该 Epoch 后的某个块高度,出块人大于 2/3 签名,视该 Epoch 为确认。
因为没有严格的 BFT 论文验证, 该共识虽然在性能上已经是单共识中最快的模式。但 ChainX 2.0 还是舍弃了该共识,升级为 Polkadot 的共识。
Polkadot 的共识
Polkadot 共识是 babe + grandpa 的组合, babe 负责出块,grandpa 负责 BFT 确认。
babe 共识又是 aura +vrf 随机的组合。primary slot 走的是 vrf 路线, second slot 走的是 aura 路线。当出块人 vrf 签名挑战 primary threhold 成功,出的是 primary slot,否则出的是 second slot。
当然, 在算最长链时, primary(vrf 随机验证通过)产生的 slot 权重要高于 second(aura)产生的 slot。
grandpa 共识负责 BFT 确认, 因为 BFT 网络通信的压力, 我们把 grandpa 和出块分开, 这样导致 grandpa 共识完全不影响链的出块性能。
跨链的核心技术点:共识穿透
言归正传,我们讲回共识穿透。
我们先来给共识穿透下个定义, 共识穿透是指两条不同共识的区块链,如何从共识层打通,让两条链互联有无,最终实现共识跨链。
共识穿透有两种路径
1.从点对点网络层 着手,直接和共识交互。 
2.从交易入手,通过交易输入到区块链共识。
共识穿透是选择 “出块”共识实施 还是在“确认块”共识实施较好, 当然是在“确认块”实施有意义, 因为跨链交互产生的区块或者交易信息,必须是确认的。
具体的如何去实操,实现共识跨链,想法很多,实现的方法也很多,至于如何更好,需要更多的实践经验。