原文:《從Staking聊起,4種掌控以太坊網絡的方式》
作者:0xTodd,Ebunker
今天藉著Kraken 暫停Staking 這個新聞,想做一個Staking 的科普&分析:
-本質上,Staking 最重要的就是看2 把私鑰的歸屬權
-由於2 把私鑰的歸屬權不同,又誕生了4 類Staking 方案
我相信有這篇超長thread,你對於Lido,Rocket,Coinbase,Kraken,SSV 以及Ebunker 能有一個更深的理解。
如果把以太坊看作是一家公司的話,負責Staking 的驗證者(Validator)就是員工。它的工作就是驗證交易的合法性,然後打包區塊上鍊(雖然構建區塊這活兒,如今也已經慢慢外包給MEV 服務商了)。
首先,作為驗證者,你需要證明你的員工身份,畢竟不是誰都可以來隨便驗證。交了32ETH 押金後,你需要持證上崗(即:【驗證key】)。
理論上,做Staking 的第一步,就是創建一個驗證key。隨後,你拿著你的驗證key,也就是你的工作證,才能給每一個交易蓋戳。
第二,以太坊貼心地設計出了第二把私鑰,用於接收剛剛提到的押金(32ETH)。
當你去做驗證者時,你會要填一個「提現地址」。它是未來你提取本金和工資的地址,而那個地址的私鑰理論上應當在你的手裡(即:【提現key】)。我打個比方,這是你的工資卡。這樣2 把私鑰:驗證key(工作證)、提現key(工資卡)的用途,我想大家都明白了。
接下來,根據2 把私鑰的不同歸屬,才誕生了四種Staking 解決方案:
-CEX 類
-大池子類(PooledStaking)
-SaaS 類(StakingasaService)
-Solo 類
方案一CEX 類/全託管如果你使用交易所Staking 方案
例如Binance,Coinbase 或者今天剛宣布停止Staking 服務的Kraken。你會發現,你根本沒有創建過【驗證key】,也沒有填過【提現key】,那這種就是標準的「全託管」。
那這兩把鑰匙分別在哪呢?
-驗證key 在Binance Pool 或者Coinbase Pool
-提現key 則在Binance 和CB 的冷錢包
你根本不用上班(參與驗證),工資卡也給了交易所幫你保管。這種方案是最省心的,而且有保底。但是不適用於對去中心化有追求的人,畢竟FUD 三天兩頭有,而且現在看美國甚至不允許你這樣搞。
方案二大池類Staking(PooledStaking)
這就是Lido 和RocketPool 的Staking 方案。你仍然不用創建兩把Keys,由Lido 和Rocket 管理,那它和交易所的區別在哪呢?
先聊聊驗證key:
-
交易所:顯然,它旗下就1 家運營,即它自己。
-
Lido:Lido1.0 旗下有29 家專業運營商,Lido 把ETH 都委由他們管理,所以驗證key 是相對分散的,29 家運營商各拿一部分。等於說Lido 是個集團,旗下有強力打工天團29 人,你自己不用打工,讓打工天團專業人士幫你上班。所以,運營商抽5% 分成,Lido 再抽5%。
-
RocketPool:RocketPool 旗下可以有無數家運營商,任何人帶著機器/雲服務器+16 個ETH 都可以來當運營商。等於說RocketPool 是眾包平台,旗下一堆美團騎手,自帶電動車(機器/雲服務器)和機房,幫你跑節點。
理所當然,他們也要抽成。
再聊聊提現key:
這裡有必要再補充一個原理:Staking 提現到底是個什麼流程?
我之前的帖子又簡單介紹過上海昇級以及提現,傳送門https://twitter.com/0x_Todd/status/1619950421124206593
眾所周知,以太坊是兩條鏈: 以太坊1.0(執行層)Beacon ain(共識層)。當你去Stake 時,第一步是把ETH 匯款到以太坊1.0 Beacon 金庫地址(https://etherscan.io/address/0x00000000219ab540356cbb839cbe05303d7705fa…)鎖倉,然後Beacon Chain 給你在共識層生成對應的eth。
注意這些ETH 是鎖住,而非在1.0 上銷毀,或者是跨鏈到beaconchain 上,它只是被鎖住-映射而已。
而上海昇級後,提現將是一種新的交易類型。當你提現時:
1. 你的節點通知Beacon Chain,發出提現信號
2. 排隊
3. 排隊到你後,Beacon Chain 通知以太坊1.0 的金庫
4. 以太坊1.0 的金庫地址給你指定的地址匯款,比如0xTodd.eth
所以,所謂我的【提現key】,本質上是0xTodd.eth 這個地址的私鑰。
而Lido& Rocket 的提現key,是幫你又多包了3 層:
1. 你通知Lido\RPL,我要提現
2.Lido\RPL 通知運營商,某某節點要提現
3. 運營商通知BeaconChain,某某節點要提現
4. 排隊
5.BeaconChain 通知以太坊1.0 金庫
6. 以太坊1.0 的金庫地址給Lido\RPL 提現金庫匯款
7. 你銷毀了stETH\rETH,Lido\RPL 智能合約給你的地址匯款。
PS:如果換成交易所,第7 步就是CZ\阿姆斯特朗給你的Binance\Coinbase 中心賬戶直接加餘額。
對於大池子類方案,第1、4、5、6、7 步都無懈可擊,是純粹鏈上操作。而薄弱環節在第2、3 步。理論上,大池子類方案可以拒絕你的提現,比如你因為使用龍捲風被美國OAFC 制裁了,那麼第2、3 步不給你傳信就能做到。
我為什麼叫它「大池子」方案,因為它所有節點的提現地址,填的都是同一個地址,即Lido\RPL 的提現金庫智能合約地址。
當然,對於CEX 而言,它們仍然有較大的進步。
但是由於第2、3 步的操作空間的存在,也讓這類方案成為了一個很接近「全託管」的方案。畢竟,提現key 理論上仍然為大池子所有,你手中持有的只是「提現地址」的「提現地址」。所以,對於不掌握最終資金去向的方案,我都傾向於劃歸「全託管」。
部分Rocket Pool 支持者經常聲稱它是完全去中心化的,這個廣告語深入人心。
但是當你看完此thread,你會知道,它是在驗證key 部分,做到了去中心化,任何人都可以當驗證者(Lido V2 也正在努力實現)。
而在提現key 這個部分,作為用戶,仍然無法參與,你的資產仍然靜靜地躺在第三方的錢包當中。
當然,Lido,Rocket 相比交易所來說,僅多操作一兩步,卻更加去中心化,仍是不錯的折中方案。尤其是Lido,stETH 流動性非常贊(目前遠超其他所有LSD 方案),是重要加分項。
方案三SaaS(StakingasaService)類/小池子類
到了第三步,Staking 就更加原教旨主義了。我個人是有一定的去中心化潔癖的,尤其是經歷了一系列CEX 暴雷後。
剛才做了比喻,驗證key 是工作證;提現key 是工資卡。那麼,人們天然就會想,有沒有一種方案,就讓別人替我打工,同時我自己領工資呢?
現實生活沒有這種美事兒,但以太坊網絡有,就是SaaS 或叫VaaS(Validator as a Service)。我們以非託管礦池@ebunker_eth為例。
我們首先要做的,是把驗證key 做成keystore 給到Ebunker Pool。接下來,由專業礦池來維護這個節點的出塊。同時,提現地址填我自己的,即我掌握最終以太坊的提現權。
總結下:
【驗證key】,我和礦池各一份;
【提現key】,只有我有。
即:礦池打工/我拿錢/礦池拿抽成。
這個方案和大池子類有什麼區別呢?區別在:
-
Pooled 類,提現地址是統一的(即Lido\RPL 金庫),所以它是「大池子」。
-
SaaS 類,提現地址是每個人都填自己的,所以它是「小池子」。
PS:大池子,小池子的說法是我起的,我覺得這個很形象,便於理解。
那你可能會問,那像SaaS 類,如果礦池不幫你去Beacon chain 廣播,你還是無法提現啊?
關鍵來了,因為你手裡有你的【驗證key】,如果最差情況發生,例如礦池rug 了,你還可以親自去跑這個節點,親自廣播。同時,你手裡還有【提現key】,所以你可以親自提現,完好無損取回本金。
而在大池子類方案裡,最壞情況發生後,你是沒有這個能力的,因為你既沒有驗證key 也沒有提現key。
那你可能會問第二個問題,SaaS 方案中,小池子礦池能否做到卷我錢跑路?這是以太坊Staking 設計的精巧之處,因為你在創建節點時,會填入自己的提現地址,礦池無法篡改它。所以,即便礦池rug 了,你的本金絕對無法被礦池拿走,因為偷走它的難度攻擊以太坊本身。
而在大池子方案裡,最壞情況發生後,理論上它可以攜款跑路。很簡單,它只要升級它的金庫合約,將它的ownership 轉移給攻擊者。當然這是最壞情形,發生的概率很小。
為了反制這一點,Lido 引入了多籤來管理智能合約升級;而Rocker Pool 似乎對此事諱莫如深,暫時沒有找到它討論合約升級的相關內容。
所以,對於不想打工(畢竟7*24 運維節點不是個輕鬆活),又有安全性要求(不給第三方管理資金),選擇SaaS 服務是個不錯的選擇。除了@ebunker_eth之外,還有一些礦池提供類似的「非託管」服務,可以到Rated 上查詢。
當然,缺點也有,所有的非託管SaaS 類,均沒有LSD 方案。道理也很淺顯,人家不掌握你的私鑰,怎麼敢給你發存摺(LSD)?當然,有些SaaS 礦池也會提供大池子方案,大池子方案就可以給LSD。
再用精簡的話說:誰掌握私鑰決定了是否可以LSD。 CEX、大池子方案都可以,小池子,Solo 都不行。
上海昇級後,以太坊提現最久1-2 個月,SaaS 類小池子方案,流動性也得到了一定的保障,所以,這也是我個人最喜歡的方案,省心/稍費事/不把私鑰給別人/APR 不錯。
第四類解決方案:Solo 類
最後,給大家介紹一下最終的聖杯,SoloStaking。
Solo 顧名思義,自己玩,不引入任何第三方,去中心化和安全性拉到滿星的方案。
Solo 礦工,自己獨自佔有驗證key 和提現key。優點顯而易見,安全、沒人抽成,給以太坊增加多樣性,而且…滿足精神世界的需求!
缺點也顯而易見:自己親自打工,需要成本:時間成本(維護它),資金成本(租賃服務器/搭建物理機房)。若不24 小時維護,你的APR 會略低一些,因為有懲罰。
例如,目前全網出塊有效率為97%,Vitalik 可能就是一個Solo 礦工,專業如他,也只能做到96% 有效率,Rocket Pool 更低,它是眾包的,有效率只有95%。
Solo 的門檻我覺得至少是10K 以太坊,也就是30 組節點以上,一方面是考慮才能出塊的穩定性(搶不到MEV 的區塊,也是很難受的)。一方面是收入打不平成本。
但是,如果你的以太足夠多,甚至超過30K,50K,那你可以考慮僱點人來跑,畢竟付工資要比被大池子/小池子按百分比抽佣便宜,肯定要盈餘更多。而且,Solo 是永恆的聖杯。如果數量足夠大,我是強烈建議研究一下Solo。數量低於100K,建議重溫一下第2 類和第3 類。
另外,插入一個支線。
SSV 是乾嘛用的? SSV 其實是DVT 這門技術的研究者,它暫時和上述四類方案不是競爭對手,而是合作關係。 DTV 是用於拆分驗證key 的。
當你的驗證key 被拆成4 份之後,妙處在於:
-
一個運營商掉線,那其他運營商可以立刻補上;
-
同時每個運營商都不清楚完整的驗證key,這個讓驗證這個環節更去中心化,它可以讓Lido 類、SaaS 類和Solo 方案變得更強。
終於寫完了這篇!雖然很長,希望這篇分析能幫大家徹底捋清所有Staking 方案之間的關係和異同。歡迎大家mark,隨時復習。