雪花新聞

雪崩協議(Avalanche)共識機制3.0探究

文 | 袁浩

引言:

在上週美國舊金山舉行的 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

第一類協議被稱爲經典共識協議BFT,它是由兩位偉大的計算機科學家Leslie Lamport和Barbara Liskov在1982年共同開發的。他們兩人都是圖靈獎獲得者(相當於計算機科學家的諾貝爾獎)。我們熟知的國產公鏈代表小蟻NEO就是採用此共識機制。該協議採用 “許可投票、少數服從多數” 的記賬機制,允許33%的容錯,優點是可以快速結算和快速擔保交易。

然而,這也是有代價的:

本質上,他們的安全性取決於法定數量的節點所作出的一致判斷,這些節點確認看到同樣的事情並進行認定。在構建私鏈時,這種方法是合理的,但是,當您處於不受信任的節點的動態環境中時,這種方法並不適用。

因此,公鏈可能需要基於另一種不同的共識協議,當然也有針對經典共識協議作出的一些改進(諸如動態調節節點,修改底層網絡拓撲等),但比較適合聯盟鏈的應用場景。

中本聰共識協議POW

2009年,另一個類協議POW被提出來了。中本聰提出了他的新協議系列,並展示了它獨特的穩健性:

然而這些優點也是有代價的,特別是:

共識家族Consensus family

Emin教授在深入研究前述兩種主流共識機制後,受 Gossip 協議的啓發,提出了一組BFT協議(簡稱“ 共識家族”,Consensus family )。

“共識家族”對 誠實節點(Correct nodes)拜占庭節點(Byzanting nodes) 的行爲作了提前約定: 誠實節點絕不會發出衝突交易,而拜占庭節點也不可能僞造一筆與誠實節點衝突的交易 (也就是說,拜占庭節點發出的“僞造”交易,只會與自己以前發出過的交易衝突(比如雙花 double spending),但是不可能與誠實節點的交易衝突),拜占庭節點可以僞造許多彼此衝突的交易,但是誠實節點只會採用其中一筆交易。

最終,“共識家族協議”可以保證在存在拜占庭交易的情況下,共識的最終結果只會是接受一組互不衝突的交易集合,“共識家族”也採用了 UTXO 模型。

“協議家族”一共是由 4 個協議構成的,先從 Non-Byzantine 協議開始:Slush,在其基礎上逐漸構建 ?Snowflake,Snowball 和 Avalanche? 這 3個 BFT 協議。

共識家族的核心理念:Metastability

共識家族全都基於 亞穩態模型(metastable mechenism) 。雪崩協議的核心理念也是metastability。共識協議中最糟糕的事情是無法在兩個選擇之間做出決定,即你不希望它模糊地說兩個事件中有一個發生了,實際你期望它能確定兩個事件中到底哪個發生了哪個沒發生。雪崩協議的matastable協議旨在傾向於選擇於兩個選項中的一個。

運行中的雪崩協議 核心思想依賴於抽樣投票。

爲了直觀解釋該過程的核心思想,讓我們看一個簡化的例子,如上圖所示。 考慮一個想要投票給藍色或紅色的去信任節點網絡。

該協議類似於重複的二次抽樣投票過程。這裏發生的事情是,即使我們開始在紅色和藍色是一半一半的最糟糕的情況下,在一輪之後,很有可能結果不再是打平手了。此外,在兩輪甚至在三輪之打平手的概率將會非常小,打平手的幾率會以指數方式衰減。

該協議旨在於傾向某一結果而不是留在模棱兩可的中間選項。隨着它的傾向性越來越高,網絡的感知的顏色將會轉移到其中一種顏色。我們向一個結果方向移動的速度(節點對一種顏色投票比另一種顏色更多)將會不斷加快,並且在某個時候我們達到不返回點,整個網絡已就顏色達成一致。

Avalanche雪崩協議綜述

雪崩協議(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

相關文章