比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > SOL > Info

V神詳述:如何實現99%的容錯共識_以太坊

Author:

Time:1900/1/1 0:00:00

很長一段時間以來,我們一直聽說在同步網絡中,實現50%容錯的共識是有可能的。在同步網絡中,任何可信節點廣播的消息都可以保證在某個已知時間段內被所有其它可信節點接收。

如果攻擊者超過50%,他們就可以執行“51%攻擊”,對于區塊鏈上同類型的任何算法都有可能出現類似的情況。

我們也一直聽過這樣的說法:如果你想放松同步假設,并且擁有一種“異步下安全”的算法,最大可達到的容錯率可下降到33% (PBFT、Casper FFG等都屬于此類)。

然而,如果添加更多假設(具體來說,你不僅需要觀察者來關注那些不積極參與共識但關心其輸出的用戶,也要積極地關注共識,而不僅僅是在結果出現后下載其輸出),這樣可以把容錯率一路提高到99%嗎?

事實上,這一點 早已人盡皆知。萊斯利·蘭伯特(Leslie Lamport)1982年在著名的談及“拜占庭一般問題”的論文中包含了對算法的描述。下面我將嘗試用簡化的形式重新來描述和表述這個算法。

假設有N個參與共識的節點,每個人都提前同意這些節點代表誰(根據上下文,它們可以由可信方選擇,或者如果需要更強的去中心化程度,可以通過一些工作證明或利害關系進行證明)。

V神:PoS中51%攻擊者只有一次機會:V神表示,在PoW的共識機制中,一名成功的攻擊者可以反復攻擊,除非干掉所有人的硬件否則沒有辦法干掉他的硬件,這是PoS優于PoW的一個特征,而且被低估了。在PoS中,一個實體進行51%攻擊不再致命。如果攻擊也只有一次機會,然后要么被砍掉要么被軟分叉,結果失去了幣也就不能再發動攻擊了。[2020/9/3]

我們把這些節點標記為0…N-1。另外,還假設網絡延遲和時鐘差異上有一個已知的限制D。(例如,D = 8秒)。每個節點都有能力在T時刻發布值(惡意節點當然可以早于T或晚于T地發布值)。

所有節點等待(N - 1)?D秒,運行如下進程。定義x: i為“節點i簽名的值x”,x: i: j為“節點i簽名的值x,并且x與j一起簽名”,等等。在第一階段發表的提案將采用v的形式: i的形式為一些v和i,其中包括提出該提案的節點的簽名。

如果一個驗證器i收到一些消息v: i:…: i[k], 其中 i:…:i[k]是已經按順序對消息進行了簽名的索引列表(只是v本身會算作k = 0,而v:i則為k = 1),那么驗證程序檢查(i)的時間將小于T + k?D,同時他們尚未看到包含以下內容的有效消息;如果兩項檢查均通過了,則會發布v: i:…: i[k]: i。

V神:不認為加密貨幣會將政府對貨幣的權力減至零:V神剛剛在推特表示,我并不認為加密貨幣會將政府對貨幣的權力減至零。[2020/8/11]

在T + (N - 1)?D時,節點停止監聽。此時,就可以保證所有的可信節點都“有效地看到了”相同的一組值。

如果問題要求選擇一個值,則可以使用一些“選擇”函數從他們看到的值中選擇一個值(例如采用哈希值最低的值)。然后節點可以就該值達成共識。

現在,讓我們來探究一下為什么這種方式有效。我們需要證明的是,如果一個誠實節點(有效地)看到了特定的值,然后其它的誠實節點也看到該值(如果我們證明了這一點,那么我們知道所有誠實節點都看到了同一組值,因此如果所有誠實節點都運行相同的選擇功能,他們會選擇相同的值)。

假設任何誠實節點收到一條消息v: i:…i[k],他們認為是有效的。在時間T + k?D之前到達),假設x是另一個誠實節點的索引。x要么是i的一部分:…要么不是。

在第一種情況下(對于此消息,x=i[j]),我們知道誠實節點x已經廣播該消息,他們這樣做是為了響應他們在時間T+(j - 1)·D之前收到的帶有j-1簽名的消息。此時他們廣播了他們的消息,那么所有誠實節點一定都會在時間T + j?D前收到消息。

聲音 | V神:并不看好大型機構區塊鏈的設置,很難讓這些區塊鏈真正去中心化:以太坊創始人V神(Vitalik Buterin)近日在接受采訪時表示,創建以太坊最大的挑戰不是技術上的挑戰,而是社會挑戰。在安全問題上,V神提出了一種社會恢復的方法,將資金存儲在一個由私有密匙保護的智能合約中,其他五個密匙由其他受信任的人持有。如果私鑰丟失,如果使用了5個密鑰中的3個,智能合約可以被編程來恢復錢包。他還談到,5G技術和更快的互聯網連接將極大地提升區塊鏈的可擴展性。V神表示,在嘗試提高事務吞吐量方面正在進行大量研究。V神還說,在過去的五年里,每當大型機構開始談論區塊鏈,他們往往會關注區塊鏈的設置。他表示:“我不是特別看好它們,我認為很難讓這些區塊鏈真正去中心化,讓人們信任它們。”(AMBCrypto)[2019/10/31]

