BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Vitalik:為何要嘗試在單個Slot實現最終敲定?

Unitimes
特邀专栏作者
2022-01-27 11:00
本文約5772字,閱讀全文需要約9分鐘
研究單個Slot 實現最終確認的路徑。
AI總結
展開
研究單個Slot 實現最終確認的路徑。

原文作者:Vitallik Buterin

原文作者:Vitallik Buterin

特別感謝Justin Drake、Dankrad Feist、Alex Obadia、Hasu 和其他人對這篇文章不同版本的反饋和評論。

當前,(信標鏈) 以太坊區塊需要64-95 個slot (約15 分鐘) 來實現最終敲定。在去中心化/敲定時間/開銷權衡曲線上,選擇這樣一個中等時長、在任意維度都不差的權衡是合理的:15 分鐘不算太長,與當前的交易所的確認時間相當,且這允許用戶在常規計算機上運行節點,即使有大量質押了32 ETH (而不是早期要求的1500 ETH) 的驗證者也能如此。然而,有很多關於將敲定時間減少到單個slot的很好論據。本文是一個處於研究狀態的帖子,評估了一些用於實現此目的可能策略。

01. 當前的以太坊staking (質押) 如何以及為何運作

當前,大約有285,000 個驗證者,這些賬戶已經存入了32 ETH,因此可以參與以太坊staking (質押)。驗證者數量並不與實際參與質押的用戶(質押者) 數量完全對應:一些富有的質押者可能控制著數百個驗證者。 32 ETH 的最低質押要求限制了可能的驗證者賬戶數量,確保了以太坊鏈仍然擁有計算能力來處理這些賬戶。

每個slot(12 秒) 會有一個新區塊被添加到鏈中。在每個slot 中,還有數千個(由驗證者提交的)證明(attestations),用於對(信標鏈) 鏈頭進行投票。有一個稱為LMD GHOST的分叉選擇規則,該規則會將這些證明作為輸入,來確定鏈的頭部。這種由數千個證明進行的並行投票,使得以太坊要比傳統的最長鏈系統更加強健:除非發生一次主動攻擊(active attack) 或者一個重大的網絡故障,不然即便是單個slot 也幾乎永遠不會被逆轉(恢復)。

這些證明還有第二個目的:它們在一個稱為Casper FFG的大規模共識算法中扮演著選票(votes) 的角色。每個epoch(每32 slots 稱為一個epoch,約6.4 分鐘),所有活躍的驗證者都有機會進行一次證明。兩輪之後,如果一切順利,前一個epoch (以及其中的所有區塊) 將被敲定(finalized)。一旦某個區塊被敲定了,逆轉該區塊將至少需要所有驗證者中的1/3 驗證者數量銷毀它們的存款(質押金):攻擊成本超過了300 萬ETH。

持續地審查驗證者或交易同樣成本高昂,儘管抵抗審查攻擊需要額外的協議幹預。如果51% 的驗證者開始審查(驗證者或交易),受害者和用戶可以協調發起一個少數軟分叉(minority soft fork),他們在彼此的區塊上構建,並忽略該攻擊者。在這個少數軟分叉上,該攻擊者的存款將因為其受到了怠工懲罰(inactivity leak) 而損失數百萬ETH,幾週後,這條鏈將恢復敲定。

02. 為何要嘗試實現在單個Slot 敲定?

  • 嘗試改變現狀並將敲定時間縮短在單個Slot 完成,這裡面有幾個關鍵原因:用戶體驗。

  • 這篇文章這篇文章這篇文章這篇文章

  • 二級標題二級標題

二級標題

不是所有驗證者都參與每一輪Casper FFG 共識,而是只有一個由幾千名驗證者組成的中型超級委員會(a medium-sized super-committee)參與,從而允許每一輪共識都在單個Slot 中發生。相關的技術思想首先在這篇etheresear.ch 帖子etheresear.ch 帖子

中進行了介紹。

  • 該帖子對這個想法進行了更加詳細的介紹,但其核心原則如下:

  • 二級標題

  • 圖片描述

二級標題

二級標題

轉向使用「超級委員會」的次級效益

  • 從全局驗證者轉向超級委員會還有一些刺激效益:運行驗證者節點的計算負載變得更加穩定。

  • 二級標題二級標題

二級標題

超級委員會的規模必須有多大?

