一文理解Avalanche共識:設計、演變

買賣虛擬貨幣

作者:AVA Labs 高階工程師 Collin Cusce

在 2018 年一個自稱為火箭隊的匿名團隊提出了 Avalanche 共識協議。本篇文章描述了這個協議看起來魔幻(但實際真實)的特性,並將其與其他共識協議做對比,描述使其獨特的技術基礎。什麼是共識?

共識是一系列獨立的投票者(常被稱為“驗證者”)對一個決策達成一致的過程。初步來看,這個過程聽起來很直接:根據一系列規則搞清楚一組資料是否是一致的,網路的其他成員是否對這個資料認可。

像 Avalanche 這樣的共識協議需要在網路中所有的節點達成一致,保障整個網路對這個資料有一個同步的檢視(view)。強健的共識協議即使在一些驗證者出問題或者是惡意的情況下仍然能夠執行。

在這個過程的最後,所有節點對於所需要做的決策流程都會共享相同的資料,這被稱為“狀態”(State)。如果任何一個節點中有衝突的交易,和餘下的整個網路都不一致,那麼這個被稱為“安全違規”。這意味著至少有一個節點和網路中其他節點不一致的。共識協議的目的就是減少網路中“安全違規”,最佳的情況就是讓這樣的衝突變得幾乎不可能。

這個概念聽起來是不是很簡單?但是共識協議的話題是電腦科學領域其中一個最難的領域之一。共識機制的歷史

在分散式系統超過 45 年的歷史中,只有三種共識協議能解決問題:經典共識協議(Classical),中本聰共識(Nakamoto)以及 Avalanche。我們先來討論一下這三種共識來描述為什麼會分成這樣的三類,每一類和其他有什麼不同,有什麼樣的優劣勢。經典共識協議

經典共識協議,比如實用拜占庭容錯(PBFT)和 HotStuff,都是基於所有對所有投票的(All-to-all voting)。這意味著一個驗證者需要監聽組成網路一系列節點來進行決策。此外,他們是“1 的概率”(P = 1)的協議,這意味著網路對於某一個決策需要有完全的確定性。在節點從組成系統的節點的必要部分接收到響應之後,交易立即完成。

在開放的、和網際網路類似的環境中,經典共識協議就會遇到兩個主要的問題。第一個問題是這些協議非常脆弱:他們的正確性極大程度依賴於系統中所有的節點了解其他的節點的身份。這樣的結果就是在維持系統成員的過程中若出現了任何問題或者網路中成員的檢視有不一樣,就會導致安全違規。進一步來說,任何攻擊者只需要控制網路的 33% 就能夠實現一個雙花攻擊。

第二點,這些系統是緩慢的,並且不能在節點數量增加的時候擴充套件。Facebook 的 Libra 使用的 HotStuff (由我們的首席協議架構師 Ted Yin 設計)已經是擴充套件性最好的經典共識協議了,但也只能在保障不犧牲效能的前提下支援大約 100 個驗證者。

這兩個問題讓經典共識協議無法適用於開放的、無需許可的網路,畢竟對於這樣的網路節點是需要隨意加入和退出的,也隨時會做出對網路不利的事情。中本聰共識(Nakamoto Consensus)

經典共識無法滿足大規模的需求,在經過十年之後,實用拜占庭若錯是一個不錯的發明。之後,突然出現了中本聰,扔出了比特幣的白皮書,向世界展示創造一個全球範圍內有效的抗敵共識協議的可能性。中本聰重新定義了共識問題並讓正確性定義具有概率性來實現這個目標。

使用基於中本聰共識的一些,無需等待網路中所有節點之間的絕對確定性,而是權衡了難以區別的可能性,來實現更好的可擴充套件性。在經典協議必須以1(P = 1)的概率達成共識的情況下,中本聰以1減去一些很小的錯誤機會(P = 1 —ε)的概率達成共識。在Nakamoto中,隨著產生更多的區塊,該誤差值將隨著時間的流逝而越來越小。區塊越多,被重組的機會就成倍下降。

毫無疑問,中本聰共識作為健壯的全域性協議是一項突破,但是它確實有缺點。它速度慢,消耗大量能量,並且需要很長時間進行區塊確認才能對交易的最終結果足夠確定。對於那些不經常移動或用作儲備的資產來說,這些缺點是可以接受的,但對於點對點支付和去中心化金融等應用來說,它們卻負擔太大。Avalanche

中本聰共識喚醒了整個世界,大家開始希望有一個強健、去中心化的協議,就如同中本聰共識一樣,但希望有經典共識的所有優點:規模、速度、快速確認和能源效率。

之後在 2018 年 5 月,自稱為火箭隊的匿名團隊提出了第三類共識協議,他們稱為“Avalanche”。它同時具備了經典共識協議和能夠實現大規模去中心化的中本聰共識協議的優勢,事實證明,經典共識協議可以泛化為概率性行為,從而獲得巨大的效能提升。

