本文將主要聚焦在目前LSDFi協定與流動性池存在的節點運作者的中心化風險以及不必要的共識負擔兩方面難題。本文源自於以太坊共同創辦人 Vitalik Buterin 於以太坊基金會的部落格文章《Protocol and staking pool changes that could improve decentralization and reduce consensus overhead》,由動區專欄chaincatcher整理、編譯與撰稿。
(前情提要:Vitalik(V神)演講全文:以太坊的過去與現在)
(背景補充:Vitalik新文章:以太坊必須的三個轉型「L2、錢包、隱私」)
特別感謝 Mike Neuder、Justin Drake 和其他人的回饋和審查。另請參閱:Mike Neuder、Dankrad Feist 和 arixon.eth 早前就類似主題發表的文章。
當前以太坊的發展現狀可以說包含了大量雙重質押(two-tiered staking),這裡所說的雙重質押是指有兩類參與者的質押模式。
- 節點運營者 Node Operator :運營節點,並以自己的聲譽活一定數額的自有資本作抵押
- 代理商 Delegator :代理商們質押一定數量的以太坊,沒有最低額度,對抵押品以外的其他參與方式也沒有額外的限制
這種新興的雙重質押是通過大量參與提供流動性質押代幣(LST)的質押池產生的。(Rocket Pool 和 Lido 都是這種模式)。
然而當前的雙重質押存在兩種缺陷:
- 節點運營者的中心化風險 :當前所有質押池中節點運營者的選取機制仍然過度中心化
- 不必要的共識負擔 :以太坊 L1 每個 Epoch 要驗證約 800000 個簽名,這對單個 slot 而言是極大的負荷。此外,由於流動性質押池需要的資金較多,而網路本身並沒有從這種負荷中充分獲益。因此,如果以太坊網路能夠實現合理的分散性與安全性,而不需要每個質押者依照時段簽名,那麼社群就可以採納這類解決方案,從而有效縮減每個時段的簽名數量。
本文將描述解決上述兩個問題的方案,首先假設,大多數資本都掌握在那些不願意以當前形式親自管理質押節點、在每個 slot 上籤署資訊,鎖定存款並再分配給資金被削減者,那麼在這種情況下,這些人還能扮演怎樣的角色,從而依然為網路的去中心化與安全性作出有意義的貢獻呢?
當前的雙重質押是如何運作的?
目前最流行的兩個質押池分別是 Lido 和 RocketPool,就 Lido 而言,參與的兩方分別是:
- 節點運營者: 由 Lido DAO 投票選出,這也就意味著這實際上是由 LDO 持有者選出,當有人將 ETH 存入 Lido 智慧合約系統時,就會建立 stETH,節點操作員可將其投入質押池(但由於提現憑證與智慧合約地址繫結,運營者不能隨意提現)
- 代理商: 當有人將 ETH 存在 Lido 智慧合約系統時,會產生 stETH,節點運營者可以將其作為質押(但由於提現憑證與智慧合約地址繫結,運營者不能隨意提現)
對於 Rocket Pool 而言,則分別是:
- 節點運營者: 任何人都可以成為節點操作員,只需提交 8 個 ETH 和一定數量的 RPL 代幣。
- 代理商: 當有人將 ETH 存入 Rocket Pool 智慧合約系統時,就會產生 rETH,節點操作員可以將其作為質押(同樣由於提現憑證與智慧合約地址繫結,運營者不能隨意提現)。
代理商角色
在這些系統中(或由未來潛在的協議變更而啟用的新系統中),需要提出的一個關鍵問題是:從協議的角度來看,設立代理的意義何在?
為了理解這個問題的深刻意義,我們首先思考,對於帖子中提到的協議變更,即將削減懲罰限制為 2ETH,Rocket Pool 也會將節點運營商的質押金額降至 2ETH,而 Rocket Pool 的市場份額將增加到 100%/(對於質押者和 ETH 持有者而言,隨著 rETH 變得無風險,幾乎所有 ETH 持有者都將成為 rETH 持有者或節點運營者)。
假設 rETH 持有者的回報率為 3%(包括協議內獎勵和優先權費用 + MEV),節點運營商的回報率為 4%。我們還假設 ETH 的總供應量為 1 億個。
計算結果如下。為了避免複利計算,我們將以日為單位計算收益:
現在,假設 Rocket Pool 不存在,則每個質押者最低存款額降至 2 ETH,流動性總量上限為 625 萬 ETH,同時節點運營商回報率降至 1%。再來計算:
從攻擊成本的角度來考慮這兩種情況。在第一種情況下,攻擊者不會註冊成為代理商,因為代理商本質上並沒有任何提款的權利,所以沒有意義。因此,他們會把所有的 ETH 都用來質押併成為節點運營商。要達到質押總量的 1/3,他們需要投入 208 萬個以太坊(公平地說,這仍然是一個相當大的數位。在第二種情況下,攻擊者只需投入資金,要達到質押池總量的 1/3,他們仍然需要投入 208 萬個以太坊。
從質押經濟學和攻擊成本的角度來看,兩種情況的最終結果完全相同。節點運營商持有的 ETH 總供應量份額每天增加 0.00256%,非節點運營商持有的 ETH 總供應量份額每天減少 0.00017%。攻擊成本為 208 萬 ETH。因此,在這個模型中,代理商似乎成了一臺毫無意義的 Rube Goldberg 機器,理性的社群甚至傾向於去掉中間人,大幅減少押注獎勵,並將質押的 ETH 總量限制在 625 萬個。
當然,本文並不主張將質押獎勵降低 4 倍,同時將質押總量上限定死在 625 萬。相反,本文的觀點是一個運作良好的質押系統理應具備一個關鍵屬性,即代理商應當在整個系統中承擔重要的責任。此外,如果代理商在很大程度上受到社群壓力和利他主義的激勵而採取正確的行動,那也沒有關係;畢竟,這才是今天激勵人們推行去中心化、高安全性的質押解決方案的主要力量。
代理商的職責所在
如果代理商可以在質押系統中發揮有意義的作用,那麼這種作用可能是什麼?
我認為有兩類答案:
- 代理商選擇: 代理商可以選擇將自己的利害關係委託給哪些節點運營商。節點運營商在共識機制中的 “權重” 與委託給他們的總質押成正比。目前,代理商選擇機制仍然有限,即 rETH 或 stETH 持有者可以撤回其 ETH 並切換到不同的池,但代理選擇的實際可用性可以大大提高。
- 共識機制參與: 委託人可以選擇在共識機制中扮演一定的角色,責任比全額認購 「更輕」,也不會有很長的退出期和削減風險,但仍能起到制衡節點運營商的作用。
增強代理選擇權
有三種增強代表選擇權力的方式:
- 在池中改進投票工具
- 增加池之間的競爭
- 將代表權固定化
目前,在池中進行投票實際上並不實際:在 Rocket Pool 中,任何人都可以成為節點操作員,在 Lido 中,投票由 LDO 持有者決定,而不是 ETH 持有者。Lido 提出了一項關於 LDO + stETH 雙重治理的提案,他們可以啟用一個保護機制,阻止新的投票,從而阻止節點操作員被新增或移除,這某種程度上讓 stETH 持有者有發言權。儘管如此,這種權力還是有限的,可以更強大。
跨池競爭今天已經存在,但相對較弱。主要挑戰在於較小的質押池的質押代幣具有較低的流動性,較難獲得信任,並且較少得到應用程式的支援。
我們可以通過將懲罰金額限制在較小的數量,例如 2 或 4 個 ETH,來改善前兩個問題。然後,剩餘的 ETH 可以安全地存款和立即提取,從而讓雙向兌換對於較小的質押池依然成立。我們可以通過建立一個總髮行合約來改進第三個問題,即用於管理 LST(類似於 ERC-4337 和 ERC-6900 用於錢包的合約),以便我們可以保證通過該合約發行的任何質押代幣都是安全的。
目前,在協議中尚未存在固化的代表權力,但這類情形對未來似乎也有存在的可能。它將涉及與上述想法類似的邏輯,但在協議級別實施。有關固化事物的優缺點,請 參閱這篇文章 。
這些想法都是對現狀的改進,但它們能夠提供的優勢都是有限的。代幣投票治理存在問題,最終任何形式的非激勵代理選擇都只是一種代幣投票的形式;這一直是我對委託權益證明的主要不滿之處。因此,考慮實現更強大的共識參與方式也是有價值的。
共識參與
即使不考慮流動性質押的當前問題,對於當前的獨立質押方法也存在限制。假設使用 single-slot finality,理想狀態下每個 slot 可能處理約 100,000 到 1,000,000 個 BLS 簽名。即使我們使用遞迴 SNARKs 來聚合簽名,為了簽名的可追蹤性,需要賦予每個簽名一個參與者的位欄位。如果以太坊成為一個全球規模的網路,那麼完全分散化儲存位欄位也不足夠:每個 slot 中的 16 MB 只能支援大約 6400 萬名質押者。
從這個角度來看,將質押分為更高複雜度的可減持層和較低複雜度的層是有價值的,高複雜度的層每個 slot 都會生效,但可能只有 10,000 名參與者,而較低複雜度的層只在偶爾被呼叫以參與。較低複雜度的層可以完全免於減持,或者可以隨機賦予參與者機會,在幾個 slot 記憶體款併成為減持物件。
實際上,這可以通過提高驗證者餘額上限,隨後增加餘額閾值(例如,2048 ETH)來確定哪些現有驗證者進入更高複雜度或較低複雜度層。
以下是關於這些小額質押角色如何運作的一些建議:
- 每個 slot,會隨機選擇 10000 名小額質押者,他們可以簽署他們認為是能夠代表該 slot 的內容。使用小額質押者作為輸入執行 LMD GHOST 分叉選擇規則。如果由小額質押者驅動的分叉選擇和節點運營者驅動的分叉選擇存在一定的分歧,使用者的客戶端將不接受任何區塊作為最終確認,並顯示錯誤。這迫使社群介入解決情況。
- 代理可以傳送交易,向網路宣告他們線上並願意在接下來的一個小時內擔任小額質押者。節點發送的訊息(區塊或證明)計算,需要節點和隨機選擇的一個代理都簽署節點的確認資訊。
- 代理可以傳送交易,向網路宣告他們線上並願意在接下來的一個小時內擔任小額質押者。每個時期,會選擇 10 名隨機的代理作為包含列表提供者 (inclusion list provider),並選擇 10000 名更多的代理作為選民。這些在 k-slot 之前被選擇,並且給予一個 k slot 視窗來在鏈上釋出確認他們線上的訊息。每個確認的選擇的包含列表提供者都可以釋出一個包含列表,除非對於每個包含列表,要麼包含該包含列表中的交易,要麼包含一般 1 被選擇的選民的投票,顯示該包含列表不可用,否則區塊將被視為無效。
這些小型質押節點的共同點是,它們不需要積極參與每個 slot,甚至只需要輕節點就可以完成所有的工作。因此,節點部署只需驗證共識層即可,節點運營商可以通過應用程式或瀏覽器外掛來實現,這些應用程式或瀏覽器外掛大多是被動的,對計算開銷、硬體要求或技術訣竅的要求都很低,甚至不需要像 ZK-EVM 這樣的先進技術。
這些 「小角色」 也都有一個共同目標:防止 51% 的多數節點運營商進行交易審查。第一種和第二種還能防止多數人蔘與終局性還原。第三種則更直接地關注審查,但它更容易受到多數節點運營商選擇的影響。
這些想法是從實施在協議中的雙重質押解決方案的角度編寫的,但它們也可以作為質押池的功能來實施。以下是一些具體的實施想法:
- 協議角度來講,每個驗證者都能設定兩個質押金鑰:一個持續質押金鑰 P,以及繫結的可供呼叫的以太坊地址,並輸出一個快速質押金鑰 Q。節點對分叉選擇的簽署資訊追蹤以 P 表示,簽署的資訊以 Q 表示,如果 PQ 儲存結果不一致,則不接受任何區塊的最終確定,由流動性池負責隨機選取代表
- 協議大體上可以保持不變,但該驗證器在該時段的公開金鑰將被設定為 P+Q。請注意,對於減持而言,兩個可減持的訊息可能具有不同的 Q 金鑰,但它們將具有相同的 P 金鑰;減持設計需要處理這種情況。
- Q 金鑰只能在協議中用於對區塊中的包含列表進行簽名和驗證。在這種情況下,Q 可以是一個智慧合約,而不是一個單一的金鑰,因此,質押池可以使用它來實現更復雜的投票邏輯,接受來自隨機選擇的提供者的包含列表或足夠多的表示包含列表不可用的投票。
結論
如果正確實施,對權益證明設計的微調可以一舉解決兩個問題:
- 為那些今天沒有資源或能力進行獨立權益證明的人提供了一個機會,使他們有機會參與權益證明,從而保留更多的權力在他們手中:包括(i)選擇支援哪些節點的權力和(ii)以某種比完全運營權益證明節點更輕便但仍有意義的方式積極參與共識。並非所有參與者都會選擇其中一個或兩個選項,但任何參與者如果選擇了其中一個或兩個選項,都會相對於現狀有重大改進。
- 減少以太坊共識層在每個 slot 中需要處理的簽名數量,即使在單 slot 最終性制度下,也將其減少到約 10,000 個之類的較小數量。這也將有助於去中心化,使每個人都更容易執行驗證節點。
對於這些解決方案,可以在不同的抽象層次上找到解決問題的方法:在權益證明協議內授予使用者的許可權、在權益證明協議之間的使用者選擇以及在協議中的設立。應該謹慎考慮這種選擇,並且通常最好選擇最小可行設立,以最大程度地減少協議的複雜性和對協議經濟學的更改程度,同時仍然實現所期望的目標。
📍相關報導📍
V神喊話比特幣「該學以太坊Layer2擴容」,不然僅停留在支付階段