原文作者:Connor Daly,Avalanche DEX 平臺 Pangolin 創始人
原文編譯:eternal,律動 BlockBeats
Avalanche(雪崩協議)徹底改變了區塊鏈網絡的每一層,但它有一項創新高於其他一切。當我發現這一點時,立刻辭去了原本的工作,全身心地投入 Avalanche 的事業中。
首先,什麼是共識?
它是確保分佈式系統中的多個節點做出相同決定的機制,對於區塊鏈而言,最重要的決策是判定哪個區塊應該成爲鏈上的新區塊。
在 Avalanche 的共識機制問世前,有兩大系列的共識算法:Classical(經典式)和 Nakamoto(中本聰式)。
Classical 共識算法在節點數量較少時很有效,但該算法的時間複雜度 O(n^2 ) 特別高,導致節點網絡的運營成本巨大(往往與節點數量 n 的二次方成正比)。同時,這種算法無法擴展到支持用戶流動的大型去中心化網絡。
一些採用 Classical 共識算法的區塊鏈試圖掩蓋性能方面的不足。這些區塊鏈往往只讓一小部分驗證節點(validators)參與共識機制及出塊驗證過程,來矇蔽用戶。在這類區塊鏈網絡中,表面存在 1000 個驗證者,但實際上只有 100 個驗證者參與共識決策。
Nakamoto 共識算法的優勢在於,它可以擴展到大量的用戶而不損失性能。但問題在於,性能本來就不是很好。
任意數量的礦工節點可以隨意的參與或退出爆塊過程,這導致出塊的速度緩慢,並且隨時可進行區塊重組,導致鏈上存儲內容可變更。
你可能聽說過,比特幣網絡上的一筆交易在新出 6 個區塊後,就完成了最終確定。但這只是概率達 99% 的高概率事件,僅僅基於置信估計。
一個新區塊及其所在的鏈被網絡節點確認的次數越多,就越不可能有更長的鏈條分叉來取代之。但這並不能確保更長的鏈條分叉不會出現。
該共識協議由包括 Avalanche 聯合創始人 Emin Gün Sirer、Ted Yin、kevin sekniqi 在內的康奈爾大學研究人員發明,並進行了標準化。
讓我們通過一個例子來介紹 Avalanche 共識機制。
假設有 1000 名會議參與者需要共同決定午餐吃什麼:披薩還是三明治。每個人都有一個最初的偏好,但他們需要在最終方案上達成一致。
作爲參與者,你進行了一次小的隨機採樣,問了 10 位參與者,他們想吃什麼。7 個人說披薩。看起來大多數人都想吃披薩,所以現在若有人問你,你也會回答說想吃披薩。
接下來,你執行另一輪隨機採樣。你詢問另一組隨機抽到的 10 個人,如果大多數人回答三明治,你就改變自己的偏好;而如果大多數人回答比薩,你會再次回答說想吃披薩。這樣下來,你在兩次抽樣調查後,得到的結果是一致的。
您可以繼續迭代此過程,直到連續 100 次獲得相同的結果。此時,你認爲最終決定已經完成。
由於節點在每輪抽樣調查中,只與固定數量的少量節點進行通信,所以單輪抽樣中消息傳遞的時間複雜度爲 O(1)(往往爲常數級別)。與 Classical 共識算法不同,消息傳遞的複雜度不會隨節點數量 n 的增加而增加。
但是,需要多少輪隨機抽樣才能得到最終結果呢?這取決於網絡的大小。然而,它的複雜度是一個可控的 O(log n)(與對數函數成正比,數量級低於一次函數)。
雪崩共識是基於概率統計的。一個節點可能只對少量節點進行重複採樣,並得出錯誤的結論。但該協議是可調參的。我們可以使這種情況發生的概率變爲極小,比如低於 0.0000000001%。
由於這種高度的可預見性,Avalanche 具有最終性。一旦網絡內的交易被決定,它們就被永遠鎖定在鏈上。Avalanche 上不會有區塊重組。
這是 Avalanche 共識機制的可視化效果展示。
https://twitter.com/das_connor/status/1470147125870841861

如果你仔細觀察,會發現抽取到某些節點後,多輪抽樣的最終結果便不可能逆轉。這就好像移動的雪花變爲雪崩一樣。雪崩協議 Avalanche 由此得名。
既然你知道了它是如何工作的,它又爲何顯得重要?它能做什麼呢?
這意味着您可以在低配的硬件上接入 Avalanche 網絡,不需要專門的挖礦設備,中間層的服務器就可以了. 一些用戶甚至在樹莓派微型計算機(Raspberry Pi)上運行 Avalanche 驗證節點。
Sybil 保護機制可以防止單個用戶操縱多個節點並僞裝成多個用戶。要運行多個驗證節點(validators),您需要擁有大量權益(stake),我們認爲 stake 是一種稀缺資源。
儘管 Avalanche 協議需要 Sybil 保護機制,但您也可以採用其他的任何方法。例如,您可以使用工作量證明(pow)重建 Avalanche。
Avalanche 共識機制是具備可配置性的(系統能夠根據運行需要而被配置)。它實際上是一個全新的共識協議,沒有固定的代碼實現。
例如,您可以選擇設定網絡參數來優先考慮安全性或活躍性。
在 Avalanche 區塊鏈中,我們對網絡進行了調整,使其高度安全。與針對比特幣的「51% 攻擊」不同,入侵 Avalanche 需要 80% 的節點串謀。
比特幣的「51% 攻擊」看起來像是一箇中心化組織篡改歷史,並壓制少數派。而在 Avalanche 中,80% 的節點串謀引發的安全故障,會導致網絡不同部分的節點做出不同的決策。Avalanch 對安全性與活躍度進行了均衡考慮。如果 1/3 的網絡節點離線,網絡運轉進程將放緩或停止,直到恢復到閾值(臨界點)水平。
原文鏈接
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia