文 | 袁浩
引言:
在上周美国旧金山举行的 Blockchain Week 上,康奈尔教授埃米·冈·瑟勒(Emin Gun Sirer)对其领导的BloXroute及Avalanche项目进行宣讲,BloXroute是一个Layer0的底层协议,致力于开发跨链的区块支付网络。
而雪崩协议(Avalanche)则是一个新型的区块链共识协议,分布式系统领域中,不是每天都有人告诉你“我有一个新的突破”。但,Avalanche可以说是一个公式共识算法的重大突破和创新,这个算法家族集成了经典的 Non-Byzanting 共识算法和 Nakamoto 共识算法(即 POW) 两者的特点,做到简单而又强大。
今年5月份,匿名团队Team Rocket同Sirer教授合作,在IPFS上发表了题为“Snowflake to Avalanche: A Novel Metastable Consensus Protocol Family for Cryptocurrencies”的论文。该论文关注于具体的细节和证明上,因此很难被非专业人士理解。而目前国内对这个共识协议还甚少了解,在此,我对它进行一个尽量简化和可视化的分析。
当许多分布式计算机共享相同的任务和资源时,共识是最重要目标之一。
典型的例子是:在多个服务器上维护金融系统中的帐户余额。金融机构不依靠单一数据库来存储数据,而是利用分布在全球不同地理位置的机器来处理这些交易。他们需要一种方法来让所有这些机器数据是一致的,进而它们所反映的帐户余额也是一致的。
另一个例子是:保持对亚马逊在线购物服务的一致性。为了在全球范围内扩展服务,数据必须(在地理上)分布于不同的大型数据中心上。亚马逊需要定期查看其库存产品,否则可能会发生无法意料的事情。例如,库存的最后一件商品肯能会重复出售给两个不同的人。
共识机制一直是计算机科学中的一个重要问题。 为此,学者和工程师们在过去40年中一直在努力寻找有效的解决方案。在分布式系统领域,目前只存在两组主要的共识协议族。我们接下来将会描述着两组协议族。
第一类协议被称为经典共识协议BFT,它是由两位伟大的计算机科学家Leslie Lamport和Barbara Liskov在1982年共同开发的。他们两人都是图灵奖获得者(相当于计算机科学家的诺贝尔奖)。我们熟知的国产公链代表小蚁NEO就是采用此共识机制。该协议采用“许可投票、少数服从多数”的记账机制,允许33%的容错,优点是可以快速结算和快速担保交易。
然而,这也是有代价的:
本质上,他们的安全性取决于法定数量的节点所作出的一致判断,这些节点确认看到同样的事情并进行认定。在构建私链时,这种方法是合理的,但是,当您处于不受信任的节点的动态环境中时,这种方法并不适用。
因此,公链可能需要基于另一种不同的共识协议,当然也有针对经典共识协议作出的一些改进(诸如动态调节节点,修改底层网络拓扑等),但比较适合联盟链的应用场景。
2009年,另一个类协议POW被提出来了。中本聪提出了他的新协议系列,并展示了它独特的稳健性:
然而这些优点也是有代价的,特别是:
Emin教授在深入研究前述两种主流共识机制后,受 Gossip 协议的启发,提出了一组BFT协议(简称“共识家族”,Consensus family)。
“共识家族”对诚实节点(Correct nodes)和拜占庭节点(Byzanting nodes)的行为作了提前约定:诚实节点绝不会发出冲突交易,而拜占庭节点也不可能伪造一笔与诚实节点冲突的交易(也就是说,拜占庭节点发出的“伪造”交易,只会与自己以前发出过的交易冲突(比如双花 double spending),但是不可能与诚实节点的交易冲突),拜占庭节点可以伪造许多彼此冲突的交易,但是诚实节点只会采用其中一笔交易。
最终,“共识家族协议”可以保证在存在拜占庭交易的情况下,共识的最终结果只会是接受一组互不冲突的交易集合,“共识家族”也采用了 UTXO 模型。
“协议家族”一共是由 4 个协议构成的,先从 Non-Byzantine 协议开始:Slush,在其基础上逐渐构建?Snowflake,Snowball 和 Avalanche?这 3个 BFT 协议。
共识家族全都基于亚稳态模型(metastable mechenism)。雪崩协议的核心理念也是metastability。共识协议中最糟糕的事情是无法在两个选择之间做出决定,即你不希望它模糊地说两个事件中有一个发生了,实际你期望它能确定两个事件中到底哪个发生了哪个没发生。雪崩协议的matastable协议旨在倾向于选择于两个选项中的一个。
运行中的雪崩协议 核心思想依赖于抽样投票。
为了直观解释该过程的核心思想,让我们看一个简化的例子,如上图所示。 考虑一个想要投票给蓝色或红色的去信任节点网络。
该协议类似于重复的二次抽样投票过程。这里发生的事情是,即使我们开始在红色和蓝色是一半一半的最糟糕的情况下,在一轮之后,很有可能结果不再是打平手了。此外,在两轮甚至在三轮之打平手的概率将会非常小,打平手的几率会以指数方式衰减。
该协议旨在于倾向某一结果而不是留在模棱两可的中间选项。随着它的倾向性越来越高,网络的感知的颜色将会转移到其中一种颜色。我们向一个结果方向移动的速度(节点对一种颜色投票比另一种颜色更多)将会不断加快,并且在某个时候我们达到不返回点,整个网络已就颜色达成一致。
雪崩协议(Avalanche)结合了两者的优点,特别是,
关于协议的一些补充说明:
结语:
共识机制是区块链的灵魂,共识机制的算法设计直接决定了区块链的交易速度,交易吞吐量TPS。人们经常谈论比特币中使用的共识协议,就好像它是一种纯粹的去中心化的方法,可以平等地对待所有网络参与者的意见。不幸的是,在比特币中决策主要是由矿工做出的。
相比之下,雪崩协议将共识问题与管理问题分开。每个都是模块化和独立化地处理。通过gossip协议与循环采样的智能组合形成共识。同时,通过抽样和投注股份实现公平治理,从而实现用户与其决策之间的直接联系。
我们注意到一些热门项目诸如Perlin已经开始搭建在雪崩协议Avalanche之上:https://medium.com/opentoken/perlins-implementation-of-avalanche-1cf7dceadd06
雪崩协议Avalanche目前尚未得到大规模应用,但考虑到其独特创新之处,我们认为其可以比肩Algorand项目值得重点关注。
参考文献:
-Cryptoconf 2018, Emin Gün Sirer talk?—?Snowflake to Avalanche
-Snowflake to Avalanche: A Novel Metastable Consensus Protocol Family for Cryptocurrencies, Team Rocket, 2018
-SFBWofficial 2018,?Emin Gün Sirer talk: ?Ava protocol with new consensus family
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:区块链先锋门户
评论0条