3.15崛起社區:理解以太坊(ETH)質押提款

2023-03-15 15:03:57

提款 (withdrawals)是驗證者生命周期(validator lifecycle)中缺失的一部分,從 2020 年 12 月以太坊共識鏈一开始啓動以來就在开發當中,現在將隨上海升級而來。由於上海升級將在今年上半年啓動,所以值得注意和理解什么是提款,其工作機制,以及這個新特性的使用方法。


      3.15崛起社區:理解以太坊(ETH)質押提款

當共識鏈第一次在2020年12月啓動時,你無法從共識鏈上發送任何信息到執行鏈上去。也就是說,盡管余額能在共識鏈上累積,你也無法通過執行鏈去提現,因為技術上在當時提款是不可能的。經年累月過後以太坊的結構已經被改變得可以容納新的研究成果,轉變為當前以 layer 2 為中心的擴容模型,並且很大程度上保持了執行鏈的原貌。在2022年的 9 月,執行鏈與共識鏈合並了,執行區塊變成了共識區塊裏數據的一個子集。這時信息從共識鏈上轉移到執行鏈上就是可行的了,其中一個例子就是驗證者獎勵。

你可以在”理解合並後的獎勵“(”Understanding post-merge rewards”)一文中找到共識鏈和執行鏈互動以及合並的區塊如何構建的詳細細節。關鍵點在於只有在合並之後提款才變成可能。

驗證者在做些什么?

自從 2020 年 12 月的共識鏈創世以來,驗證者一直在產生區塊並維護鏈的安全。具體來說,他們一直在提議新的區塊,並參與對它們自己和其他驗證者提議的區塊的投票(注解 2)。當被正確執行時,這些行為會為驗證者帶來獎勵。共識鏈啓動時只有 2 萬多名驗證者,但在筆者撰文時已經約有 52 萬名活躍的驗證者在確保其安全性。從 2020 年 12 月 到 2022 年 9 月,共識鏈只維護了其自身的安全,但是這為合並的到來鋪平了道路(注解 3),從 2022 年 9 月之後執行鏈就已經僅由驗證者們保證其安全性。

為了回報他們維護區塊鏈安全性的行動,這些驗證者被許諾以根據以太坊協議直接產生的獎勵,這些獎勵被記錄在共識鏈上。

驗證者的獎勵怎么樣了?

因為共識鏈本身沒有執行能力,所以積累在上面的 ETH 無法從一個账號被轉移到另一個。確實共識鏈甚至沒有账戶的概念,鏈上唯一有余額的實體是驗證者本身。這意味着這些驗證者的獎勵雖然在過去兩年穩定增長,但是卻沒有提取它們的方法。


      3.15崛起社區:理解以太坊(ETH)質押提款


      3.15崛起社區:理解以太坊(ETH)質押提款

在所有驗證者中,共識鏈已經產生了超過 1 百萬的 ETH 作為累計的獎勵。 就個人的驗證者而言,他們的獎勵取決於一系列的因素,但最明顯的莫過於他們作為活躍驗證者的時間。有很多驗證者已經積累了一筆數量巨大的獎勵:

大多數驗證者獲得了只有少於 2 個 ETH 的獎勵, 有些高達 5 個 ETH,盡管這些獎勵被登記在在共識鏈上,但是它們無法在執行鏈上被實例化,直到提款的功能就位。

注意,自從合並之後,除了上述的獎勵,提議區塊的驗證者會獲得一部分交易費。這些費用會直接在執行鏈上被支付,因此下文不會再論述它們。

上海升級改變了什么

上海升級(注解 4)提供了一個從共識鏈上轉移獎勵到執行鏈上的機制,每一個執行區塊都會包括大約 16 次把 ETH 轉移到執行鏈账號上的提款(注解 5)的數據。提款有以下數據結構:


      3.15崛起社區:理解以太坊(ETH)質押提款一筆提款

一筆提款的單個組成部分分別為:

提款索引(Withdrawal index)提款的唯一標識符,便於引用。

驗證者索引(Validator index)共識鏈上一筆提款來源的驗證者的索引

地址(Address)提款將會被匯集到的地址

數目(Amount)將會被添加到账戶的 ETH 數目,單位是 Gwei(注解 6)

當區塊被導入到執行鏈中時,提款將會根據給定的數量進行處理,相應地址的余額會增加。注意提款不是交易,它們不消耗 gas,它們也不會在提現地址觸發任何智能合約的操作。一旦區塊被處理完畢,相應的余額將會增加,但不會再有其他的事情發生。

