Post-Merge時代:以太坊新共識的破局重生
BlockBeats 律動財經 2022-09-27 17:01
以太坊 經歷了歷史性的升級,發展進入了新的階段。合併之後,以太坊將繼續沿着擴容和去中心化的方向前進。The Merge 僅僅是 PoS 時代的第一步,以太坊依然面臨着巨大的挑戰,驗證者群體中心化,擴容,Lazy Validator Problem 等問題依然制約着應用的爆發和以太坊的安全擴展,本文將從 The Merge 開始,逐步分析 POS 採用的共識算法,重點探索使用 DVT 技術來解決驗證者單點風險的問題,和從業者一起分析以太坊的問題和未來的發展機會,建議具備一定以太坊基礎的讀者閱讀此文章。
一:The Merge
1.1 背景
The Merge 是以太坊有史以來最大的技術升級,在 2022 年 9 月 15 日實現了 Execution Layer 和 Consensus Layer 的合併,其最大的變化是將以太坊的 PoW 共識切換為 PoS 共識。
除此之外,合併以後以太坊的能源消耗降低了將近 99.95%,據 Vitalik Buterin 推文,以太坊合併將使全球用電量減少 0.2%。
1.2 合併帶來的改變
Token 增發: PoW 時代的 ETH Token 增發停止,新的 ETH 僅通過 PoS 共識出塊產生,以太坊的通膨率降低,當 base fee 超過 15gwei 的時候,以太坊甚至進入通縮。
質押收益: gas 費用和 MEV 的收入被分配給 Validator,驗證者的質押幣本位收益達到 5-7%。
Withdraw: 合併以後質押的 ETH 並不能立即 Withdraw,需要在上海升級以後才會放開 Withdraw 的限制,並且在提款的時候,用戶並不能直接提取,為了避免大規模的提款,對於單次提款的數量和時間都有一定的限制,所以開放提款以後,並不會出現大量提款拋售的情況。具體的資訊可以參考 EIP-4895:Beacon chain push withdrawals as operations
數據結構的改變: Consensus Block 裡面會包含 Execution Block 的 Hash 值,同時 Execution Block 裡面和 PoW 相關的參數不再生效。mixHash 字段會記錄以太坊原生的 RANDAO 隨機數,供 EVM 調用,以太坊的開發者可以直接使用這個隨機數到智能合約開發中。
共識替換: PoW 共識被 PoS 替換,原有的礦工職責被驗證者替代,同時存在兩條鏈,需要同時運行兩個客戶端節點,Execution Layer Client(EL)和 Consensus Layer Client(CL)。
切換為 PoS 共識以後,以太坊的算法由 Ethash 轉換為了 Casper FFG(Gasper),相較之前的算法,Gasper 更加節能,不需要再通過專門的礦機計算難度值,而是通過隨機的方式來出塊,讓我們往下繼續探索以太坊的共識算法和出塊方式!
二:Gasper
目前信標鏈上面質押了 13,830,378 個 ETH,活躍驗證者的數目為 432,203 個(截至 2022 年 9 月 23 日),根據 PBFT 的特點,beacon chain 的驗證者數目很多,網路通信數據量大,簡單的 PBFT 不再適用於以太坊網路,於是以太坊在網路結構上面採用 PBFT 的思想對網路架構進行了改進和設計,使用了 Gasper 算法。
Gasper 為 beacon chain 協議中的終局性工具(finality gadget),用於確定哪些區塊應被參與者認定為已經確定的、不可更改的,同時在分叉的時候用於確定哪個分叉鏈是主鏈。Gasper 的終局性一般化了《Casper Friendly Finality Gadget(casper FFG)》論文中的概念。
2.1 概念
Slot(時隙): 合併以後一個 Slot 就是一個區塊,有一個 committee 負責在 12S 的時間內生成該 Slot。
Epoch: 每 32 個 Slot 組成一個 Epoch,一個 Epoch 的時間為 384S,即 6.4Min。
Committee(驗證者委員會): 每個驗證者委員會最低會分配 128 個 Validator,驗證者會對自己負責的 Slot 進行 Attestation 操作,並且在委員會中有一個 Validator 會被隨機選為 Proposer,進行出塊。
Attestation(投票簽名): 每一個 Slot 對應的 committee 裡面的 Validator 都需要對上一個 Epoch 進行投票簽名,確保自己認可了上一個 Epoch 裡面的交易。
Validator(驗證者): 由於以太坊 The Merge 以後共識算法切換為了 POS,原來的礦工被 Validator 取代,Validator 通過質押 32ETH 資產成為 Validator,負責參與各個 Epoch 內 slot 的出塊和簽名工作。
Proposer(提議者): Proposer 來自 committee 中的 Validator,通過 RANDAO 產生的隨機數選出,被選用於 Slot 區塊的打包。
Beacon chain(信標鏈): 用於替代 PoW 共識的 PoS 區塊鏈,beacon chain node 被用來掛載 Data Blobs 的交易類型,為 Rollup 提供更多的儲存空間。
2.2 流程
Epoch 開始的時候,通過 RANDAO 為每一個 Slot(時隙)分配一個 Committee(驗證者委員會)對上一個 Epoch 進行 Attestation(簽名投票)。
為當前 Epoch 的 32 個 Slot 分配多個 Aggregator 將 committee 對上一個 Epoch 的 Attestation 聚合以後記錄進 Slot 區塊里。
RANDAO 通過生成隨機數確定 Proposer 負責出塊。
在當前 Epoch,每一個 Slot 在出塊的時候,committee 都對上一個 Epoch 的檢查點進行 Attestation,連着兩個檢查點 Attestation 以後,上一個檢查點才 Finalised,直到 32 個 Slot 都依次對檢查點進行了 Attestation,本輪 Epoch 結束。Post-Epoch 的第一個 Slot 開始的時候,Pre-Epoch 達到了終局性的共識,即 Post-Epoch 經歷了 Pre-Epoch 和當前 Epoch,一共兩輪 Epoch(因為兩個 Attestation 的檢查點之外,還有衝突的檢查點的話,必然有 1/3 的驗證人作惡了,比如 32 64 96 三個區塊高度,可能 64 號高度沒有達成檢查點,到了 96 號才有檢查點,這時候 32 號高度才是 Finalised),時間上為 12.8Min,交易就在鏈上確定下來了,即所謂的終局性。
2.3 特性
RANDAO 賦予了鏈上的隨機數。RANDAO 生成的隨機數將會放進 Execution Layer Block,智能合約能夠直接使用該隨機數,在擁有鏈上的原生隨機數以後,DeFi 可能會有新的應用誕生,比如博彩類的 DeFi 應用可以直接信任和使用 RANDAO 產生的隨機數。
2.4 Latest Message Driven GHOST(LMD-GHOST,由最新消息驅動的 GHOST)
在以太坊新的 POS 共識機制中使用 LMD-GHOST 作為分叉選擇規則,當發生分叉的時候,GHOST 會選擇獲得更多消息支持的子樹。其背後的理念是在計算鏈頭時,只考慮每個驗證者最近的投票,而不是過去產生的任何投票,以此降低運行 GHOST 所需的計算量。
想要深入學習的可以查閱:https://eprint.iacr.org/2013/881.pdf
2.5 隨之而來的問題
通信與驗證成本增加: 是不是驗證者越多越好呢?其實不然,雖然驗證者的數量增多有利於數據可用性採樣(DAS)和去中心化,但是驗證者增多意味著單個 Slot 的驗證者也會變多,在收集各個驗證者簽名的時候就會增加 Aggregator 和驗證者之間的通信負擔,除此之外,聚合簽名的驗證成本也會增大,這無形中會增加驗證者節點的負擔。
長程攻擊: 長程攻擊是指某個驗證者在 Withdraw 質押在信標鏈上的 ETH 後,他可以利用舊私鑰在某個曾經簽署過的區塊進行惡意分叉,因為此時其在鏈上已無任何質押資產,然後迅速產生空塊至目前的區塊高度,對網路進行攻擊。這也是未來可能出現的攻擊方式。以太坊在設計的時候是對 Pre-Epoch 的 checkpoint(檢查點)進行投票,其設計思路也就是將初始狀態不斷往前推進,避免可能出現的攻擊。
三:以太坊質押挖礦
3.1 S taking
質押門檻: 驗證者為了履行職責參與共識出塊需要質押 32ETH 作為保證金資產。
驗證者的職責: 在協議規定的時間生產區塊和 attestation。
3.1.1 Staking 方式
Solo Staking: solo staking 的方式是由想要自己出資 32 個 ETH 做驗證者的質押人自己在雲服務器上運行驗證者節點,除了選擇在雲服務器上面運行節點,也可以選擇在自己家中擺放服務器設備運行以太坊節點,區別在於雲服務之上運行節點更加穩定,在參與網路共識的時候可以避免和減少因為停電和網路原因造成的怠工懲罰,而在家自己搭建節點的優勢在於硬體和網路服務的成本低於雲服務器,這裡質押人可以自行選擇採用哪種託管方案。
Staking Pool: 由於 32 個 ETH 對於普通人來說是一筆不菲的資金,尋常小資金的質押者想要參與網路共識卻沒辦法自己運行節點,於是出現了質押池解決方案,其中以許可型的半去中心化質押解決方案 Lido 為主要項目,其吸收了較大的資金體量,成為賽道內的頭部解決方案,其次還有去中心化程度更高一些的解決方案如 Rocket Pool 和 Swell 等,在現有的質押池解決方案之上,還產生了 Unamano 這樣的聚合解決方案來幫助和發展以太坊 Staking 領域。
在節點營運方面,Lido 選擇指定部分專業的營運商來運行網路節點,這也是其相對中心化的一點,營運商掌握簽名私鑰,用戶的資產部分信賴 Lido 和營運商,至於提款私鑰,2021 年 7 月之前,提款地址是一個 6/11 的多簽地址,多簽私鑰由行業內 OG 保管,2021 年 7 月之後,提款地址指向一個可升級的合約地址,該合約由 DAO 進行管理。Rocket Pool 在節點方面選擇更加去中心化,任何人只需要提供 16 個 ETH 和相應的軟硬體設備就可以作為營運商運行節點,雖然降低了營運商門檻,但是 Rocket Pool 引入$RPL 質押來降低營運商作惡的風險。
Staking Pool 的方案使得普通的用戶可以將小額的 ETH 存入合約來獲得以太坊的挖礦獎勵,同時返還生息 Token 如 stETH 和 rETH 來釋放質押資產的流動性,進一步增強了以太坊的去中心化程度和資金使用效率,是社區最為看好的方向。
CEX,中心化託管機構: 除了 Solo Staking 和 Staking Pool, 中心化的交易平台和一眾資管機構都是以太坊質押的主要參與者,例如 Coinbase 和幣安等也都推出了自己的質押服務,通過吸收小額的 ETH 來參與低風險的以太坊質押挖礦。三種方案在去中心化程度和安全性方面都各有優劣,這取決於質押者的信任對象,但是無可置疑的是,三種方案都捕獲到了相應的資金和用戶,共同維護着以太坊的安全和去中心化。
3.1.2 風險與隱患
是否合併以後真的就萬事大吉?我覺得未必,從下圖的數據我們可以窺探一下解除信標鏈提款限制以後的局面。
目前以太坊的質押量主要集中在 Lido,Coinbase 和 Solo Staking,合併以後新的以太坊質押則大量流向了 Lido 和 Coinbase 這類相對中心化的機構和協議里,在解除提款限制以後,我覺得原來質押的以太坊會被重新分配到 Lido 和 Coinbase 里,隨著時間的流逝,Lido 和 Coinbase 將會掌握越來越多的以太坊驗證者和質押量,最終對以太坊的去中心化帶來嚴重的威脅,當他們控制住以太坊以後,對於想要重新打破這種局面的交易,將會被 Lido 或 Coinbase 這樣的大礦池所拒絕,因為你想質押 ETH 到以太坊的這筆交易能否上鏈也是他們說了算,並且新產生的 ETH 也將會往 ETH 越多的人手裡集中,因為他們在質押的時候就掌握了大量的 ETH,這無疑對以太坊的去中心化會是新的挑戰,我們可以期待社區和核心開發者一起來解決這個問題。
3.1.3 獎勵類型
Attestation 獎勵: 每一個 slot 的 committee 都要對前一個 Epoch 歷史區塊檢查點進行 Attestation,成功 Attestation 以後會獲得 Attestation 獎勵,作為 Validator 的收入之一。(機率大,獎勵低)
出塊獎勵: 每一個 Slot 會有一個 Validator 作為 proposer 來打包區塊,被選為 proposer 的 Validator 可以獲得出塊獎勵。(機率低,獎勵多)
MEV(礦工可提取價值)收入: MEV 收入除了 gas 費用的收入以外,還有三明治攻擊等方式的收入,據 EigenPhi 的數據,過去 7 天三明治攻擊的 Volume 都在 100M 以上,最高 Volume 接近 400M,MEV 的收入成為驗證者的重要收入組成之一。
3.1.4 懲罰類型
怠工懲罰: 未能按照共識預期產生出塊:未在預期時間對區塊進行 Attestation。
惡意行為導致 slash(罰沒): 在單個 Slot 內生產兩個區塊或者進行兩次 Attestation;違反 Casper FFG 共識規則提議錯誤區塊。
3.2 私鑰類型
簽名私鑰: 簽名私鑰用於驗證者在履行職責時的消息簽署,包括 attesting 和 proposing blocks,每 6.4min,即每個 Epoch,該密鑰將被使用一次。
提款私鑰: 提取質押資產和出塊獎勵時使用的密鑰,需要離線儲存,在上海分叉以後,可用提款私鑰提取質押的 ETH 和獎勵。
3.3 ETH2 質押風險
私鑰被盜: ETH2 的簽名/提款私鑰被盜。
單點故障/驗證者的有效性: 目前,驗證人以單一的機器或節點存在並履行其職責。協議嚴格的規則禁止常見的冗餘形式,如在多個節點上運行同一個驗證人,這樣做可能會導致驗證人被「懲罰」(slashed)。如果使用質押服務,密鑰位於一個雲服務器上(如 AWS)。如果任何組件出了問題,驗證人就會停止驗證,從而受到懲罰。
四:分布式驗證者技術(DVT)
在質押層面,雖然我們有去中心化的質押解決方案來降低質押門檻和提高質押服務的去中心化,但是在 Validator 層面,依然存在著單點風險,現在單個驗證者運行着網路的多個客戶端,如果因為網路原因或者是斷電等物理因素會造成怠工懲罰,slot 也無法收集到有效的簽名,我們無法通過冗餘的方式在多個地方運行同一個驗證者節點,因為這會造成簽名的混亂,會被認為是對網路的攻擊,但是我們可以將簽名私鑰拆分,通過 DVT 技術來降低單點故障的風險,在實施升級的時候,也為節點提供了升級空間,並不會因為網路升級導致節點的大面積掉線,具體分析,請讓我們往下探究!
4.1 概念
operator: 運行一個(或多個)節點的個人或實體。
operator node: 指的是一個硬體和軟體,執行以太坊驗證者的任務。這些任務可以由節點單獨完成,也可以與其他使用 DVT 工具的節點聯合完成。
分布式驗證者技術: 分布式驗證者技術是一種將單個以太坊驗證者的工作分配給一組分散節點的技術。相比驗證者客戶端在單台機器上運行,分布式驗證者技術能夠提供更加安全和去中心化的服務。
4.2 分布式驗證者節點需要運行
以太坊執行層客戶端
以太坊共識層客戶端
以太坊分布式驗證者客戶端
以太坊驗證者客戶端
4.3 DV 如何防範 ETH2 質押風險
私鑰被盜
使用門限簽名技術(m-of-n)可以實現防止私鑰被盜的風險
一個完整的驗證者密鑰被拆分為多個小的密鑰
拆分後的小份密鑰通過聚合產生完整密鑰的簽名
節點宕機
Crash Faults:
原因:因為停電,斷網,硬體故障,軟體錯誤導致的崩潰;
防範措施:通過在多個地方運行同一個節點的冗餘備份方案來防範節點掉線;
Byzantine Faults:
原因:由軟體 bugs,網路攻擊導致;
防範措施:多個參與節點通過共識決定,單個節點無法做出決定。
4.4 總體架構
分布式驗證者使用私鑰分片遠程簽署消息
在分布式驗證者客戶端內通過聚合簽名技術對分布式驗證者的簽名進行聚合,達到閾值以後,對區塊進行簽名。
4.5 實現 DVT 技術的兩種路徑
An approach to DVT using SSS:該方案由質押 32 個 ETH 的實體創建簽名私鑰(sk,pk)和提款私鑰,並運行一個 Secret Sharing Scheme 程序在委員會節點中安全的分發 sk 密鑰的市佔率。
An approach to DVT using a DKG protocol:在 DKG 的方案中,沒有一個實體來為驗證者分發籤名私鑰的市佔率,而是一群驗證者委員會節點一起運行 DKG 協議。因此,一個秘鑰和公鑰(sk,pk),以及 sk 的 n 個市佔率 sk_1,...,sk_n 被創建,i=1,...n 的第 i 個節點擁有市佔率 sk_i。
4.6 Threshold Signature Schemes (TSS)(閾值簽名方案)
當驗證者對區塊達成一致需要簽名時,採用 BLS 閾值簽名方案來實現簽名。其允許 N 個驗證者共同簽名數據,並且在 t+1(0
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 從零開始學合約系列講座熱烈報名中
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