區塊鏈世界也存在一個長期誤解:共識是建立去中心化支付的必要條件。我們被比特幣和以太坊束縛住了。

原文標題:(Wait, Why Do We Need Consensus Again?)

撰文:Shresth Agrawal、Dionysis Zindros、k4m4,pod.network

編譯:Tia,Techub News

地球是宇宙中心的這一錯誤認知延續了幾個世紀。那時的人們認爲太陽、恆星和行星都圍繞着地球旋轉。直到勇敢的思想家們揭示了日心說的真相,才徹底改變了天文學,從而打破了地心說的模型。

和天文學世界一樣,區塊鏈世界也存在一個長期誤解:共識是建立去中心化支付的必要條件。我們被比特幣和以太坊束縛住了。

去中心化貨幣需要去中心化共識的解決方案。 —以太坊白皮書,2014 年

共識其實是敵人。通過消除共識,我們可以像谷歌搜索一樣快速完成交易。

共識難題

Eve 攢比特幣買了她的第一輛特斯拉。Bob 和 Charlie 是特斯拉經銷店運營者。

Eve 對一條消息簽名,以此表示她正在向 Bob 轉賬。Bob 收到了 Eve 簽署的付款,但還不放心把車鑰匙交給她。因爲 Bob 需要確定 Eve 沒有同時向 Charlie 簽署付款交易(雙花)。

圖 1:Eve 嘗試雙重支付,目的是將相同的代幣轉移給 Bob 和 Charlie。

通常,區塊鏈共識來解決雙重支付問題。共識將交易作爲輸入,並按照多數節點都同意的某種全局順序進行輸出。

圖 2:共識作爲一個黑匣子,將無序的「內存池」交易作爲輸入,並按照大家都同意的順序輸出它們。

回到 Eve。將 Eve 支付給 Bob 的交易叫作 tx1,支付給 Charlie 的交易叫作 tx2。區塊鏈通過共識確保交易順序,當出現雙花時,最先被打包出塊的交易纔是有效的。

在只有一方參與的網絡中,達成共識很簡單:該方只需按照收到交易的順序輸出交易即可。但在有兩方或多方參與的網絡中,網絡條件的差異將導致交易以不同的順序接收。除此之外,惡意方可以故意提出相互矛盾的觀點或引入網絡延遲。那麼,我們如何就全球秩序達成一致呢?

我們可以使用中心化銀行來管理所有交易。但由於我們不想依賴任何可信中介,因此我們選擇一組稱爲驗證者的參與方,並假設其中三分之二以上是誠實的。

驗證者通過多輪溝通達成共識。每隔一段時間,就會隨機選擇一個領導者,通過將待處理交易放入他們簽名的區塊來提出全局順序。其餘驗證者對領導者的區塊進行投票。擁有三分之二驗證者簽名的區塊被視爲已公證。惡意領導者可能會選擇性地審查交易,甚至無法創建區塊,從而迫使流程重新開始。多次重複此迭代過程可讓每個人最終達成相同的順序。達成共識的過程很慢。

相比之下,Web 應用很快,它只需要實現一次往返 —— 客戶端發送 HTTP 請求,服務器返回 HTTP 響應。

我們需要完整排序嗎?

讓我們重新考慮一下:每筆交易都需要成爲全球狀態的一部分嗎?

假設進行了兩筆付款交易:Alice 向 Bob 付款,Charlie 向 Dave 付款。由於這兩筆付款是獨立的,實際上可以按任何順序執行。即無論以哪種方式執行,結果狀態都保持不變。

圖 3:Alice 向 Bob 支付的款項與 Charlie 向 Dave 支付的款項無關。無論這些交易的結算順序如何,結果都保持不變。

共識可以解決雙重支付問題——但我們能否避免因此帶來的延遲成本?

方法如下。與共識類似,還是需要一組驗證者,並假設其中三分之二以上是誠實的。驗證者不是就全局順序達成一致,而是通過簽名來保證他們收到的交易有效(基於他們的本地視圖)。只要獲得超過三分之二的驗證者確認的那筆交易則爲有效交易。

Eve 向驗證者發送兩筆雙花交易。首先,有一組不誠實的驗證者同時簽署了這兩筆交易。然後,她將誠實的驗證者分成兩組(假設每組佔總驗證者數的三分之一),並向不同組發送不同的交易(比如向第一組發送給 Bob 的交易,向第二組發送給 Charlie 的交易)。不過 Eve 還是無法爲這兩筆交易收集足夠的簽名來執行雙重支付攻擊。

將這一分佈式網絡再具像化,假設這個網絡有 N 個驗證者,其中不到三分之一是惡意的。

誠實用戶:向所有驗證者廣播新的交易,並在收到三分之二以上驗證者的簽名後,認爲交易已完成,該筆交易獲得證書(certificate)。

誠實驗證者:維護本地未花費代幣列表,並且僅簽署代幣的第一個有效交易。

如果要完成雙花,兩筆雙花交易都需要獲得證書,即需要超過三分之一的驗證者是非誠實的。

這種非共識協議不需要驗證者之間進行通信,只需要一次網絡往返!並且,這一架構在區塊鏈文獻中已被充分研究,在文獻中,其學術用語爲一致性廣播。

會有潛在風險嗎?當 Eve 試圖進行雙重支付時,共識將在全球範圍內對她的交易進行排序,並且只有兩個交易中的第一個會被接受。但在我們描述的協議中,協議無法保證 Eve 的每一筆交易都會最終完成。Eve 的賬戶甚至可能永遠被封鎖,因爲我們不必向對手方提供任何保證。

那麼,我們爲什麼需要再次達成共識?

我們不存在達成共識一說。

除了支付之外,「bag」或常見子集協議(例如,鏈上拍賣、投票、限價訂單)、僅附加信息流(去中心化社交、公證)以及可以表示爲無衝突複製數據類型的協議(社交圖譜、聲譽系統、遊戲)都可以在沒有全局排序的情況下運行。目前運行的許多依賴順序的 DeFi 協議也可以在無需全局排序的情況下運行。

Pod 消除了共識,從而實現了像谷歌搜索一樣快、像比特幣一樣安全的去中心化系統。