Address

從種子到 20 個(或更多)地址的算法

  • January 12, 2018

我目前正在閱讀 Electrum 原始碼,以了解如何從種子(12 個字)到地址(通常格式)。有人有這個過程的大圖嗎?

更準確地說,我正在尋找可以產生這個的 Python 程式碼(獨立的,可從 Electrum 中執行)。

  1. 取一個種子s(可以是 2048 詞詞典中的 12 個詞,但不是必需的)
  2. 假設s是一個有效的種子(即is_new_seed(s)is True,這意味著bh2u(hmac_sha_512(b"Seed version", s.encode('utf8')))有前綴'01');is_new_seed的程式碼在這裡。
  3. 為了我們的目標(獲取地址),我們應該首先s? 如何?

要麼

  1. 我們應該創建一個主公鑰s嗎?如何?
  2. 給定 3. 或 4.,如何創建前 20 個公共地址?

輸入範例:(s = 'x8'是的,這是一個有效的(不安全,因為太簡單)種子,您可以在 Electrum 中嘗試 -從現有種子創建錢包

輸出範例:

1LNvv5h6QHoYv1nJcqrp13T2TBkD2sUGn1
1P6rnf6VUfSUUWES6wTyjfx9dTFqXdrjLM
1AQ6TNtD2eEdQjwpVpkPSdcvJiiLKziKZz
...

Electrum 使用 BIP 32 將種子值轉換為私鑰和公鑰。然後從這些密鑰中派生地址。公鑰也衍生自私鑰,但僅限手錶的錢包除外。

完整的 BIP 32 規範可在此處獲得。

引用自:https://bitcoin.stackexchange.com/questions/66413