權益證明以太坊中的金鑰
頁面最後更新時間: 2026年2月14日
以太坊使用公私金鑰密碼學來保護使用者資產。 公鑰是以太坊地址的基礎,可被大眾看見並用作一個獨特的身分識別。 私鑰(或「密鑰」)則永遠只能由帳戶擁有者存取。 私鑰被用來「簽署」交易和資料,以便密碼學可以驗證私鑰持有者核准特定私鑰的某些動作。
以太坊的金鑰是使用橢圓曲線密碼學opens in a new tab產生的。
然而,當以太坊從工作量證明轉換到權益證明時,一種新型的金鑰被新增到以太坊中。 原始的金鑰仍維持相同的運作 — 使用基於橢圓曲線密碼學的金鑰來保障帳戶安全沒有變化。 然而,使用者需要一種新型態的金鑰,透過質押以太幣和運作驗證者來參與權益證明。 這個需求源於擴容帶來的挑戰,許多訊息需要在眾多的驗證者間傳遞,過程中需要一種可以輕鬆彙總的密碼學方法,以減少網路達成共識所需的通訊量。
這種類型的新金鑰使用 Boneh-Lynn-Shacham (BLS) 簽章方案opens in a new tab。 BLS 能高效率地彙總簽名,同時允許對彙總的單獨驗證者金鑰進行逆向工程,非常適合管理驗證者之間的動作。
兩種驗證者金鑰
在以太坊過渡到權益證明之前,使用者只有一個基於橢圓曲線密碼學的私密金鑰來存取他們的資金。 隨著權益證明的引入,希望成為獨立質押者的使用者也需要驗證者金鑰和提款金鑰。
驗證者金鑰
驗證者的簽章金鑰包含兩個元素:
- 驗證者私鑰
- 驗證者公鑰
。 因此,這些私鑰必須存放在熱錢包中。
這種彈性的優勢是可以快速地在不同裝置間移轉驗證者簽署金鑰,然而,如果這些金鑰遺失或被竊,竊賊便可透過以下幾種方式進行惡意行為:
- 使驗證者遭受罰沒:
- 做為提議者,在同一個時隙簽署兩個不同的信標區塊
- 做為證明者,簽署一個「包圍」另一個證明的證明
- 做為證明者,簽署兩個具有相同目標的不同證明
- 強制執行自願退出,使驗證者停止質押並授權提款金鑰擁有者存取其以太幣餘額。
當使用者將 ETH 存入質押存款合約時,驗證者公鑰會被包含在交易資料中。 這被稱為_存款資料_,讓以太坊能夠識別驗證者。
提款憑證
每個驗證者都有一個稱為_提款憑證_的屬性。 這個 32 位元組欄位的第一個位元組用來識別帳戶類型:0x00 代表原始 BLS(Shapella 之前,不可提款)憑證,0x01 代表指向執行地址的舊版憑證,而 0x02 則代表現代的複利憑證類型。
具有 0x00 BLS 金鑰的驗證者必須更新這些憑證,以指向一個執行地址,才能啟動超額餘額支付或從質押中完全提款。 這可以在初始金鑰產生期間,透過在存款資料中提供一個執行地址來完成,_或者_稍後使用提款金鑰來簽署並廣播一則 BLSToExecutionChange 訊息。
提款金鑰
如果在初始階段沒有設置,則需要提款金鑰來更新提款憑證,將提款憑證指向執行地址。 此設定使超額獎勵發放能夠開始處理,也讓使用者能將他們質押的以太幣全額提款。
如同驗證者金鑰,提款金鑰也由兩個元件組成:
- 提款私鑰
- 提款公鑰
在將提款憑證更新為 0x01 類型之前遺失此金鑰,意味著將失去對驗證者餘額的存取權限。 驗證者依舊可以簽署證明和區塊,因為這些動作只需要驗證者私鑰,然而遺失了提款私鑰就幾乎沒有激勵。
將驗證者金鑰與以太坊帳戶金鑰分離,可以讓一個使用者運行多個驗證者。
注意:目前要退出質押職責並提取驗證者餘額,需要使用驗證者金鑰簽署一份自願退出訊息 (VEM)opens in a new tab。 然而,EIP-7002opens in a new tab 是一項提案,未來將允許使用者使用提款金鑰簽署退出訊息,以觸發驗證者退出並提取其餘額。 這將透過讓將 ETH 委託給質押即服務供應商的質押者能夠繼續控制其資金,從而減少信任假設。
從種子助記詞派生金鑰
如果每質押 32 個以太幣都需要一組新的 2 個完全獨立的金鑰,那金鑰管理很快就會變得無效率,尤其對那些運行多個驗證者的使用者而言。 相反,多個驗證者金鑰可以從一個共同的秘鑰派生,並且儲存這個秘鑰就允許存取多個驗證者金鑰。
助記詞opens in a new tab和路徑是使用者存取opens in a new tab錢包時經常遇到的顯著功能。 助記詞是一連串的文字,做為私密金鑰的初始種子。 當助記詞和額外的資料結合,即可產生一個稱為「主密鑰」的雜湊值。 這可以視為一個樹的根部。 然後從這個根部開始,使用階層路徑來派生分支,使子節點可以作為其父節點的雜湊值及其在樹中的索引之組合而存在。 閱讀關於基於助記詞金鑰產生的 BIP-32opens in a new tab 和 BIP-19opens in a new tab 標準。
這些路徑具有以下結構,與硬體錢包有過互動的使用者會相對熟悉:
1m/44'/60'/0'/0`這些路徑中的斜線將私鑰的組成部分區分如下:
1主金鑰 / 目的 / 幣種類型 / 帳戶 / 找零 / 地址索引這個邏輯讓使用者能將盡可能多的驗證者附加到單一助記詞上,因為樹根可以共用,而差異則產生於分支。 使用者可以從助記詞中派生任意數量的金鑰。
1 [m / 0]2 /3 /4[m] - [m / 1]5 \6 \7 [m / 2]每一個分支由 / 來區分,因此 m/2 代表從主金鑰開始並遵循分支 2。 下圖顯示,一個助記詞用來儲存三個提款金鑰,每一個金鑰有兩個關聯的驗證者。