在第二種情況下,由于誠實節點在時間T + k?D之前看到消息,那么它們就會用自己的簽名傳播消息,并保證包括x在內的所有人都會在時間T + (k + 1)?D之前看到它。

注意,該算法使用添加自己簽名的行為作為消息超時的一種“碰撞”。正是這種能力保證了一個誠實的節點如果及時看到了消息,那它們也可以確保其它所有節點也能及時看到消息,因為“準時”的定義增加的時間超過了每添加一個簽名的網絡延遲。

聲音 | V神:以太坊2.0“0階段”所有事情基本已敲定,已實現客戶端互相通信:在以色列特拉維夫舉行的以太坊會議上,V神在Q&A環節中討論了整個以太坊生態系統的發展。關于以太坊2.0的第一個開發階段——0階段,V神表示,除了在安全審計過程中出現的問題之外,所有的事情都已“定稿”。已經實現客戶端互相通信,下一步就是要確保他們能夠維持一個規模龐大的公共網絡。下一步就是要確保他們能夠維持一個規模龐大的公共網絡,這可能是聚集了大量交易的幾十萬個驗證器。對話還涉及了對那些愿意將大量以太坊鎖倉在智能合約、以幫助驗證網絡上的交易的驗證器進行獎勵。 (Decrypt)[2019/9/16]

在一個節點是誠實的情況下,我們能否保證被動的觀察者(比如關心結果的非共識參與節點)也可以看到結果。

按照計劃,存在一個問題。假設一個指揮官和k(惡意)驗證器的某個子集生成一條消息v: i:…i[k],并且在T + k?D前廣播給一些受害者,受害者認為消息是“準時”,但當他們轉發時,消息只會在T + k?D之后達到所有的已經協商一致的誠實節點,而所有協商一致的誠實節點將會拒絕它。

聲音 | V神:支持旨在提高操作碼gas成本的EIP 1884,但仍需進一步討論:V神在推特表示支持EIP 1884(并希望重新定價更高),但這仍然需要進一步探討。據Odaily星球日報此前消息,以太坊開發人員日前已就伊斯坦布爾升級中的6個改進協議達成共識,但對EIP-1884的實施存在擔憂(該EIP建議對某些操作碼重新定價)。為了在燃料(gas)支出和資源消耗之間取得良好的平衡,EIP-1884建議提高這些操作碼的燃料成本。注:V神此前建議在伊斯坦布爾硬分叉時提高gas limit。[2019/9/1]

但我們可以堵住這個洞,提出一個新的約束:要求D在兩倍的網絡延遲加上時間差。然后我們給觀察者一個不同的超時:觀察者接受v: i:…i[k]必須在 T + (k - 0.5)?D之前。

現在,假設觀察者看到一條消息并接受了它。他們能夠在時間T + k?D之前將其廣播到一個誠實節點,并且誠實節點將發布帶有簽名的消息,該消息將在T + D (k + 0.5)之前到達所有其它觀察者,同時帶有k + 1個簽名的消息將會超時。

改進其它共識算法

理論上講,上述算法可以作為獨立的共識算法使用,甚至可以用于運行權益證明的區塊鏈。

第N + 1輪共識的驗證器集合本身可以在第N輪共識中被決定(例如,每輪共識也可以接受“存款”和“取款”交易,如果接受并正確簽名,將添加或刪除驗證器后進入下一輪)。

需要添加的主要額外成分是另一種機制,用于決定允許提議區塊的提名者(例如。每輪可以有一個指定的提名者)。它也可以被修改為用作工作證明的區塊鏈,允許參與共識的節點通過公鑰發布工作解決方案的證明,同時通過簽名實時地“聲明自己”。

然而,同步假設是非常強大的,所以我們希望在不需要超過33%或50%容錯的情況下,無需同步假設也能工作。有一種方法可以做到這一點。

假設我們有一些其它的共識算法(例如,PBFT, Casper FFG,基于鏈的PoS),其輸出可以被偶爾在線的觀察者看到(我們稱之為閾值依賴的共識算法,而上文所述的算法我們稱之為延遲依賴的共識算法)。

假設閾值依賴的共識算法持續運行,在一種模式下,它將不斷地“確定”新的區塊到鏈上。例如:每一個最終值都將指向一個“父”;如果有一個指針序列a→…→B,我們稱A為B的后裔。

