Wallet
助記詞中是否包含校驗和?
說我有 24 個單詞。在這 24 個單詞中,第 24 個是校驗和。
說我有:
a1 b2 c3 d4 e5 f6 g7 h8 i9 j10 k11 l12 m13 n14 o15 p16 q17 r18 s19 t20 u21 v22 w23 x24
x24 是校驗和嗎?或者是否有第 25 個單詞是校驗和?
我還想知道校驗和是如何工作的。
我假設您在這裡談論的是 BIP 39。
BIP 39 助記符可以包含任意數量的單詞,最常見的是 12、18 和 24 個單詞。有一個校驗和編碼到這個助記符中。這個校驗和實際上只是最後一個詞的“一部分”,即最後一個詞編碼了一些實際的初始熵和一些校驗和,這取決於熵的比特大小。
BIP 39 生成助記符的方式是生成一些
n
長度為位的初始熵。校驗和是n / 32
熵的 SHA256 散列的第一位。這只是連接到熵的末尾。然後通過將熵分成 11 位的組並使用得到的 11 位數字作為 2048 個單詞列表的索引來對助記符進行編碼。對於 12 個字的種子,有 128 位熵,它給出
128 / 32 = 4
了校驗和位。這給出了 132 個要編碼的總位和132 / 11 = 12
字。您可能已經註意到校驗和的長度只有 4 位,比分配給最後一個字的 11 位要短。所以最後一個詞的索引實際上是由熵的最後 7 位和整個 4 位校驗和組成。對於一個 24 字的種子,有 256 位熵,這給出
256 / 32 = 8
了校驗和位。這也比最後一個字的索引的 11 位短,因此這意味著 24 字種子的第 24 個字“包含”熵的最後 3 位和校驗和的所有 8 位。BIP 39 本身有一個表格,顯示熵位的數量、校驗和位的數量、總位長和各種熵位長的總字長。