Avalanche协议是美国常春藤名校康内尔大学的Gun教授所发明的。初见avalanche协议的时候,我在思考这个为什么要用雪崩二字来命名这个协议。猜测可能是形象类比的方式。我们先来看百度百科对雪崩的定义“当山坡积雪内部的内聚力抗拒不了它所受到的重力拉引时,便向下滑动,引起大量雪体崩塌,人们把这种自然现象称做雪崩”。我把这句话的核心关键字用字表现出来了。而此协议基于内聚力所产生的变化就是协议的核心思想。
共识协议的发展
分布式网络系统在处理交易或者是存储数据时,最重要的一点就是网络中的节点对共识结果的达成。图灵奖的牛人Leslie Lamport早在1982年发表了“The Byzantine Generals' Problem”,提出了在分布式网络不可信任的环境下在达成共识,得需要三分之二的节点达成共识才能保障系统的可用。而后Leslie提出了经典共识协议来提高整个网络的交易速度,这在当时有着跨时代的意义。但是经典共识协议有两个明显缺点
1、整个网络中的节点数量不能超过1000个,因为节点越多通信成本越高,基本上是节点数量的二次方。
2、节点之间必须得互相知道其他人是谁。
再后来到了2008年,中本聪提出了全新的共识协议。在中本聪共识协议中分布化与自由度得到了极大的提升。在这个网络中,任何节点都可以随时加入随时离开。任何人都可以成为矿工提交区块。但是中本聪也深知网络的无权限接入会导致网络的不安全性和危险性大幅增加。所以在交易生成验证上采用了工作量证明。在某种意义上是实打实的把现实的资源与能源转换为了比特币的价值。所以在达成共识这一块比特币确实是做到了,通过非人为因素的计算结果来使得全网节点达到统一,不过缺点也是明显的,那就是交易速度过慢,成本过高。而雪崩协议结合了前两者的优点,在全球范围内结算只需要大约2秒钟。每秒可处理1000–10,000个交易。整个网络无需就节点参与者是谁达成一致。最重要的是协议是绿色环保的,它不会浪费任何能量,并且没有特殊的矿工生态系统。
核心理念:亚稳态
“亚稳态是Avalanche协议的一个主要原理,它是通过传递“信任阈值”来达成共识。这种信任阈值通过网络传播,结构化和验证信息。亚稳态通常在高可用性数据库中可以看到达到共识结果的法定人数,其中还包含有助于系统快速达成共识的其他结构信息。为了有效地在网络上传播信息,单个节点将信息x传播到n个节点的网络中的法定数量k个节点,然后又将x传播到另一个法定数量k个节点。在分散系统中,对于接受和验证信息x是会存在相反意见的,人们希望协议的信任阈值的大小值是整个K节点中有超过2/3k的多数节点。因此,与传统的基于八卦的共识协议的显着区别在于亚稳态通过法定节点数量传播信息,而不是通过单个节点之间互相传播信息,从而保持整体较低的通信成本”。-------以上的话是出自perlin的白皮书中关于亚稳态诠释片段,我选择了一些简要部分综合而成。其实perlin中也是对这一机制做了简要阐述而已,真正的全部原理诠释在今年五月份Gun教授与匿名团队Team Rocket(还以为是神奇宝贝的火箭队)合作发表的文献中“Snowflake to Avalanche: A Novel Metastable Consensus Protocol Family
for Cryptocurrencies”。可能你对于刚才上面的话不是特别能够理解,好在我在瑞士洛桑联邦理工学院毕业的Mohammed ElSeidy博士个人博客中找到关于Avalanche的一篇文章,里面简单解释了亚稳态信息传递达成共识的过程。那么我们在下面尽量用简单的话语去诠释这个机制。
上图就是一个基于Avalanche协议的公共网络,一个节点随机向5个节点传递一个指令信息。而这5个节点就是上述的法定数量k节点。这5个节点收到的指令是在两个颜色(红蓝)中选择一个。
5个节点随机表示自己的结果,在发送信息节点的角度上来看,它所看到的5个节点共识结果肯定是非红即蓝。所以在这个规定数量节点k(5)中,发送信息的节点所达成的共识结果就是红色。结果选择之后的节点在后续的过程不再改变。
然后整个网络的节点一直重复此过程,这有点像是一个采样过程。该协议的核心思想就是在达成共识过程中一直重复这个采样过程。
在两轮或者三轮之后网络节点的共识结果可能还是红蓝各一半,数量相差不大。但是这样打平手的几率会以指数方式衰减。因为整个过程是对于统一结果的倾向性越来越高,网络会自动感知颜色变为另一种颜色。并且这一结果变化将会在传递后期变化越来越快,直到整个网络颜色达成一致。
思考
好了,我们已经简要说明了Avalanche协议达成共识结果的原理。我们现在再来对比中本聪共识协议,思考一些相关的东西。
生态系统----很明显基于Avalanche协议的网络系统每个节点都是绝对公平的。话语权不在什么矿工身上。这个生态系统任何人都没有特权。并且技术上是拓展性极强的、延迟极低的。
双花支付----在比特币白皮书中,整个最为核心的伟大发明就是工作量证明防止了双花支付。工作量证明的存在使得中本聪共识协议规规矩矩的一步一步达成共识。每个区块的诞生经历了天量计算,而6个区块的确认使得双花支付基本不可能发生。而在Avalanche协议的网络系统中。如果有人想在两笔交易中花费同一笔钱的话,Avalanche协议本身的属性是无法在这两笔交易中作出选择。从而会导致这笔钱丢失,间接的惩罚了攻击尝试者。因为Avalanche协议的重点只是达成共识,并不是作出选择。
Perlin作为基于Avalanche协议的第一个公共网络系统,记账结构采用DAG。我们可以未来关注一下perlin的发展。
参考文献
1.Snowflaketo Avalanche: A Novel Metastable Consensus Protocol Family forCryptocurrencies, Team Rocket, 2018
2.Perlin: Scalable DAG-baseddistributed ledger protocolusing Avalanche consensus.
3.Demystifying “Snowflake to Avalanche”
4.Protocol Spotlight: Avalanche