区块链技术迅猛发展,新想法、新概念、新名词层出不穷。
万向区块链因此推出“技术研究报告”专栏,
定期与大家分享在区块链行业创新及热门技术方面的研究成果,带领大家第一时间研究学习新技术,紧跟技术发展趋势,探索发掘技术的应用价值。在《雪崩协议 Avalanche 技术调研》一文中,我们将共同探索Avalanche共识算法的工作原理、优缺点及其在联盟链中的应用场景。
本文作者:万向区块链通用架构技术部 陈炫慧
导论
2015年5月,康奈尔大学发表了一篇《从“雪花”到“雪崩”:一种新型的亚稳态共识协议族》的论文。它的研究团队是Team Rockets,共识算法取名叫 Avalanche,能非常形象地描述该协议的共识过程,就和雪崩一样,开始是随机崩塌(随机样本结果统计),最后大面积崩塌(即共识形成)。它的核心理念是通过不断反复对网络中的节点进行抽样并收集它们对某个提议的响应,最后可以把所有的诚实节点导向到同一个共识结果。
协议可以达到 1300 tps,交易也只需要 4 秒的确认延迟。
Demo:
https://tedyin.com/archive/snow-bft-demo/#/snow
雪崩协议工作的主要原理:重复抽样投票(Repeated sub-sampled voting)
直观举例为:
房间里有很多人,大家一起决策中午是吃披萨还是烧烤。某些人初始可能选择披萨,另一些人初始选择烧烤。最终,大家的目的是就中午吃什么达成共识,即参考大多数人的意见。
雪崩协议的解决方案是:每个人随机询问房间内的一部分人午餐想吃什么。若有多于一半的人选择披萨,则其也选择披萨——即采用其所询问的大多数人的选择。每个人都重复以上过程,每轮会有越来越多的人具有相同的选择。 足够轮数之后,可达成共识,每个人都选择同一选项。
亚稳态 Metastable
所谓亚稳态,是指系统在某段时间内处于稳定状态,但在另外一段时间内可能是不稳定的。稳态代表了系统的最低能量点,而亚稳态则是一个局部的而非全局的最低能量点。以下图中的小球为例,如果用比较小的力推小球,则会停留在位置1这个亚稳态上,而如果用比较大的力推,则会进入位置3这个真正的稳态上。
• 绿色(Green):消耗很少能源
• 安静(Quiescent):没有交易时不需要工作(出块)
• 高效(Efficient):节点交互复杂度O(knlogn) ~ O(kn)
如何实现以上目标?主要依赖以下几种措施:
• 并行共识模型:不使用单一复制状态机(RSM)模型,每个节点维护自己的RSM(可以互相转移所有权),系统对有关联的交易只维护偏序(partial order)
• 反复随机采样:引导诚实节点产生相