Electrum

創建不是 BIP39 的 Electrum 2.x 種子的後果

  • December 22, 2018

Electrum 2.0 種子(助記詞)是使用基於校驗和的算法創建的(例如以 .hmac_sha512開頭01。它通常是 13 個單詞的種子,但在某些情況下可以是 12 個。

如果所有12 個字的 Electrum 2.x種子都被過濾,使得它們 兼容 BIP39,那麼熵會減少多少?

=>問題與此Python程式碼有關

我想問題可以概括為:

  1. 12 字 Electrum 2.x 種子(相對於 13 字種子)的百分比是多少?
  2. 不符合 BIP39 標準的 Electrum 2.x(12 字)種子的百分比是多少?(最後一個字決定校驗和)

出於這個答案的目的,我假設我們只是在談論可以由 Electrum 2.x生成的助記符,而不是那些被 Electrum 2.x 簡單地接受用於恢復的助記符(後一個數字是無限的)。


  1. 12 字 Electrum 2.x 種子(相對於 13 字種子)的百分比是多少?

Electrum 2.x 種子預設編碼 136 位數據。在編碼過程中忽略任何前導零位,因此生成的助記符長度會有所不同。

每個字對數據的 log 2 (word_list_length) 位進行編碼,因此對於大多數* Electrum 2.x 字列表,即 log 2 (2048) = 每個字 11 位。

因此 13 和 12 字長的助記符可以分別編碼多達 143 和 132 位的數據。為了將 136 位種子編碼為 132 位(12 個字),至少前 4 位必須為零,這種情況發生的機率為 1 in 2 4,因此16 個隨機助記符的長度為 12或更少

同樣,對於 11 字助記符,將 136 位編碼為 121 位要求 15 個前導位必須為零,因此 2 15中的 1或32768中的 1 的長度為 11或更少

最後,如果你需要一個準確的答案,它會是1 / 16 - 1 / 32768 = 2048 / 32768 - 1 / 32768 = 2047 在 32768的長度是 12 。

  • 對於葡萄牙語單詞列表,它是 log 2 (1626) ≈ 10.67 bits per word

  1. 不符合 BIP39 標準的 Electrum 2.x(12 字)種子的百分比是多少?

12 字長的 BIP-39 助記符有4 位校驗和,因此 2 4中的 1 個生成的 12 字 Electrum 2.x 助記符恰好是有效的 BIP-39 助記符**,16 個 Electrum 助記符中的 15 個**對 BIP-無效39.


如果所有12 個單詞的 Electrum 2.x種子都被過濾,使得它們兼容 BIP39,那麼熵會減少多少?

我將其解釋為:如果要求有效的 Electrum 2.x 助記符是無效的 BIP-39 助記符,那麼這會減少多少熵?

Wolfram|Alpha 說非常小:基於此輸入大約0.0056位:

solve  (2^n - 1) / 2^n = 2047/32768 × 1/16  for n

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