雪崩协议(Avalanche)共识机制3.0探究

免责声明:本文旨在传递更多市场信息 , 不构成任何投资建议 。 文章仅代表作者观点 , 不代表火星财经官方立场 。
小编:记得关注哦
来源:共识未来
原文标题:雪崩协议(Avalanche)共识机制3.0探究
文|袁浩
引言:
在上周美国旧金山举行的BlockchainWeek上 , 康奈尔教授埃米·冈·瑟勒(EminGunSirer)对其领导的BloXroute及Avalanche项目进行宣讲 , BloXroute是一个Layer0的底层协议 , 致力于开发跨链的区块支付网络 。
雪崩协议(Avalanche)共识机制3.0探究
文章图片
而雪崩协议(Avalanche)则是一个新型的区块链共识协议 , 分布式系统领域中 , 不是每天都有人告诉你“我有一个新的突破” 。 但 , Avalanche可以说是一个公式共识算法的重大突破和创新 , 这个算法家族集成了经典的Non-Byzanting共识算法和Nakamoto共识算法(即POW)两者的特点 , 做到简单而又强大 。
今年5月份 , 匿名团队TeamRocket同Sirer教授合作 , 在IPFS上发表了题为“SnowflaketoAvalanche:ANovelMetastableConsensusProtocolFamilyforCryptocurrencies”的论文 。 该论文关注于具体的细节和证明上 , 因此很难被非专业人士理解 。 而目前国内对这个共识协议还甚少了解 , 在此 , 我对它进行一个尽量简化和可视化的分析 。
雪崩协议(Avalanche)共识机制3.0探究
文章图片
两类共识协议当许多分布式计算机共享相同的任务和资源时 , 共识是最重要目标之一 。
典型的例子是:在多个服务器上维护金融系统中的帐户余额 。 金融机构不依靠单一数据库来存储数据 , 而是利用分布在全球不同地理位置的机器来处理这些交易 。 他们需要一种方法来让所有这些机器数据是一致的 , 进而它们所反映的帐户余额也是一致的 。
另一个例子是:保持对亚马逊在线购物服务的一致性 。 为了在全球范围内扩展服务 , 数据必须(在地理上)分布于不同的大型数据中心上 。 亚马逊需要定期查看其库存产品 , 否则可能会发生无法意料的事情 。 例如 , 库存的最后一件商品肯能会重复出售给两个不同的人 。
共识机制一直是计算机科学中的一个重要问题 。 为此 , 学者和工程师们在过去40年中一直在努力寻找有效的解决方案 。 在分布式系统领域 , 目前只存在两组主要的共识协议族 。 我们接下来将会描述着两组协议族 。
第一类协议被称为经典共识协议BFT , 它是由两位伟大的计算机科学家LeslieLamport和BarbaraLiskov在1982年共同开发的 。 他们两人都是图灵奖获得者(相当于计算机科学家的诺贝尔奖) 。 我们熟知的国产公链代表小蚁NEO就是采用此共识机制 。 该协议采用“许可投票、少数服从多数”的记账机制 , 允许33%的容错 , 优点是可以快速结算和快速担保交易 。
然而 , 这也是有代价的:
它们无法扩展到1000个节点以上 。 这是因为它们通信成本正比于节点个数的二次方 , 即O(n?) 。 他们要求网络中的每个人都知道所有其他参与者 。本质上 , 他们的安全性取决于法定数量的节点所作出的一致判断 , 这些节点确认看到同样的事情并进行认定 。 在构建私链时 , 这种方法是合理的 , 但是 , 当您处于不受信任的节点的动态环境中时 , 这种方法并不适用 。
因此 , 公链可能需要基于另一种不同的共识协议 , 当然也有针对经典共识协议作出的一些改进(诸如动态调节节点 , 修改底层网络拓扑等) , 但比较适合联盟链的应用场景 。
中本聪共识协议POW2009年 , 另一个类协议POW被提出来了 。 中本聪提出了他的新协议系列 , 并展示了它独特的稳健性:
我们不需要知道参与网络的所有节点 。 任何节点都可以在任何时间点离开或加入 , 任何矿工都可以提出一个区块并参与系统 。 它可以扩展到分布在全世界的大量节点和参与者 。然而这些优点也是有代价的 , 特别是:
比特币非常慢 , 平均而言 , 用户必须等待大约10–60分钟才能确认他们的交易被存储在链上 。 吞吐量也非常有限 。 比特币每秒可处理大约3–7笔交易 , 当然 , 这处理速度距离成为世界货币的处理量还相差甚远 。 最后 , 比特币消耗了大量的能量;大约相当于4个切尔诺贝利核电站的能量为比特币供电 。 这些能量都花在了运算上了 。 共识家族ConsensusfamilyEmin教授在深入研究前述两种主流共识机制后 , 受Gossip协议的启发 , 提出了一组BFT协议(简称“共识家族” , Consensusfamily) 。
“共识家族”对诚实节点(Correctnodes)和拜占庭节点(Byzantingnodes)的行为作了提前约定:诚实节点绝不会发出冲突交易 , 而拜占庭节点也不可能伪造一笔与诚实节点冲突的交易(也就是说 , 拜占庭节点发出的“伪造”交易 , 只会与自己以前发出过的交易冲突(比如双花doublespending) , 但是不可能与诚实节点的交易冲突) , 拜占庭节点可以伪造许多彼此冲突的交易 , 但是诚实节点只会采用其中一笔交易 。
最终 , “共识家族协议”可以保证在存在拜占庭交易的情况下 , 共识的最终结果只会是接受一组互不冲突的交易集合 , “共识家族”也采用了UTXO模型 。
“协议家族”一共是由4个协议构成的 , 先从Non-Byzantine协议开始:Slush , 在其基础上逐渐构建?Snowflake , Snowball和Avalanche?这3个BFT协议 。
Slush协议:是“协议家族”的第一个协议 , 它是一个非拜占庭协议(Non-byzantingprotocol , 后续三个协议都是BFT协议) 。 Slush协议的特点是:简单状态(simplestate) , 小样本(smallsample) , 反复抽样(repeatedsampling) , 抽样轮数或时间期限(用m表示) , Slush协议作为BFT协议的原始状态 , 不能提供完整的BFT保证 。 Snowflake协议:也叫“BFTSnowflake” , 它是“协议家族”的第二个协议 , 在Slush的基础上扩展而来 。 Snowflake为每个节点增加一个counter , 用来记录一个节点当前color的可信度 。 Snowflake可以保证对最小的状态做出很强的保证 。 Snowball协议:Snowball是共识家族中的第三个协议 , 它对Snowflake协议做了改进 , 添加一个更持久的可信度标志 , 使得协议安全性更高 , 进一步增加了共识结果的可靠性(confidence) 。 Snowball不仅比Snowflake更难攻击 , 而且协议更加通用化了 。 Avalanche协议(DAG):Avalanche是“共识家族”中的第四个协议 , 也是最核心协议 , 它在Snowball的基础上添加一个动态的仅限追加(append-only)DAG结构来记录所有的交易 。 DAG结构给雪崩协议Avalanche?带来了两大优势:高效 , 安全 。 共识家族的核心理念:Metastability共识家族全都基于亚稳态模型(metastablemechenism) 。 雪崩协议的核心理念也是metastability 。 共识协议中最糟糕的事情是无法在两个选择之间做出决定 , 即你不希望它模糊地说两个事件中有一个发生了 , 实际你期望它能确定两个事件中到底哪个发生了哪个没发生 。 雪崩协议的matastable协议旨在倾向于选择于两个选项中的一个 。
雪崩协议(Avalanche)共识机制3.0探究
文章图片
运行中的雪崩协议核心思想依赖于抽样投票 。
为了直观解释该过程的核心思想 , 让我们看一个简化的例子 , 如上图所示 。 考虑一个想要投票给蓝色或红色的去信任节点网络 。
网络的单个节点从选择少量随机对等节点(例如五个)开始 , 并要求他们选择颜色 。 然后 , 每个对等节点以投票进行回应 , 发出请求节点使用该投票来形成所有投票的加权结果 。 在上图中(在第一帧中) , 从发起请求的节点角度来看 , 整个网络基于第一投票倾向于红色 。 每个参与者都需要重复这一过程 。该协议类似于重复的二次抽样投票过程 。 这里发生的事情是 , 即使我们开始在红色和蓝色是一半一半的最糟糕的情况下 , 在一轮之后 , 很有可能结果不再是打平手了 。 此外 , 在两轮甚至在三轮之打平手的概率将会非常小 , 打平手的几率会以指数方式衰减 。
该协议旨在于倾向某一结果而不是留在模棱两可的中间选项 。 随着它的倾向性越来越高 , 网络的感知的颜色将会转移到其中一种颜色 。 我们向一个结果方向移动的速度(节点对一种颜色投票比另一种颜色更多)将会不断加快 , 并且在某个时候我们达到不返回点 , 整个网络已就颜色达成一致 。
Avalanche雪崩协议综述【雪崩协议(Avalanche)共识机制3.0探究】雪崩协议(Avalanche)结合了两者的优点 , 特别是 ,


    推荐阅读