被提款的 ETH 是從哪裏來的?

上述的信息描述了什么是提款,但是提款發生時的 ETH 是從哪來的呢?

盡管一個驗證者的信息被創建時,需要向以太坊存款合約存入 32 個 ETH,但是不能以提款為目的訪問這些 ETH,因為合約裏沒有任何允許代幣轉移的機制。這些账目總和的使用也最終會導致合約出現負的余額,因為現在驗證者的在共識鏈上的余額總和超過了一开始存款的總和。

提款是用根據以太坊協議產生的資金(即新增發的 ETH)來支付的,而不是從已有的账戶上轉移。這保證了提款可以一直被支付,即使從共識鏈上提出的總數目高於存入的總數目。

提款時鐘

在內部,共識層的軟件持有一個存有驗證者信息的簡單列表:


      3.15崛起社區:理解以太坊(ETH)質押提款

每一個驗證者實體的獨立組成部分分別為:

索引(Index)對應這個驗證者及其列表內位置的唯一索引

狀態(State)目前這個驗證者的狀態,比如“活躍中”或“退出中”(注解 7)

余額(Balance)目前該名驗證者的余額,單位為 Gwei

提款憑證(Withdrawal credentials)該名驗證者的提款憑證

上述這些概念大多數都是不言自明的,然而提款憑證卻需要一些解釋。每一個驗證者都有一組提款憑證。這些憑證控制了共識層資金的流向,包括初始的存款和接下來的獎勵。

目前有兩種提款憑證:

  • 從BLS公鑰產生的,被稱為“type 0”提款憑證

  • 從執行地址產生的,被稱為“type 1”提款憑證。

我們待會再來詳細地探索這些概念,但是,目前的重大區別在於,type 1 的提款憑證允許共識資金被提款到執行鏈上去,而 type 0 提款憑證不行。

共識鏈按順序處理提款,從索引 0 开始一直處理到某一集合中最後那個索引,然後再從頭开始。你可以用一個單指針的模擬時鐘作為類比提款進程的一種思考方式。 每一個鐘上的刻度代表一個驗證者,從驗證者索引 0 开始到最後那個(目前大概是 52 萬個)。


      3.15崛起社區:理解以太坊(ETH)質押提款提款時鐘

一旦上海升級上线,區塊就會包含提款信息。為了選擇哪些驗證人可以提款,時鐘指針圍繞驗證人轉動,每當它指向一個有資格提款的驗證者時,該名驗證者的部分或全部余額將根據以下規則被提出:

  • 如果驗證者擁有 type 1 憑證,並處於 ”活躍“ 狀態(注解 8),並有超過 32 個 ETH 的余額,那么超過 32 個 ETH 的部分會被提出。

  • 如果驗證者擁有 type 1 憑證,並處於 “可提款” 狀態,余額不為 0,那么剩余的所有余額都會被提出。

如果上述其中一條規則適用,就會有一筆提款產生並被添加到區塊裏;如果上述兩條都不適用,那么驗證者就會被認為不符合條件,指針會繼續往下走。指針會繼續跳動直到它找夠 16 個符合條件的驗證者(注解 9),這時單個區塊所需的提款筆數足夠了,提款信息就會被包含進區塊中。

時鐘指針走完一輪的時間取決於符合資格的驗證者數量。


      3.15崛起社區:理解以太坊(ETH)質押提款

在筆者撰文時有大約 520,000 名驗證者處於活躍狀態。若每個區塊有 16 筆提款,每天 7,200 個區塊,則每處理一輪符合資格的驗證者集將需要大概 4.5 天。但正如上圖所示,這個時間將隨着符合資格的驗證者數量改變而改變。

修改提款憑證的過程

正如上文所述,要成為符合資格的驗證者必須擁有 type 1 的提款憑證。筆者撰文時有大概 40% 的驗證者擁有 type 1 的憑證,其余的則擁有 type 0 憑證。上海升級會帶來從 type 0 升級到 type 1 提款憑證的能力,如此驗證者便能接收獎勵。修改提款憑證需要創建一個在共識鏈上廣播的籤名操作。這個操作的結構如下圖:


      3.15崛起社區:理解以太坊(ETH)質押提款修改提款憑證的操作