我們的文章會高度概括這個共識,如果你希望進一步瞭解詳細內容可以檢視白皮書。

Avalanche 共識是什麼?

Avalanche 共識,和比特幣的中本聰共識一樣是一個概率性共識。就像中本聰共識在為共識的概率性犧牲了效能一樣,Avalanche 也接受錯誤發生的可能性(更好的是,像 Avalanche 的所有部分一樣,可以由驗證器在自定義子網上配置)。

Avalanche 上出錯的概率太小了,因此出現安全違規的可能性比找到 SHA-256 雜湊衝撞的概率還要小。從更廣的角度來看,在未來一百年裡面有小行星和地球相撞的可能性要比在未來一千年中透過網路計算每秒 100 萬個雜湊並出現 SHA-256 雜湊碰撞高出數十個數量級。真的非常安全。

Avalanche 也能夠立刻對所有交易進行確認,而不需要等待交易確認。Avalanche 能實現這樣的特性的原因在於它是經典共識的泛化,因此原生就有經典共識的優勢。事實上,Avalanche 平均來看能夠在一秒內完成交易確認。相比於現有的去中心化網路,這是非常快的。

作為具有概率模型的經典共識協議的泛化,Avalanche 也能夠同時實現用 CPU 運作和高吞吐量的特性。Avalanche 不需要特殊的或者昂貴的硬體裝置來實現高吞吐量(超過每秒 4500 筆交易)。這意味著你手上的電腦(甚至在你倉庫裡面吃灰的裝置)也完全能夠執行 Avalanche 的節點。這些特性加起來讓 Avalanche 非常的綠色和經濟。

不止如此,和中本聰共識一樣,Avalanche 對網路參與者沒有限制,而經典共識則在網路參與者數量增加的時候犧牲效能指數級下降。想要實現大規模落地應用、讓去中心化應用走向大眾,Avalanche 是絕無僅有的。

Avalanche 並不想中本聰共識那樣依靠工作量證明。像比特幣這樣的協議,工作量證明對於區塊構造和網路安全都非常重要。Avalanche 可以使用過重了證明但是採用了權益證明來讓使用者對交易進行投票的時候抵押一些代幣參與共識。

最後,與基於中本聰共識的比特幣和其他系統需要不斷執行的不同,Avalanche 的節點僅在有工作要做時才會運作。沒有進行挖礦或輪詢來獲取新塊的操作。交易會廣播到更廣泛的網路,然後網路會聽到它們並開始投票。如果沒有要投票的交易,則網路中的節點將不執行任何操作,除非監聽到新的交易。簡而言之,Avalanche 所做的工作更聰明,而不是更努力。

高階說明:Avalanche 最重要的屬性確實使它與現有的經典共識協議區別開來,它就像中本聰共識一樣,可以在網路中沒有已知參與者上限的情況下執行。可以使用每個節點的O(1)(常數)個訊息來確定 Avalanche 中的決策。將此與使用O(n²)訊息達成共識的經典協議進行比較,經典共識協議的網路擴充套件問題則在 Avalanche 中消失了。Avalanche 共識如何運作?

首先我們來談談驗證者在 Avalanche 共識中的作用。Avalanche 是一個投票協議,驗證者監聽網路中的交易,當他們聽到交易的時候,他們投票來決定一筆交易是否被接受。驗證者對看起來沒問題的交易投票“接受”,如果交易出現衝突則“拒絕”。之後所有節點的投票結果進行賈總。如果一個驗證者看到一個決策,做出一個初始決策,然後與網路的其餘部分進行寫作,來確定網路是否同意這個決定。這和經典共識協議中的期望相同,但是在 Avalanche 中,這種情況發生在驗證者數量多地多的情況中。

Avalanche 的投票過程讓他變得與眾不同。每一個驗證者都和決策者完全獨立。沒有 leader 的角色。然而每個節點都用完全相同的流程來決定一個交易是否是有效的,以及與網路中其他部分達成共識的可能性。一旦他們看到網路中有一個交易大概率會達成共識,節點就會鎖定他們的投票並且接受這個交易。

用於確定是否首選交易以及網路的其餘部分是否同意此決定的過程稱為“重複隨機子取樣”。

從高層次上講,這意味著驗證者會隨機選擇其他驗證者來詢問他們喜歡什麼。它會在新的隨機選擇的節點上一遍又一遍地執行此操作,直到建立足夠的資料來確定其正確的可能性如此之高,以至於你可能會認為這不可能是錯誤的。

詳細一點說,他是這樣運作的:

一個驗證者收到了很多釋出的交易,他需要決定哪一個交易被“接受”

節點客戶端會執行一個虛擬機器(VM),虛擬機器會提供這個交易是否能夠被接受的資訊。

