HoneyBadgerBFT:一个网络环境无关的Byzantine容错的分布式共识协议
2017-01-04 Jin Gao HoneyBadgerBFT:一個網(wǎng)絡(luò)環(huán)境無關(guān)的Byzantine容錯的分布式共識協(xié)議
作者介紹:
夏雨,麻省理工學(xué)院電子工程與計算作者機科學(xué)系博士一年級在讀,本科畢業(yè)于清華大學(xué)姚班。目前的研究興趣包括分布式系統(tǒng)與理論密碼學(xué)。
隨著密碼貨幣的流行,人們把越來越多的注意力放在大規(guī)模、Byzantine容錯的分布式協(xié)議上。這些協(xié)議可以用來執(zhí)行一些“任務(wù)敏感”的應(yīng)用,例如金融交易系統(tǒng)、能源維護系統(tǒng)、交通調(diào)度系統(tǒng)等。這樣的協(xié)議可以保證即使集群中的部分機器出現(xiàn)故障或者因遭受攻擊被敵手支配的情況下,剩下的大部分主機還可以使任務(wù)正常進行。在這樣的應(yīng)用場景中,傳統(tǒng)的解決方案是使用弱同步(Weakly Synchronous)的分布式協(xié)議,例如PBFT。這類弱同步協(xié)議的活躍性(Liveness)仍然依賴于對于網(wǎng)絡(luò)延遲的假設(shè),我們認為這樣的協(xié)議不適用于極端的網(wǎng)絡(luò)環(huán)境(在我們的論文中,我們給出了一個讓PBFT失敗的網(wǎng)絡(luò)環(huán)境)。
因此我們提出了HoneyBadgerBFT協(xié)議,這是據(jù)我們所知的第一個完全異步的共識協(xié)議,它不依賴于任何關(guān)于網(wǎng)絡(luò)環(huán)境的時間假設(shè)。
目前HoneyBadgerBFT僅支持封閉網(wǎng)絡(luò),即在協(xié)議開始前,集群中的主機數(shù)量是已知的,并且在協(xié)議執(zhí)行過程中沒有新的主機加入網(wǎng)絡(luò)。
HoneyBadgerBFT的核心部分由兩部分組成,分別是原子廣播(Atomic Broadcast)和異步公共子集協(xié)議(Asynchronous Common Subset),這兩個協(xié)議的性質(zhì)請參考論文的第4章 。
在協(xié)議開始以前,每個主機準備好各自的提案(即試圖寫入共識的數(shù)據(jù)),啟動N個原子廣播的實例(N為網(wǎng)絡(luò)中主機的個數(shù))。在某一個原子廣播完成以后遂將該廣播對應(yīng)的主機編號作為輸入啟動異步公共子集協(xié)議。異步公共子集協(xié)議在收集到足夠多的主機編號后終止,所有的非敵手主機得到一個關(guān)于子集的共識。根據(jù)這個子集這些主機將從原子廣播階段獲得的提案寫入共識。
我們的原子廣播取自Bracha在1987年提出的協(xié)議 [1],如論文中圖2所示。我們在[1]的基礎(chǔ)之上進行了許多優(yōu)化。例如,我們使用了消除碼來改善它的漸近通信復(fù)雜度 [2]。
我們使用的異步公共子集協(xié)議來自Ben-Or的構(gòu)造[3],如論文中圖4所示。直觀來講,它使用N個二進制共識協(xié)議實例并根據(jù)其結(jié)果來決定一個公共子集。在我們的工作中,我們使用了Mostefaoui等人的隨機二進制共識協(xié)議原型[4]。
這個隨機二進制共識協(xié)議中依賴于一個分布式公共隨機源,我們使用了一個簡單的閾值加密系統(tǒng)來設(shè)計這個隨機源。
在核心部分之外,我們還要考慮對手利用網(wǎng)絡(luò)延遲操縱提案選擇的可能性,完整的協(xié)議在論文中的圖1中描述。
HoneyBadgerBFT的容錯率為該模型下理論最優(yōu)的 。
協(xié)議的期望運行時間為個異步時間單位(以公共隨機源為準)。N臺主機間的消息總和的通信復(fù)雜度為, 其中為各個主機的提案中最大的一個,為安全參數(shù)。如果我們每次投放大小的消息平攤到每個主機上,的額外開銷將被消除。通信復(fù)雜度將變?yōu)槊颗_主機。
我們在Amazon EC2服務(wù)上進行了大規(guī)模的實驗(104臺主機,容錯量為26,分布在EC2的8個區(qū)橫跨5個大洲),在論文中我們提供了消息大小(Batch Size)和通過量(Throughput)的折線圖(圖6),消息延時和通過量的折線圖(圖7),以及與PBFT的消息通過量的對比(圖8),當(dāng)主機數(shù)目稍大的時候,PBFT處于劣勢。由于HoneybadgerBFT對網(wǎng)絡(luò)環(huán)境的要求很低,我們將其在Tor上也進行了實驗,最高達到了800Tx/sec的通過量。
image.pngimage.png參考文獻
- [1] G. Bracha. Asynchronous byzantine agreement protocols. Information and Computation, 75(2):130–143, 1987.
- [2] C. Cachin and S. Tessaro. Asynchronous verifiable information dispersal. In Reliable Distributed Systems, 2005. SRDS 2005. 24th IEEE Symposium on, pages 191–201. IEEE, 2005.
- [3] M. Ben-Or, B. Kelmer, and T. Rabin. Asynchronous secure computations with optimal resilience. In Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing, pages 183–192. ACM, 1994.
- [4] A. Mostefaoui, H. Moumen, and M. Raynal. Signature-free asynchronous byzantine consensus with t< n/3 and o (n 2) messages. In Proceedings of the 2014 ACM symposium on Principles of distributed computing, pages 2–9. ACM, 2014.
作者:大圣2017
鏈接:https://www.jianshu.com/p/425d7fde411a
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的HoneyBadgerBFT:一个网络环境无关的Byzantine容错的分布式共识协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【译】Byzantine Fault T
- 下一篇: 可验证随机函数VRF之Algorand算