Ouroboros:一个可证明安全的PoS区块链协议 (共识介绍)
原文作者:Aggelos Kiayias? Alexander Russell? Bernardo David? Roman Oliynykov§
摘要
我們向大家展示Ouroboros——第一個基于權益證明(PoS)并擁有強大安全保證的區塊鏈協議。我們為該協議建立了可以與比特幣協議相媲美的安全屬性。因為該協議提供了一個"權益證明"的區塊鏈規則,所以相比較基于物理資源證明的區塊鏈(例如工作量證明)它擁有定性效率優勢 。我們也為激勵PoS協議提出了一個新穎的獎勵機制,并且我們證明出,鑒于這個機制,誠實的行為是一個近似的納什均衡(Nash equilibrium),因此可以讓自私挖礦(selfish mining)這種類型的攻擊無效。我們還提供了交易確認和處理的實驗結果,以此作為Ouroboros協議在真實的世界環境中可以實踐的初步證據。
1 介紹
對基于工作量證明(PoW)的區塊鏈協議(例如比特幣[30])運行的最初考慮就是執行時所需的能量。在撰寫本文的時候,比特幣上生產一個區塊所需的哈希操作超過了260, 這些哈希操作需要大量的能量。確實,早期的計算表明了PoW協議所需的能量與一個小國相當[32]。
這種狀況推動了對其他區塊鏈協議的研究,通過使用更節能但能提供相同安全保證的其他協議取代工作量證明協議的方法來避免浪費工作量證明協議所需的能量。需要指出的重要一點是,比特幣的工作量證明機制促進了一種隨機化的“領導者選舉”過程,該過程就是選舉其中一個礦工來生產下一個區塊。此外,如果所有礦工都遵守協議,那么選舉就是以一種按照每個礦工計算力為比例的方式隨機進行的。(偏離協議的行為例如“自私挖礦”可能會破壞這個比例。)
一種依賴于“權益證明(PoS)”概念的自然替代機制:與礦工為了參與到領導者選舉過程中而投資計算力資源相反,他們運行一個程序,該程序以當前區塊鏈賬本中記錄的每個礦工所擁有的權益(stake)為比例來隨機選舉其中一個礦工作為領導者。
實際上,這產生了一個自我參考(self-referential)的區塊鏈規則:維護區塊鏈依賴于股東(stakeholder)們自己,對于他們的工作安排(和獎勵)按照賬本中記錄的他們所擁有的權益數量進行的。除此之外,這個規則對股東們應該沒有進一步“人造的”計算力需求。從某種意義上來說,這聽起來很理想;然而,實現一個這樣的權益證明協議涉及到了許多定義上的、技術上的、以及分析上的挑戰。
預備工作
PoS的概念在比特幣論壇上1 引起了廣泛的討論。Bentov等人更正式的研究了基于權益證明的區塊鏈設計,不論是與PoW[5] 相結合的還是作為區塊鏈協議[4] 唯一的機制都進行了相應的研究。雖然Bentov等人表明他們的協議對于某些類別的攻擊是安全的,但是他們不為分析基于PoS協議或依賴于精確定義的安全證明提供正式的模型。一些加密貨幣2 已經提出(并實現)了試探性的基于權益證明的區塊鏈協議。因為是基于試探性的安全論據,所以從安全角度來看這些加密貨幣經常被發現很多不足。[4] 中討論了多種攻擊。
將基于PoS的區塊鏈協議和依賴于固定的(fixed)一系列權限(請看[17] )的經典區塊鏈共識相比較也挺有趣。基于PoS區塊鏈和那些假設靜態權限的區塊鏈的區別是權益會隨著時間而改變,因此信任假設會隨著系統進化。
另一個可替代PoW的是一個空間證明(proof of space) [2, 20] 的概念,該概念在區塊鏈協議環境中[33] 已經被具體的研究過了。在空間證明的環境中,一個“證明者(prover)”希望展示空間(存儲/內存)的使用,就像在PoW中使用物理資源一樣,但是隨著時間的推移能量的要求會逐漸減少。一個相關的概念是空間時間證明(PoST) [28]。不過,這些對昂貴的物理資源(存儲或計算力)都有很大的需求。
PoS設計的挑戰
基于PoS的區塊鏈協議最基本的一個問題就是模擬領導者選舉過程。為了在股東們之間的選舉達到一個真正的隨機性,系統中就必須要引入熵(entropy),但引入熵的機制可能會容易被敵手操作。例如,一個控制一群股東的敵手可能會試圖模擬協議的執行,嘗試不同的股東參與者的順序以此來找到對敵對股東有力的繼續者。這會導致一個叫做"grinding"的致命弱點,敵對參與者可能會使用計算資源來傾斜領導者選舉。
我們的結果
我們提出的"Ouroboros"是一個可證明安全的權益證明系統。就我們所知,它是第一個進行嚴格的安全分析的PoS類型的區塊鏈協議。更多關于我們研究結果的細節后續會講到。
首先,我們提供一個模型來形式化實現基于PoS的區塊鏈協議的問題。我們介紹的模型本著 [24] 的精神,注重 持久性(persistence) 和 存活性(liveness),這是一個穩健的文件交易賬本的兩個重要屬性。持久性表明一旦系統的一個節點聲稱某個交易是“穩定的”,剩下的節點如果被查詢并誠實的進行回應,也必須報告該交易是穩定的。在這里,穩定性被理解為一種斷言,它將會被一些安全參數k參數化,k將會影響該屬性擁有的確定性(例如,深度超過k個塊)。存活性確保誠實地產生的交易一旦提供給網絡節點足夠長的時間之后,比如說經過了u時間,就說這個交易是穩定的。存活性和持久性相結合提供了一個強大穩健的交易賬本,即被誠實地產生的交易會被采納并且會變得不可改變。我們的模型經過適當的修改以促進基于PoS的變化。【譯者理解:持久性是指區塊的確認時間,持久性是指多少個塊之后交易不可更改。存活性是指交易的確認時間,從向網絡發送交易開始, 多長時間被確定, 超過了這么長時間,要么被確定了, 要么被拋棄了。】
第二,我們描述了一個基于PoS的新穎的區塊鏈協議。我們的協議假設參與者可以自由的創建賬戶并進行接收和支付,隨著時間的推移權益也會改變。我們使用一個(非常簡單的)安全的多方實現擲硬幣(coin-flipping)協議產生領導者選舉過程中的隨機性。這也是我們的方法(預防所謂的“grinding”攻擊)與其他先前解決方案的區別,那些解決方案要么基于區塊鏈當前的狀態確定性的定義一個這樣的值,要么使用集體擲硬幣的方式來引入熵 [4] 。同樣,我們方法的獨特性還包括以上系統會忽略掉的一輪輪的權益改變。相反,當前股東們的快照是在一個叫做階段(epoch)的相同的間隔內被拍下的,在每個這樣的間隔內一個安全的多方計算就使用區塊鏈本身作為廣播通道。具體的說,就是在每個階段被隨機選舉到的一群股東們形成一個委員會,然后該委員會就要負責執行擲硬幣協議。協議的結果決定下一個階段負責執行擲硬幣的下一群股東以及當前階段所有領導者選舉的結果。【譯者注釋:也就是多方計算產生真隨機,不像以前的pos協議,沒有嚴格的隨機性。】
第三,我們提供了一套正式的論證,確定沒有敵手可以打破持久性和存活性。我們的協議在下面這些合理的假設下是安全的:(1)網絡是同步的,也就是在任意誠實的股東都可以與其他股東進行通信的期間可以確定上限,(2)在誠實的多數者中的一群股東可以根據需要而參與到每個階段中,(3)股東們不會長期保持離線狀態,(4)腐敗適應性受制于一個小的時延,該時延在每個回合都會進行測度,并與安全參數成線性關系(或者,玩家擁有訪問匿名發送者廣播通道的權利)。我們安全論證的核心就是關于“可分叉字符串”組合概念的概率性論證,該論證由我們構想、證明并通過實驗驗證的。在我們的分析中,我們還區分了隱蔽攻擊,這是一種特殊的常用分叉攻擊。“隱蔽”在這里指的是敵手對于安全多方計算協議的隱蔽,參見 [3],敵手希望能夠破壞協議并且不會被發現。我們表示隱蔽可分叉字符串是可分叉字符串的子類,隱蔽可分叉字符串擁有更小的密度;這允許我們提供兩個在效率和安全保證方面能達到不同權衡的截然不同的安全論證。我們的可分叉字符串分析是一個自然和相當普遍的工具,它可以成為PoS環境安全論證的一部分。
第四,我們將關注點轉移到協議的激勵結構。我們為激勵系統中的參與者提出了一個新穎的獎勵機制,該系統已經被我們證明是(近似)納什均衡的。這樣,我們的設計就可以緩和類似扣塊(block withholding)和自私挖礦(selfish-mining) [21, 38] 的攻擊。獎勵機制背后的核心思想就是給這些協議行為提供積極的報酬,這些協議行為不能被與協議背道而馳的各方聯盟所扼殺。如此,也許能表明在合理的假設下,即在特定的協議執行成本很小,當所有的參與者都是理智的時候忠實的遵循協議就是一種平衡。
第五,我們引入了一個權益委托機制,該機制可以無縫的加入到我們的區塊鏈協議中。委托在我們這種背景下非常有用,因為我們希望允許我們的協議即使在一群股東高度分散的情況下也可以擴大規模。在這種情況下,委托機制能夠讓股東們將他們的“投票權利”委托出去,即參與到委員會中的權利,該委員會在每個階段運行領導者選舉協議。就像流動民主(liquid democracy)(又名委任民主 [23] ),股東們在想要獨立于其他股東時有能力撤回它們的委任約定。
鑒于我們的模型和協議描述,我們還可以探索在實踐中考慮到的各種攻擊如何在我們的框架內被解決。具體來說,我們討論了雙花攻擊、交易拒絕攻擊、51%攻擊、無利害關系、去同步攻擊以及其他攻擊。最后,我們給出了關于我們設計效率的證據。首先,我們考慮了雙花攻擊。為了解說的目的,我們對中本聰的分析做了一個比較,他的分析是關于比特幣交易擁有99.9%的把握是確定的確認時間。對于敵方而言,交易的確認時間是比特幣的10到16倍,這取決于敵手的計算力;對于一般的敵方確認時間要快5到10倍。此外,我們對雙花攻擊的分析依賴于我們對可分叉和隱蔽可分叉字符串的組合分析,并且比中本聰簡化些的分析3 適用于更廣的敵方行為。然后,我們調查了我們的原型實現,并報告了在亞馬遜云中運行的基準測試,這些測試展現了我們的權益證明區塊鏈協議在性能方面的優勢。
相關工作
在Ouroboros開發的同時,也有一些其他的協議被開發了,這些協議針對基于PoS分布式賬本設計空間中的多個位置。睡眠共識 [6] 考慮一個固定的股東分配(即權益不會隨著時間而改變)并針對一個“混雜”的腐敗環境,在該環境中,除了拜占庭式的錯誤之外,攻擊者被允許進行自適應以及執行失敗停止和修復腐敗。在這個混雜的腐敗環境中,我們的分析其實是直截了當的,參見備注 2;不過,由此產生的安全性只能在“延遲的腐敗”環境中被爭論,因此它不是完全自適應的。白雪(Snow White) [7] 講述了一個演變的股東分配以及為了保障安全使用一個與我們類似的腐敗延遲機制。然而,與我們的協議相反的是,白雪設計容易受到“grinding”類型的攻擊,這種攻擊會按照敵方的意愿來偏離高概率事件。這不僅不會漸漸的破壞安全性,而且還預防了不顧及敵方計算力的具體參數化。
Algorand [27] 提供了一個遵循拜占庭協議的分布式賬本,每個塊都可以抵抗自適應的腐敗。由于每個塊都需要達成一致,所以這樣的協議生產區塊的速率在本質上會比基于PoS的區塊鏈要慢(其中減速與拜占庭協議預期的執行時間相匹配),但是它們可以自由的進行分叉。在這方面,盡管存在分叉,區塊鏈協議還是展現了允許客戶設置可以愿意承擔的風險級別的靈活性,讓低級別客戶可以樂觀的享受更快速的處理時間。最后,Fruitchain [36] 為基于PoW的區塊鏈提供了一個獎勵機制和近似納什均衡證明。我們在區塊鏈層使用了一個類似的獎勵機制,不過我們底層的機制是不同的,因為我們需要在PoS的環境中操作。該思想的核心就是為誠實的多數者(參見 [24] )提供一個PoS“背書”模擬,使用與基于PoW拜占庭協議相同的邏輯輸入一個合適的比例。
白皮書的概括
我們在第二部分闡述了模型,為了簡化我們協議的分析,我們在第三部分以四個階段展示給大家。總之,在第四部分我們描述和分析在靜態環境中的協議;然后我們再在第5部分講述動態環境。我們的激勵機制和均衡協議將在第七部分講述。然后我們在第6部分講述以匿名渠道改善協議以及在第8部分講述委托機制。接下來,第9部分我們討論協議在多種攻擊下的恢復力。在第10部分我們討論交易確認時間和原型實現在亞馬遜云上運行的一般性能結果。
譯者說:共識介紹的部分已經翻譯完成,更多精彩,下回再續!(十分感謝大家對Cardano社區的關注)
翻譯作者: 許莉
原文地址: Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol
作者:Lilymoana
鏈接:https://www.jianshu.com/p/6e4088bdf9a9
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的Ouroboros:一个可证明安全的PoS区块链协议 (共识介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 连接不同区块链的跨链技术介绍
- 下一篇: IELE:区块链的一个新虚拟机