【译】Byzantine Fault Tolerance in Proof-of-stake protocols
介紹基本知識,了解最新和最偉大的卡斯帕研究
股權證明符合數十年前的研究文獻。如果您遵循以太坊基金會的Casper研究,您將會聽到許多術語,如“異步安全性”和“異步時序模型中的容錯閾值”。我想概述基礎拜占庭容錯理論中的重要概念因此您可以在今天有關證券占用空間中最激動人心的工作中獲得更多背景。
在學術文獻中談到分布式共識算法時,我們使用了一個基本模型,該模型假設了一些關于時間的屬性(“該信息到達需要多長時間?”)以及一些關于故障類型的屬性(“節點在協議中做錯了什么?“)。?我們這樣做,所以我們可以非常精確地描述我們正在討論的事物的類型,因此我們可以反過來創建正在調查的算法的各種保證的正式證明。?這些正式的證明是有用的,所以我們可以說服我們自己和其他人,我們認為將發生的事情將實際發生。?計算機可能進入的狀態數量,更不用說它們中的許多狀態的網絡,如此龐大以至于在構建真正的冷卻系統的系統時,使用數學中的一些漂亮工具是非常有幫助的。
協議中的安全性和活力
讓我們快速回顧協議是什么,所以我們都有相同的上下文。?然后,我們可以談論活躍性和安全性,以及當這些事情中的任何一個都有“失敗”或“錯誤”(通常是同義詞,btw)時它的意思。?我們可以像一場比賽一樣思考一個協議 - 有一套球員和一些規則。?這些規則決定了玩家應該如何回應游戲中的各種事件。?這個“要做的事情”通常會導致玩家改變他們所擁有的一些數據,比如迄今為止的最高分。?如果我們的共識協議運作良好,那么遵循所有規則的所有參與者意味著在任何給定時間,每個參與者對于他們的本地狀態將具有相同的價值。?在分散式協議中,這種結果變得非常重要,在這種協議中,你通常會在互聯網上有一群陌生人正在試圖對這個世界的本質做出最好的猜測。
活力是指我們的共識算法不能“卡住”,這意味著只要足夠的節點(“參與者”)仍在參與,就可以達成共識。?“活躍性失敗”是指我們從某種狀態開始(如創世區塊),然后運行協議處理消息,我們從同行中看到“脫線”并相應更新我們對全球狀態的本地觀點 - 然后被“卡住”。?這里意味著您的計算機可能會高興地等待更多的消息,但實際上沒有任何人(或某些子集在某些情況下)可以向您發送消息,讓您繼續計算全局狀態。?你認為這就像玩hopskotch,除非你在卡牌7和8之間卡住(可能永遠!)跳中。
安全性是一個重要的一致性屬性,它意味著一旦節點決定了某個共識值(根據協議),那么該決定也將在該組參與者中的所有節點上做出。?更簡單一點,如果你沒有安全,那么你就沒有達成共識。?如果我們一半人認為當前狀態是數字“1000”,但另一半認為它是“1234”,我們的協議就會失敗。?一個重要的細節是節點可以避免產生共識值 - 也許他們需要更多的時間來從他們已經看到的所有消息中找出共識狀態 - 但是如果一個節點正確地遵循一個安全協議,那么它只會一旦確定每個遵守規則的人都做了相同的事情,就要承諾具體的價值。
計時模型
通常使用的三種主要類型的時序模型是同步模型,異步模型和部分同步模型。?這些模型中的每一個模型都會對在給定一輪協議執行過程中節點之間交換消息之間可能發生的時間長度(“延遲”)做出一些保證。?這種分類很重要,因為在分布式設置中,單個節點無法區分發生故障的對等節點和需要很長時間響應的對等節點。?考慮到這個事實是設計分布式共識的魯棒算法的核心。
舉一個更熟悉的例子,讓我們想象我們坐在一張桌子上,你的朋友正在玩一個電話游戲。?一個玩家開始向下一個玩家耳語,然后我們全都圍著桌子向旁邊的玩家耳語。?最后的最后一名球員展示了他們聽到的每個人的單詞,每個球員都可以將他們的單詞與起始單詞進行比較。?笑通常隨之而來。?實際上,我們可以在這里區分兩種類型的延遲:1)玩家一旦聽到該單詞就會向下一個玩家耳語;?2)單詞從玩家到玩家的時間。?第一種延遲對我們的分布式計算環境非常重要 - 想象一下由于本地代碼中存在錯誤而導致無限循環的“領導者”節點,并且永遠不會“傳遞火炬”,從而使組中的“追隨者”可以繼續在沒有失敗的領導者的情況下形成共識 - 然而,第二種延遲通常會得到更多的分析,因為它通常以絕對的方式占主導地位(也許是因為作者認為我們可以編寫無缺陷的代碼?)。?要在電話游戲中傳遞信息,你只需要向鄰居耳語,這似乎并不需要很長時間。?在分布式計算環境中,您可能試圖聯系世界另一端的計算機,此時傳輸消息所需的時間開始累計。?現在讓我們看看每個時序模型。
在同步模型中,在節點發送消息和確定接收節點聽到消息之間的時間內,有一些最大值(“上限”)T.?對于節點之間速度的相對差異,你也有一個上限P(所以你可以考慮處理器速度慢的機器)。?我們可以想象一些理想化的環境,我們只有少數幾臺電腦(可能都在同一個房間內)與完全可靠的鏈接交換消息。?在這種情況下,我們希望現代機器能夠在不到一秒鐘的時間內發送消息;?這個數值就是我們的T.由于我們使用了現代化的機器,讓我們假設所有的處理器都是直接來自晶圓廠,那么我們將在相同的節點間有一定的容差。我們的P值。
在異步模型中,我們刪除T和P的上界。消息可以花費任意長的時間到達對等點,并且每個節點可以花費任意時間響應。?當我們說任意的,我們包括“無限”,這意味著它發生一些事件需要永遠。?這種模式非常重要,因為它可以更準確地捕獲公共互聯網,網絡上的節點(包括中間路由器)發生故障,并且信息一直被丟棄。
部分同步模型在兩者的混合中存在:對于T和P存在上限,但協議設計者不知道它們,并且任務正在設計依據這個事實仍然達成共識的機制。?在實踐中,考慮到現代網絡/機器的實際特性(消息通常到達目的地),協議實現者可以實現類似于這種模型的系統,并使用諸如超時之類的策略來指示節點何時應該重試發送消息。?傳統的BFT文獻(例如Paxos和較新的Raft)有幾種類型的算法利用了這種見解。
這在卡斯帕的應用有多少
所有上述背景都與卡斯帕相關,因為它旨在成為以太坊區塊鏈的分散協商一致協議。?我們不僅有典型的問題類別 - 錯誤的節點和多斑點的網絡 - 我們現在也有實際的激勵措施,使節點行為失常。?對卡斯帕共識的成功攻擊可能允許某人執行雙重支出攻擊或我喜歡稱之為索羅斯攻擊的攻擊?(參見喬治索羅斯和黑色星期三),攻擊者在短時間內攻擊ETH,然后在Twitter時激發大規模的恐慌拋售開始傳播以太坊達成共識失敗的消息。
關于分散化背景下的共識細節還有很多需要說明的內容,并且考慮到加密貨幣涉及的經濟誘因,攻擊空間更大。?我建議從這里開始深入探索:?https?://blog.cosmos.network/understanding-the-basics-of-a-proof-of-stake-security-model-de3b3e160710?,如果你想從消防隊員那里喝酒可以加入https://ethresear.ch/的研究。
https://hackernoon.com/byzantine-fault-tolerance-in-proof-of-stake-protocols-ab9746521b24總結
以上是生活随笔為你收集整理的【译】Byzantine Fault Tolerance in Proof-of-stake protocols的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Automatic Exploit Ge
- 下一篇: HoneyBadgerBFT:一个网络环