Private-Key

電子的私鑰是 512 位還是 256 位長?

  • April 15, 2018

我最近一直在瀏覽電子的 python 原始碼,並在從第 130行開始的 mneumonic.py文件中遇到以下程式碼行:

def mnemonic_to_seed(self, mnemonic, passphrase):
       PBKDF2_ROUNDS = 2048
       mnemonic = normalize_text(mnemonic)
       passphrase = normalize_text(passphrase)
       return pbkdf2.PBKDF2(mnemonic, 'electrum' + passphrase, iterations = 
             PBKDF2_ROUNDS, macmodule = hmac, digestmodule = 
              hashlib.sha512).read(64)

我們清楚地看到它返回一個 64 字節或 512 位的種子,而不是我們都知道的比特幣私鑰應該是 256 位。這是為生成私鑰而呼叫的最後一個函式,還是我錯過了一些步驟或函式?

這是為生成私鑰而呼叫的最後一個函式,還是我錯過了一些步驟或函式?

你錯過了很多步驟。

種子值為 512 位,因為更多位更安全,BIP 32指定應使用 128 到 512 位之間的種子值。種子值的長度無關緊要,因為無論如何它都會被散列,結果是 512 位。

BIP 32 使用 512 位,因為該值被分成兩個 256 位值。其中一個是私鑰,另一個是鏈碼。

這是為種子增加一點熵的關鍵拉伸函式。助記符通過該函式,然後其輸出通過 bip32_root() 再次通過 sha512 執行。BIP32有點需要 512 位,以便有足夠的位用於鏈碼和主私鑰。

無論如何,金銀花種子有效地是 135 位

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