每日最新頭條.有趣資訊

以太坊2.0密鑰

本文轉載自:ETH中文網公眾號

以太坊2.0密鑰概述

總述

以太坊1.0和2.0的密鑰是基於相同的思路並使用橢圓曲線密碼學創造出來的。但是,以太坊2.0的功能性有所增強,在創造密鑰時需要不同的參數,並使用BLS(Boneh-Lynn-Shacham) 簽名方案。

以太坊2.0密鑰有哪些?

在以太坊1.0,用戶訪問他們的資金只需要一個私鑰,而在以太坊2.0中則需要兩個不同的密鑰——驗證者私鑰提款私鑰

驗證者密鑰

如下圖所示,驗證者密鑰由兩個元素組成:

驗證者

驗證者

由於驗證者私鑰需要隨時對ETH2進行鏈上簽名,比如區塊提議和證明。因此這些密鑰必須保存在熱錢包裡。

這種靈活性使得驗證者簽名密鑰可以快速地在設備間進行遷移。但是,如果密鑰丟失了或被盜了,盜竊者可以通過以下兩種方式作惡

通過以下的做法使驗證者被罰沒:

o 作為區塊提議者時,對同一個時隙 (slot) 的兩個不同信標區塊進行簽名投票

o 作為區塊證明人時,對另外一個區塊進行環繞證明投票

o 作為區塊證明人時,對同一個目標檢查點進行兩次不同的證明投票

強行主動退出,阻止驗證者質押,並給提款密鑰所有者提供ETH餘額的訪問權限。

驗證者公鑰包含在存款數據裡,作用是使得ETH2能夠識別驗證者身份。

提款密鑰

如果在階段1和階段2能夠實現ETH轉移的話,那麽轉移驗證者的餘額則需要用到提款密鑰。如同驗證者密鑰,提款密鑰也由兩部分組成:

提款

提款

丟失了這個密鑰意味著無法訪問驗證者餘額。但是,驗證者仍然可以對證明投票和區塊進行簽名,因為這些操作只需要驗證者的私鑰,只是如果密鑰丟失了的話驗證者這樣做基本沒法取得獎勵。

要提款的話,驗證者狀態必須是“已退出”。

單個ETH1錢包中有多個驗證者存款的情況

每個驗證者都有他們自己唯一的存款數據,而信標鏈通過存款數據來識別驗證者。一個驗證者有四個密鑰。

:我要如何重新將存款存進驗證者餘額裡?(例如有效餘額已被清空)

:發送另一筆大於等於1 ETH的交易到存款合約,以驗證者的特定存款數據作為交易輸入。在第一筆存款交易後,這個唯一的存款數據會儲存在區塊鏈上,並可以在多個瀏覽器上查詢到。

:存款合約要花費大概360,000 gas,但鑒於退款操作需要一定成本,建議將交易費定在400,000到500,000 gas之間。

ETH2.0驗證者的助記詞

在過去的幾年裡,我們已習慣於12到24個單詞的助記詞系統。我們為什麽要倒退回本地保存密鑰呢?這方式顯然更複雜、更不安全。

在BLS密碼庫的審計完成之前,目前已知的硬體錢包將不支持ETH2.0密鑰的生成。EIP-2333和EIP-2334提供了解決方案,但仍有待實現。基於這些認知,我們可以預見在階段0啟動的時候,助記詞系統是不可用的。

它是怎麽運作的?

助記詞和路徑都是為大家所熟知的功能了,用戶在訪問他們的硬體錢包時也經常會碰到。

“舊的ETH1.0”的路徑結構和示例:

m/44'/60'/0'/0

m / purpose' / coin_type' / account' / change / address_index

同樣的邏輯也適用於ETH2.0密鑰,只是有一些不同的參數。會有一個“父密鑰”(助記詞)使得用戶可以將盡可能多的驗證者連結到一個提款密鑰裡。如此一來,用戶可以通過助記詞導出所有的密鑰

下圖對此做出了簡要概述:

來源:Carl Beekhuizen

Cr: Nishant Das 負責事實核查

獲得更多的PTT最新消息
按讚加入粉絲團