操作的組成部分分別為:

  • 驗證者索引(Validator index)該操作所適用的驗證者的索引

  • 提款的BLS公鑰(Withdrawal BLS public key)目前BLS提款憑證的BLS公鑰

  • 執行地址(Execution address)用於新提款憑證的執行地址

  • 籤名(Signature)由當前 BLS 提款憑證的私鑰在操作的其他字段上所作的籤名。

信標鏈上的操作過程如下:

“就每一個被驗證者索引所定義的驗證者而言,檢查給定的 BLS 公鑰是否可以轉換為匹配當前驗證者的 type 0 提款憑證。若可以,則把給定執行地址轉換成 type 1 的提款憑證並為驗證者更新。”

因此,修改憑證的操作只能發生一次。 一旦修改憑證的操作被處理完畢,鏈上驗證者的定義就會包含 type 1 提款憑證,所以就據上文所述就沒有 type 0 提款憑證可供匹配了。也就是說,type 1 憑證一旦被設定就將在其生命周期內保持不變。(注解 11)

選擇執行地址

修改提款憑證的第一步就是選擇用來接收提款的以太坊執行地址。正如上文所描述的,你只能作一次改變,所以你必須保證你在做設置之前已經確保了地址私鑰的控制權。若你有多個驗證者身份那么你需要考慮是否要為每一個驗證者身份提供一個不同的提款地址,或者為所有的驗證者身份使用相同的地址:

  • 設置相同的地址方便了你,獎勵會更快地累積到這個地址去,因此消耗的 gas 會更少。

  • 設置不同的地址,保持它們互不關聯則增加了你的驗證者身份的安全性,若這些驗證者身份本身就是互不關聯的(不同的儲蓄地址,不同的或者本來就沒有的區塊提議塗鴉等)

創建操作

一旦執行地址被選定,則需要為每一個驗證者創建並籤署一個操作。由於暴露與提款憑證相關的私人信息的敏感性(可能是私鑰或者助記詞),我們推薦離线創建。操作方法超出了這篇文章論述的範圍,但你可以參考使用 ethdo 工具這么做的詳細指南,或者使用未來其他可用的工具和向導。

廣播操作

在創建操作之後,你需要把它們廣播在共識鏈上。若操作是在上海升級之後才被提供給共識節點的,那么它會在下一次機會被廣播到網絡中以打包進區塊。若操作是在上海升級之前被提供給共識節點的,那么它會被儲存起來並在升級完成後被廣播到網絡。注意這需要你連接到一個可以識別上海升級的共識節點上;就目前來看這些共識節點預計將在 2 月的某個時候可用,為主網升級提供了良好的時機。

在线/離线 進程

正如上文所述,創建憑證修改操作應該在離线狀態下進行。這避免了提款的私鑰被暴露給不安全的電腦從而導致私鑰被竊取的情況。然而,訪問一臺在线的電腦需要從信標節點上獲取信息,並最終廣播憑證修改操作。因此,我們推薦用一個在线/離线的進程來創建並廣播修改操作。


      3.15崛起社區:理解以太坊(ETH)質押提款在线和離线的配置中創建和廣播修改提款憑證操作

有不少的工具都遵循這個過程,比如ethdo 就有他們自己的文檔交代如何進行這個過程,下文是每一步的概覽,講述其作用和意義。

1.獲取鏈上信息

要創建有效的已籤名的憑證修改操作,你需要從鏈上獲取不同的信息,這些信息應該從鏈本身獲取以保證是正確的信息。我們同樣推薦獲取一份包含目前所有驗證者信息的列表。因為這樣可以更容易地創建操作,同時驗證創建的操作是否適合驗證者。

這些信息來自一個活躍中的共識節點,因此需要從一臺聯網的電腦上獲取這些資料。大多數運行驗證者程序的實體應該都有訪問共識節點的權限,但是如果它們將質押過程委托給一個服務商,那它們應該設法從服務商獲取必要信息。

這將產生一份包含鏈上信息的文件。文件本身不會帶有私鑰或其他敏感信息。

2.轉移鏈上信息

一旦鏈的信息被收集完成,那就需要把它從一臺在线的電腦轉移到一臺離线的電腦。目前的普遍做法是通過 USB 存儲,USB 存儲允許兩臺電腦不需要直連就能完成信息的轉移。這意味着離线的電腦可以完全與互聯網斷开連接,極大地增加了私鑰或者助記詞的安全性。

3.創建憑證修改操作(Credentials Operations)

