金色硬核 | V神:通往單槽最終確認的路徑
金色硬核 | V神:通往單槽最終確認的路徑
-
2.1萬
本文為V神2022年1月25日在ethereum.org上發表的文章。金色財經編譯如下:
特別感謝Justin Drake、Dankrad Feist、Alex Obadia、Hasu和其他hackmd anons提供反饋和對本文各種版本的審閱。
目前的以太坊(信標鏈)區塊需要64-95個slot(約15分鐘)才能最終確認(注:在以太坊2.0 中,每12秒有一個指定的slot。如果驗證者被分配到一個slot中提議區塊,該slot便有一個區塊。然而,如果驗證者錯過該slot,那么便是個空slot)。這是合理的,因為它是在去中心化/最終確認時間/开銷三者權衡曲线上選擇的一個中等、不壞的權衡:15分鐘不算太長,與現有交易所的確認時間相當,它允許用戶在普通計算機上運行節點,甚至由32枚ETH的存款(而不是早期的1500枚ETH)而產生的大量驗證者。但是,有很多很好的論據可以將最終確認時間減少到單個插槽(slot)。這是一篇研究現狀的文章,研究了一些可能的策略。
目前的以太坊質押如何以及為何有效
目前以太坊信標鏈大約有285,000名驗證者账戶已存入32枚ETH,因此可以參與質押。驗證者不會與用戶一一對應:富有的質押者可能控制着數百個驗證者。最低32枚ETH限制了驗證者账戶的可能數量,並確保鏈仍然具有處理它們的計算能力。
每個插槽(12秒)都會將一個新區塊添加到鏈上。在每個插槽中,還有數千個證明(attestations)對鏈的頭部進行投票。有一個名為LMD GHOST的分叉選擇規則,它將這些證明作為輸入,並確認鏈的頭部。這種由數千個證明進行的並行投票使得以太坊比傳統的最長鏈系統更加健壯:除非存在主動攻擊或巨大的網絡事故,否則即使是單個插槽也幾乎永遠不會被反轉。
證明還有第二個目的:它們在稱為Casper FFG的大規模共識算法中充當投票。每個epoch(32個slot,或6.4 分鐘),所有活躍的驗證者都有機會證明一次。這樣經過兩輪,如果一切順利,一個epoch(以及其中的所有區塊)將被最終確認。一旦一個區塊被最終確認,反轉該區塊需要至少1/3的驗證者燒掉他們的存款:攻擊成本超過300萬枚ETH。
持續審查驗證者或交易的成本同樣高昂,盡管防御審查攻擊需要額外的協議幹預。如果51% 的驗證者开始審查,受害者和用戶可以在少數軟分叉上進行協調,他們在彼此的區塊上構建並忽略攻擊者。在少數軟分叉上,攻擊者的存款將因“怠惰懲罰”(inactivity leak)而損失數百萬枚ETH,幾周後鏈恢復最終確認。
為什么要嘗試實現單槽最終確認?
嘗試擺脫現狀並將最終確認時間縮短到一個slot有幾個關鍵原因:
用戶體驗。大多數用戶不愿意等待15分鐘才能最終確認。目前即使是交易所也經常認為存款在12-20次確認(約 3-5 分鐘)後“最終確認”,但即使12-20個PoW確認提供的安全保證(與真正的PoS最終確認相比)也是低的安全保證。單槽最終確認將以用戶越來越習慣期望的速度提供非常高的安全性。
MEV重組阻力。單槽最終確認甚至將使為MEV提取目的而重組鏈不可行。合並中的LMD GHOST已經使這變得困難,但是單槽最終確認使這種保證更加強大,並產生了強大而壓倒性的抑制作用,甚至可以阻止敵對的大多數人串通和攻擊。有關該論點的更詳細說明,請參閱這篇文章https://www.paradigm.xyz/2021/07/ethereum-reorgs-after-the-merge/
減少協議復雜性和錯誤的機會。Casper FFG最終確認和LMD GHOST分叉選擇之間的“接口”是一個非常復雜的來源,導致許多攻擊需要相當復雜的補丁來修復,並且經常發現更多的弱點。單槽最終確認提供在單槽確認機制和分叉選擇規則(僅在≥13≥13離线案例)間關系更清晰的機會。其他復雜性來源(例如,改組為固定規模的委員會)也可以減少。
想法 1:通過超級委員會進行單槽最終確認
不是所有驗證者都參與每輪Casper FFG,而是只有幾千名驗證者的中型超級委員會參與,允許每輪共識在一個slot發生。該技術理念最初是在這篇ethresear.ch帖子中引入https://ethresear.ch/t/a-model-for-cumulative-committee-based-finality/10259。這篇文章更詳細地描述了這個想法,但核心原則如下:
BFT共識不是在每個epoch運行,而是在每個slot運行。這意味着一旦交易被包含在一個區塊中,在一個slot之後,將花費數千枚ETH來恢復該交易。
我們不依賴完整的活躍驗證者集來最終確認每個slot。相反,我們依靠隨機選擇的數千名驗證者組成的超級委員會。
分叉選擇規則 (LMD GHOST) 僅用於委員會未確認的例外情況(這需要 >1/4 離线或惡意)。如果發生這種情況,分叉選擇規則將決定哪個區塊是鏈的頭部,以及委員會將被“怠惰懲罰”(inactivity leak)直到再次確認。
如果委員會未能確認,則鏈繼續使用分叉選擇來確定鏈頭和被“怠惰懲罰”的離线驗證者,直到他們的余額被稀釋到,剩余在线驗證者余額的2/3並且委員會可以確認的程度。
切換到超級委員會的次要好處
從全局驗證者集切換到超級委員會有一些次要好處:
運行驗證者節點的計算負載變得更加穩定。要求與驗證者總數成正比,強制驗證者擁有強大的機器以防驗證者數量大幅增加,計算負載將是穩定的,因此驗證者確切知道他們需要什么計算要求。
大多數情況下,驗證者可以立即退出。目前不屬於委員會的驗證者將能夠立即退出(除非有很多提款正在進行並且有一個隊列)。即使是委員會中的驗證者也可以很快退出(1-5 分鐘),因為委員會可以在單槽最終確認性下快速輪換。只有在真正特殊的情況下(意外的大規模退出或積極的持續攻擊),驗證者才需要留下並繼續保護鏈,直到一切恢復正常。
超級委員會有多大?
就驗證者數量而言,答案是“大到足以成為一個安全委員會”(所以,幾百個)。但就總ETH而言,委員會也必須足夠大。“罰沒(slashing) ”和“怠惰懲罰”(inactivity leak)的ETH數量需要大於可以從攻擊中實際獲得的收入,並且需要大到足以阻止或破壞具有大量外部激勵來破壞鏈的強大攻擊者。
這個需要多少ETH的問題不可避免地是一個直覺問題。以下是可以提出的一些問題來指導你的直覺:
假設以太坊受到51%的攻擊,社區需要花幾天時間協調鏈下治理事件以恢復,但所有ETH的 X%被燒毀。X需要多大才能對以太坊生態系統產生淨效益?
假設一家大型交易所因數百萬ETH被黑客入侵,攻擊者將收益存入並獲得超過51%的驗證者。在他們所有的贓款被燒毀之前,他們應該能夠進行多少次51%攻擊?
假設51%攻擊者开始反復重組鏈,以在一段時間內捕獲所有MEV。我們希望對攻擊者施加的每秒成本是多少?
-
Justin Drake的估計表明,如今spawn-camp攻擊比特幣的成本(因此,在社區改變PoW算法之前反復進行51%攻擊)約為100億美元,或市值的1%。一次性51%攻擊以太坊的成本應該是這個水平的多少倍?
以太坊研究人員的內部調查
如果我們只關注不依賴延遲的51%攻擊,100萬ETH的攻擊成本意味着超級委員會規模為200 萬ETH(約65,536個驗證者),如果再考慮涉及惡意驗證者和網絡操縱的復雜組合的34%的攻擊,超級委員會規模為300萬ETH(約97,152 個驗證者)。但是,如果我們希望以太坊鏈負載保持與現在相同(每個slot約9,000或總計約288,000 ETH),這將對應於96,000到144,000 ETH的攻擊成本。這兩個數字之間仍然存在很大差異。
因此,除非以太坊社區可以確信攻擊以太坊的較低成本是可以接受的(請記住:攻擊者仍然需要控制超過50%的質押ETH,這只是他們將損失的數量),僅依靠這條路徑似乎很難。
想法 2:努力讓盡可能多的證明者發揮作用
假設我們確實希望有一個鏈,每個slot有大量驗證者參與(例如,131,072個驗證者以獲得保守的約400萬ETH)。那上面的性能數字會是什么樣子?
事實證明,每個slot有大量驗證者證明的鏈上成本並沒有看起來那么令人望而卻步:
存儲驗證者記錄所需的狀態空間將與今天完全相同(每個驗證者約150 字節)。
驗證籤名需要將131,072個公鑰的事實上的隨機子集相加。每個橢圓曲线加法可以在 ~1微秒內完成,因此這可以在~130毫秒內完成。這將需要每個插槽執行兩次(如果一個區塊包含冗余證明,則可能需要更多次)。
如果我們假設在slot N 中活躍的驗證者通常在slot N+1中保持活躍,則可以進一步優化鏈上添加成本;這意味着對於每個插槽,我們只需要計算新舊聚合pubkey之間的增量,在良好的條件下,它可能包含幾千個甚至幾百個驗證者公鑰。即使在最壞的情況下,至少2倍優化(因此,約65毫秒)應該始終是可能的。剩下的最大問題是籤名聚合。有131,072個驗證者制作和發送籤名,這些需要快速組合成一個大型聚合籤名。
目前聚合是在p2p子網中完成的。每個大小為256的委員會都在其自己的子網中聚合了籤名。有16個隨機選擇的優先聚合器可以進行聚合並將它們提交到主子網。然後,提議者從每個委員會中獲取最佳聚合,並將它們聚合在一起,形成單一的總合並聚合。
這給每個委員小組帶來了負擔,驗證者需要單獨驗證籤名(每個籤名一對),特別是在攻擊者用無效籤名淹沒網絡的情況下,以及在全局子網中,如果有n個小組委員,提議者必須驗證16 * n籤名。
聚合很可能成為未來兩年顯著優化的目標。目前,最大的實際瓶頸是每個子網的負載,特別是對於需要在多個子網中的節點。
最有希望能夠顯著改進的兩條簡單途徑是:
1、在不增加每個子網的負載的情況下,增加子網的數量以允許更多的總證明。主子網中的負載會增加,但這將通過dank-sharding得到補償,它通過允許插槽中的所有驗證者對相同數據進行籤名來提高效率,從而更容易地對這些籤名進行批量驗證。
2、更改網絡規則,以便即使具有許多驗證者的節點也只需要參與一個子網,從而為增加每個子網的負載和子網數留出空間。如果驗證者是其中的聚合器,則驗證者僅需要嚴格訂閱子網;僅僅發布到子網的驗證者只需要找到訂閱該子網的誠實對等方,而無需自己訂閱它。
更專業的聚合器
支持更多驗證者的一種可能更激進的策略是將籤名聚合轉變為更專業的角色(類似於PBS 中的區塊構建者),我們期望專業參與者在每個子網(甚至所有子網)中持續存在並執行收集籤名的好工作。這些參與者可以得到報酬,也可以是志愿者角色(因為對於已經質押許多驗證者的用戶而言,額外成本非常低)。
一個簡單的協議是允許驗證者籤署一條ProposedAggregate消息,其中包含 (i) 聚合籤名,(ii) 參與人的位域(假設有131,072 個驗證者,消息大小只有16 kB)和 (iii)由聚合器對這兩個對象籤名。
提議者將偵聽ProposedAggregate消息,並驗證參與人數最多的籤名。如果它是有效的,他們包含它。如果籤名無效,提議者將失去最多約130毫秒的驗證時間,他們將繼續驗證參與度第二高的聚合(如果需要,第三高等),以及所有ProposedAggregate消息都無效的聚合器將被“罰沒(slashing) ”。
怎么做到?
轉向單槽最終確認是一個多年的路线圖。即使很快开始進行大量的开發工作,這也將是後來添加到以太坊的重大改進之一,遠在完全推出權益證明、分片和Verkle樹之後。一般來說,實現路徑大致如下:
1、加緊優化證明聚合的工作。無論如何,這是一個重要的問題,因為預計驗證者數量會增加。無論我們為其他任何步驟做什么,我們都需要對這個問題進行更專注的研究和开發工作。
2、同意一般參數:我們的目標是什么規模的超級委員會(或者超級委員會是所有活躍驗證者的集合,我們實施一些不同的機制來控制可以有多少活躍驗證者)?我們對什么水平的开銷感到滿意,我們將使用哪些技術來減少开銷?
3、研究、達成一致並指定一個理想的共識和分叉選擇機制以實現單槽最終確認性。這將結合 BFT共識機制(Casper FFG或更傳統的東西)和分叉選擇規則,其中分叉選擇規則僅適用於≥1/3驗證者離线的情況。
4、同意並按實施路徑執行。這可能是多步驟的,其中一步引入超級委員會機制,然後下一步添加全新的共識和聚合機制。
最終的好處將非常顯著,並且該技術可以隨着時間的推移而改進,以實現此處未描述的其他好處(例如,使用增加的最大驗證者數量來減少最小存款數額)。因此,值得盡快开始對本文中描述的技術挑战進行更深入、更專注的研究和开發。
金色財經 > 區塊鏈 > 金色硬核 | V神:通往單槽最終確認的路徑
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
AI「生娃」?一文讀懂自主AI繁殖與進化的實驗平臺Spore.fun
原文標題:Love Death Robots 編者按: 本文主要介紹了 Spore.fun,一個實...
融資4300萬美元的Sahara AI,能否構建真正的“AI Chain”?
@OdailyChina @wenser 2010 屬於加密貨幣的曲折而又壯闊的 2024 年即將...
LBank Research:數據分析Cardano快速增長背後的驅動力
前言 自 2017 年啓動以來,Cardano(ADA)已成長為一個旨在推動區塊鏈技術極限的 Po...
金色財經 Maxwell
文章數量
186粉絲數
0