創建不是 BIP39 的 Electrum 2.x 種子的後果
Electrum 2.0 種子(助記詞)是使用基於校驗和的算法創建的(例如以 .
hmac_sha512
開頭01
。它通常是 13 個單詞的種子,但在某些情況下可以是 12 個。如果所有12 個字的 Electrum 2.x種子都被過濾,使得它們不 兼容 BIP39,那麼熵會減少多少?
=>問題與此Python程式碼有關
我想問題可以概括為:
- 12 字 Electrum 2.x 種子(相對於 13 字種子)的百分比是多少?
- 不符合 BIP39 標準的 Electrum 2.x(12 字)種子的百分比是多少?(最後一個字決定校驗和)
出於這個答案的目的,我假設我們只是在談論可以由 Electrum 2.x生成的助記符,而不是那些被 Electrum 2.x 簡單地接受用於恢復的助記符(後一個數字是無限的)。
- 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
- 不符合 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