我們可以在這種結構上改進依賴于延遲的算法,讓總是在線的觀察者能夠訪問檢查點上的一種“有可能結果”,容錯性約為95%(也可以通過添加更多的驗證器和要求使用花費更長時間的過程來將容錯性推進至100%)。

每當時間達到4096秒的倍數時,我們就運行依賴于延遲的算法,選擇512個隨機節點來參與算法。

一個有效的建議是由閾值相關算法最終確定的任何有效的值鏈。如果一個節點在時間T + k?D (D = 8秒)之前看到有k個簽名的某個最終值,則接受該鏈進入它的已知鏈集中,并添加自己的簽名進行重新廣播它;觀察者像以前一樣使用T + (k - 0.5)?D的閾值。

最后使用的“選擇”函數很簡單:

忽略不是在前一輪中已經商定的最終確定值的后代的值

忽略最終的無效值

在兩個有效的最終值中進行選擇時,選擇哈希值較低的那個

如果5%的驗證器是誠實的,那么隨機選擇的 512 個節點中,只有大約 1 萬億分之一的機會是誠實的,因此當上述算法工作,將會協調得出單一最終值的節點。

如果閾值依賴的共識算法的容錯性被滿足(通常50%或67%的節點是誠實的),那么閾值依賴的共識算法將不會確定任何新的檢查點,或者它將確定最終彼此兼容的新檢查點(例如,每個檢查點都指向前一個檢查點作為父檢查點)。

因此,參與依賴于延遲的算法的節點不會同意它們接受的值,它們接受的值仍然保持為同一鏈的一部分,不存在沒有實際的分歧。一旦延遲在未來的某個回合恢復正常,依賴于延遲的共識將恢復“同步”。

如果依賴閾值和依賴延遲的共識算法的假設同時被打破(或在連續的兩輪中被打破),那么算法就會分解。例如,假設在一輪中,閾值依賴共識最終確定Z→X→Y,而延遲以來共識在X,Y之間意見不一,那么共識將會在不達成協議情況下結束。下一輪閾值依賴共識將會在最終確定W不源于 X,且X不源于Y的情況下結束;在依賴延遲的共識中,同意Y的節點不會接受W,而同意X的節點會。然而,這是不可避免的;異步下的安全共識是不可能的。

容錯是拜占庭容錯理論中一個眾所周知的結論,就像很多的不可能事件一樣,容錯甚至在觀察器離線情況下允許同步假設。

作者:Vitalik Buterin(V神)

翻譯 | Katie 責編 | 晉兆雨

原文鏈接:

https://hackernoon.com/how-to-achieve-99percent-fault-tolerant-consensus-n25b31m

Tags:區塊鏈以太坊POSGAS區塊鏈技術通俗講解舉例以太坊最新價格分析POSCHEGastream

SOL
盡管UNI創下了新高 但Uniswap的好運氣還能持續多久?_DEF

這幾天對于UNI來說是利好的,無論是從價格上還是在開發方面上來看都是如此。幾天前,UNI不僅僅大幅上漲并且創下了新高,而且去中心化交易所Uniswap的開發團隊關于V3的設計也在市場引起了轟動.

1900/1/1 0:00:00
312一周年:面對極端行情的你 堅持信仰了嗎?_比特幣價格

2020年是不平凡的一年,2020年的3月更是可以被加密載入史冊的一年,全球資產跳水,加密市場上演“312大跌”。但時隔一年,比特幣已經以14倍漲幅強勢吸引了主流目光.

1900/1/1 0:00:00
312過去一年了 比特幣還是巴菲特口中的"老鼠藥"么?_NFT

2021 年,我們看到許多上市公司紛紛將比特幣加入資產負債表。近半年以來也是機構紛紛跑步入場最密集的時間段,它們至少有一個共同的目的:那就是在全球大放水的背景下,通過比特幣來“儲值”預期抵御通脹.

1900/1/1 0:00:00
區塊鏈+稅務 開辟電子發票新賽道_區塊鏈

近日,中共中央辦公廳、國務院辦公廳印發了《關于進一步深化稅收征管改革的意見》,意見指出,要探索區塊鏈技術在社會保險費征收方面的應用.

1900/1/1 0:00:00
區塊鏈的2021 互聯網的1997_區塊鏈

寫在前面的話: 三年前,我在區塊鏈熊市生存指南寫到:“真正推向區塊鏈進入泡沫的,一定是進入全球億萬級別的用戶。”如今,比特幣和加密經濟即將走向新一波泡沫頂峰.

1900/1/1 0:00:00
印度擬立法禁止加密貨幣?財長:并非關閉所有加密窗口_數字貨幣

印度儲備銀行堅持其對加密貨幣的立場,并已向政府轉達了其尋求禁止此類工具的決定,此前印度儲備銀行已表示嚴重關切.

1900/1/1 0:00:00
ads