就驗證者數量而言,超級委員會的規模應該“大到足以成為一個安全的委員會”。但委員會也必須在其ETH 總量(即委員會中所有驗證者的總質押量)方面足夠大。被罰沒和被怠工懲罰的ETH 數量需要大於從攻擊中實際可以獲得的收益,而且它需要足夠大,以阻止或使強大的攻擊者破產,因為攻擊者有巨大的外部動機來破壞這條鏈。

  • 這個需要多少ETH的問題不可避免是一個直覺問題。你可以問下面這些問題來引導你的直覺:

  • 假設以太坊鏈受到51% 的攻擊,社區需要花幾天時間協調一個鏈下治理事件來恢復,但有X % 的ETH 會被銷毀。這個X 需要多大才能對以太坊生態系統帶來淨效益?

  • 圖片描述

  • 圖片描述

圖片描述

二級標題

二級標題

二級標題

想法2:努力讓盡可能多的證明者(attesters) 發揮作用

假設我們確實想要一條在每個slot 都有大量驗證者參與的區塊鏈(比如,每個slot 有131,072 名驗證者,也即相當於保守的是400 萬ETH)。那麼這個基礎上的性能數字將是怎樣的呢?

  • 事實證明,擁有大量驗證者來證明每個Slot 的鏈上成本並沒有看上去那麼高:

  • 存儲驗證者記錄所需的狀態空間將與今天完全相同(每個驗證者大約150 字節)。

  • 驗證一個簽名將需要將131,072 個公鑰的隨機子集加在一起。每個橢圓曲線的添加可以在大約1 微秒內完成,所以這可以在大約130 毫秒內完成。每個slot 需要執行兩次(如果一個區塊包含冗餘證明,則可能需要執行更多次)。

如果我們假設在slot N 活躍的某個驗證者通常在slot N+1 也保持活躍,那麼鏈上添加成本可以進一步優化;這意味著對於每個slot,我們只需要計算新舊聚合公鑰之間的變量(delta),在良好的條件下,聚合公鑰可能由幾千或者甚至幾百個驗證者公鑰組成。即使在最壞的情況下,也應該總是能夠進行至少2 倍的優化(即~65毫秒)。仍然存在的最大問題是簽名聚合

。單個Slot 中生成和發送簽名的驗證者有131,072 名,這些簽名需要快速地組合成一個大型聚合簽名。

今天,簽名聚合是在p2p 子網中完成的。每個包含了256 名驗證者的委員會都有其自身子網絡的簽名聚合。有16 個隨機選擇的特權聚合器,它們可以進行簽名聚合併將它們提交到主子網(main subnet)。然後,區塊提議者然後從每個委員會中取最佳的簽名聚合,並將它們加在一起,形成一個大的簽名聚合。如下圖所示:

這給每個小組委員會帶來了負載,其中驗證者需要單獨驗證簽名,特別是在發生攻擊,使得網絡充斥著無效簽名的情況下,且在全局子網中,如果有n個委員會,提議者必須驗證16 * n個簽名。

聚合很可能是未來兩年內顯著優化的目標。目前,實際應用中最大的瓶頸是每個子網的負載,特別是對於需要在多個子網中的節點而言。

  1. 通過兩種有前景的簡單方法可以獲得顯著的改進:增加子網數量

  2. 二級標題二級標題

二級標題

更專業的聚合器支持更多驗證者的一種可能的更激進的策略是,將簽名聚合轉變為一個更專門化的角色(類似於PBS (提議者/構建者分離) 方案中的區塊構建者

一級標題

一級標題

一級標題

03. 我們如何實現在單個Slot 敲定?

  1. 轉向單個Slot 確認是一個需要多年時間的路線圖;即使很快就會開始大量的開發工作,它也將是以太坊在完成PoS、分片和Verkle 樹的推出之後,這將是以太坊之後的重大變化之一。總的來說,實現的路徑大致如下:加緊優化證明聚合的工作。

  2. 無論如何,這都是一個重要的問題,因為驗證者的數量預計會增加。我們需要在這個問題上更專注的研究和開發努力。就常規參數達成一致:

  3. 我們的目標是「超級委員會」有多大規模(或者超級委員會的規模是否將是所有活躍驗證者的集合,並且我們實現了某種不同的機制來控制可以有多少活躍驗證者)?我們可以接受什麼樣的開銷水平?我們將使用什麼技術來減少開銷?為了實現單個Slot 敲定,需要對一個理想的共識和分叉選擇機制進行研究、達成共識和明確下來。

  4. 這將結合BFT 共識機制(Casper FFG 或其他更傳統的機制) 和分叉選擇規則,其中分叉選擇規則只在≥1/3 的驗證者離線的情況下才有意義。就實現路徑達成一致並執行。

這可能是需要多步驟實現的,其中一步引入超級委員會機制,然後下一步添加全新的共識和聚合機制。

ETH
Vitalik
歡迎加入Odaily官方社群