一、Avalanche简介
它论文地址见:https://ipfs.io/ipfs/QmUy4jh5mGNZvLkjies1RWM4YuvJh5o2FYopNPVYwrRVGV。
它的研究团队是Team Rockets,共识算法取名叫“Avalanche”,能非常形象地描述该协议的共识过程,就和雪崩一样,开始是随机崩塌(随机样本结果统计),最后大面积崩塌(即共识形成)。它的核心理念是通过不断反复对网络中的节点进行抽样并收集它们对某个提议的响应,最后可以把所有的诚实节点导向到同一个共识结果。
“亚稳态”是Avalanche协议的一个主要原理,它是通过传递“信任阈值”来达成共识;这种信任阈值可通过网络传播,结构化处理以及相互验证;与传统的基于八卦(Gossip )的共识协议的显着区别在于亚稳态通过法定节点数量传播信息,而不是通过单个节点之间互相传播信息,从而保持整体较低的通信成本。它用DAG 结构来记录所有的交易,用BFT 来做信任阈值的共识。
作者声称这个协议可以达到 1300 tps,交易也只需要 4 秒的确认延迟。
二、可能存在的问题
1. 随机抽样达到的是非确定性共识
随机数对于区块链技术来说很关键。 本质上,分布式账本的核心问题就是随机选择出块人的问题,这个随机性要能被全网确认,并且不能被操控,也不能被预测,否则恶意节点可以通过操控这个随机数从而达到操控整个链。在Avalanche中,随机抽样是非常关键的,但是对怎么随机抽样却没有像Algorand那样详细地描述,随机抽到样本的整体代表性也没有详细的理论论证,因此其所达成的共识只是一种概率性的共识,并非确定性共识。
2. 冲突交易不受保护
如果用户不小心将一笔交易发送了两次,Avalanche 是无法在这两种交易之间做出选择的,会直接导致这笔钱丢失,这点被Avalanche 当成能抵御”双花”攻击来做宣传,但是实际应用中,用户无任何主观恶意下,不小心将一笔交易点击两次发送的情况还是会经常发生,如果直接将用户资金丢失的话,每次发送交易都得非常小心并等待系统回复才行,这将大大降低交易的速度。
3. 需要大量矿工的支持
随机抽样所达到的共识必须依赖大量的矿工节点支持才能算是有效,并且这些矿工节点还得时刻保持在线,以便被随机抽取到,这在现实的自由网络下是不太现实的,如果采用云服务器的方式,整个网络运作成本将会非常高。
4. 节点的动态加入和退出如何处理 ?
如果用服务器来跟踪各矿工节点状态,则必然导致中心化的问题,如果不跟踪,那就只能从以前参与的样本节点里选,某节点被选中的时候,它很有可能已经不在线了,网络延迟很高的情况下,抽样失败的机率是非常高的,是否需要重新抽样 ? 最后的结果很有可能陷入一种不安全共识的状态。
总体来说,该共识算法不能称其为新算法,其论文描述的主要是工程实现上的改良,它似乎想聚当前热点技术于一身(如随机采样、聚合签名、BFT、DAG等),但是核心还是BFT+聚合签名,设计时更多依赖理想状态,完全没考虑实际的网络状况,特别是在当前币圈熊市的情况下,任何基于大数随机原则的共识都是不太现实的。