來源 | beaconcha.in

以太坊2.0密鑰概述

General 總述

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

以太坊2 .0 密鑰 有哪些?

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

驗證者密鑰

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

  • 驗證者 私鑰
  • 驗證者 公鑰

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

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

  • 通過以下的做法使驗證者被 罰沒
    • 作爲時,對同一個時隙(slot) 的兩個不同信標區塊進行簽名投票
    • 作爲時,對另外一個區塊進行環繞證明投票
    • 作爲時,對同一個目標檢查點進行兩次不同的證明投票
  • 強行,阻止驗證者質押,並給提款密鑰所有者提供ETH餘額的訪問權限。

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

提款密鑰

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

  • 提款私鑰
  • 提款公鑰

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

要提款的話,驗證者狀態必須是。

單個E TH1 錢包中有多筆 存款 (即有多個驗證者)的情況

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

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

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

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

ETH2.0 驗證者的助記詞

在過去的幾年裏,我們已習慣於 1 2到 2 4個單詞的 助記詞 系統 。我們爲什麼要倒退回本地保存密鑰呢?這方式顯然更復雜、更不安全。

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

它是怎麼運作的?

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

“舊的E TH1.0 ”的路徑結構和 示例

m/44’/60’/0’/0

m / purpose’ / coin_type’ / account’ / change / address_index

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

來源: Carl Beekhuizen

Cr: Nishant Das 負責事實覈查

聲明:ECN的翻譯工作旨在爲中國以太坊社區傳遞優質資訊和學習資源,文章版權歸原作者所有,轉載須註明原文出處以及ethereum.cn,若需長期轉載,請聯繫[email protected]進行授權。

相關文章