驗證者選擇一組不衝突的交易,將這些交易標記,試圖讓網路接受這些交易。

任何詢問這個驗證者的節點都會收到這個節點最新標記的交易資訊,也就是這個節點的決策。

這個驗證者節點從整個驗證者列表裡面(這個選擇可能是根據質押數量的)選擇 K 個節點,詢問他們接受的交易是哪些。

每一個被詢問的節點都提供他們選擇接受的交易的資訊,驗證者的投票結果不斷被更新,並且逐漸確定對哪些交易被接受。

期間,其他節點也會從驗證者集中隨機選擇其他驗證者,並詢問他們選擇的交易,並更新自己的決策。

這件事情會在至少 M 輪裡面不斷持續,或者直到這些交易已經足夠確定,達到了一定的可信度。否則還會繼續進行,每個節點隨機選擇 K 個其他節點做問詢。

一旦達到確定的門檻,交易就被鎖定並且可以認為是最終確認了。

如果“被接受”,這個交易就會被送到虛擬機器中被處理。如果被拒絕,那麼這個交易就從共識過程中被移除。

匿名團隊火箭隊的白皮書顯示,透過設定正確的引數設定,使用 Avalanche 共識的過程可以有一個引數化的概率,網路將做出相同的決策。概率的確定性

科學家需要確定其模型的確定性。在描述系統或流程時可以說“這絕對是事實,毫無疑問”。經典共識協議致力於完成這樣的田園風格的模型,但是在現實世界中沒有什麼是確定的。在經典共識協議中假設有 100 個節點,有 33 % 的節點同時離線或者某個人透過社交接管了其中的 33 臺,並試圖將其意志強加到網路上。還有一種可能性,就好像房間裡的氧氣分子突然全部跑到房間的一側,然後另一側的人就窒息了,這個理論上來講也不是非零的可能性。但是概率太低了,沒有人會擔心。

中本聰共識不斷向世界證明概率性確定是可以接受的,只要安全性上失敗的可能性就如同天文數字那樣遙遠,現在比特幣讓全世界都認為這是可以接受的。這相比於運營商級SLA的五個九(99.999%)要好多了。

透過接受相同的微小誤差範圍,Avalanche 在具有正確引數的模型中每 20,000 年會有一次誤差。網際網路基礎設施的老化可能會導致大規模的網路終端。正是這一關鍵的見解幫助火箭隊為新的共識機制鋪平了道路。Avalanche 所帶來的可擴充套件、去中心化的未來

經典拜占庭容錯協議展示了在即使有惡意參與方的情況下網路還是能夠達成共識的可能性。中本聰共識展示了概率性協議在實際應用中也是安全的,並且能夠提供前所未有的去中心化和強健性。

Avalanche 吸收了上述協議的啟發,並將他們的優勢集合在一個新的協議中,你可以同時擁有中本聰共識和經典共識協議的優勢,而無需面臨任何一者的劣勢。

透過讓驗證者隨機選擇其他驗證者以詢問他們的偏好,Avalanche 的參與者對網路中所有節點共享的正確決策有足夠的置信度。有了足夠的置信度,就可以立即最終決定。這個過程發生得如此之快,以至於 Avalanche 的能力過程和主要的支付系統都可以與主流的支付系統相媲美。

(完)

關於 Avalanche

Avalanche 是由康奈爾大學教授、IC3 聯合創始人 Emin Gün Sirer、計算機學者 Kevin Sekniqi Facebook Libra 協議 HotStuff 共識第一作者 Ted Yin 共同創立。AVA Labs 主導開發的 Avalanche 區塊鏈平臺基於革命性的共識演算法——Avalanche 構建的數字支付和計算平臺。該共識使分散式賬本可以保證去中心化、高併發處理和交易的快速確認,同時實現歷史記錄刪減和鏈上治理。

Emin Gün Sirer 教授是密碼學界的先驅 + 大神,在分散式系統領域有大量的研究成果,他所開發的虛擬貨幣系統 Karma 是首個採用 PoW 機制的貨幣系統,比中本聰發表的比特幣白皮書早了七年。

Avalanche 於 2019 年獲得 Andreessen Horowitz、Polychain、Coinbase 前 CTO Balaji Srinivasan、Metastable、 Initialized 和 Abstract Ventures 的創始人 Ramtin Naimi 等機構和投資人的投資,於 2020 年 3 月開原始碼。Avalanche 於 2020 年 5 月完成 1200 萬美元私募輪融資,由 Galaxy Digital、位元大陸,Initialized Capital,NGC Ventures,Dragongly Capital 五家機構領投,Continue Capital、Fundamental Labs、SNZ、IOSG Venture、優幣等機構和個人也參與了本次投資。Avalanche 預計於今年八月上線主網。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;