一旦離线的電腦上有了鏈的信息,那就可以進行憑證修改操作的創建了。這要求對創建了目前提款憑證的助記詞和私鑰的訪問權,所以在離线的電腦上運行這個進程更加安全。

私鑰和助記詞有可能創建了多個驗證者的憑證,因此創建進程可能會產生多個修改操作。

這會產生一個包含了修改憑證操作的文件,文件自身不會包含私鑰或者其他敏感信息。

4.轉移憑證修改操作

一旦憑證修改操作的文件被創建完成,就需要把它從離线的電腦上轉移到在线的電腦上。再說一次,USB 存儲或類似的方式是普遍的最優做法。

5.廣播憑證修改操作

一旦在线的電腦上有了憑證修改操作的文件,就可以通過將這些操作發送到某個共識節點來向以太坊網絡廣播。最有可能是發送到下載鏈信息回來的那個節點上。

一旦操作被提交到共識節點上,節點就會把它們在全網範圍內廣播,一旦共識區塊打包了這些操作那么修改就會隨之生效。每一個區塊都有容納 16 個修改操作的空間, 所以有可能需要 4 天才能讓一個操作被添加到一個區塊裏去,但是更有可能的是 1 到 2 個小時就可以添加。

總結

提款功能將隨着上海升級推出,自從共識鏈啓動以來第一次使用戶的共識獎勵變得可用。一旦設置好之後,它們就會自動地為任何驗證者所用,而升級也帶來了一個機制來配置那些尚未准備好提款的驗證者。

驗證者生命周期完成之後,共識鏈就履行了對質押者們從 2020 年 12 月以來許下的承諾,並准許驗證者離开這個他們此前覺得可能離开不了的系統。額外的驗證者將為以太坊帶來更強的安全性以及一條更強大的鏈。

1.以太坊有多條鏈,通常被稱為共識鏈(或稱信標鏈)和執行鏈,欲了解更多信息請參考文章”理解合並後的獎勵“。

2.他們同樣參與到同步委員會中,但這些都是見證的另一種形式。

3.就是用俗話解釋以太坊從工作量證明共識機制到權益證明共識機制的遷移。

4.與共識鏈上的 Capella 升級同時進行。

5.嚴格意義上最高可以達到 16 筆提款,除極端情況外,所有 slot 都應該是滿的。

6.共識鏈上的所有數值都是以 Gwei 為單位的,因此從共識鏈到執行鏈的任何代幣轉移都是一個以 Gwei 為單位的整數。

7.狀態實際上來自驗證者信息中的其他字段,所以它不會呈現在驗證者的定義裏,但是由於它在文章其他地方被引用了,所以把它展示在這。

8.“活躍中”和”可提款“的狀態定義可參考文章“理解驗證者生命周期”

9.在 16384 名驗證者之後提款時鐘的指針就會停止跳動,即使找不夠 16 名符合資格的驗證者,盡管這種情況不太可能在測試網以外發生。

10.筆者撰文時這個數字實際上大約是 7160,因為一些區塊沒被提議或者在提議後變成了孤塊。

11.這可能隨着新的操作的引入而在未來改變,但在筆者撰文時尚無這樣的計劃。

12.預計在升級後的頭幾天會有一波驗證者修改他們憑證的初始高峯期,在這之後排隊的人將會很少,因為大多數符合資格修改憑證的驗證者都已經修改完。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

btc日內再次下跌 短线應當如何處理?

盡管以太坊現貨ETF獲批是個好消息,但市場反應卻不如預期。在消息公布後,以太坊價格出現了小幅下跌,...

加密蓮
134 3個月前

7月23日、BTC(合約)ETH(合約)行情分析及操作策略

昨日收益還是不錯的,日內給出的現價空單分別止盈我們目標點位,恭喜跟上的朋友喫肉。時間一晃到月底了,...

倪老師
134 3個月前

幣圈院士:血與淚的教訓!交易者為何總是撞死在同一棵樹上?

幣圈院士談。交易市場中的幾種“死法” 在幣圈市場鱗次櫛比的海洋,風起雲湧,時常讓人感到驚手不及。在...

幣圈院士
139 3個月前

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC

7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...

168超神
131 3個月前

悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤

一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...

我是周悅盈
111 3個月前

btc完美盈利 晚間波動較大注意

昨日btc空單完美給到,最大化走出一千七百點空間~ btc: 日內开盤下跌繼續測試66000一线,...

加密蓮
121 3個月前