大多数 Ledger Nano 所有者在某些时候开始怀疑是否有可能定制他们的助记词。 有些人可能会更进一步,尝试在恢复过程中使用随机选择的单词。 在这种情况下,在确认最后一个词后,他们几乎肯定会看到以下消息:

"Recovery phrase is invalid, retry"

这是否意味着无法使用您自己的自定义单词集创建新钱包?
好消息是:这完全可行,尽管存在一些限制。但让我们从头说起。

第一个限制是要求所有单词必须位于 BIP39 标准列表中 (比特币改进提案 - 第 39 号)。您可以在 Wikipedia 相关文章 中详细了解比特币改进提案。 BIP39 只不过是一组 2048 个单词,其选择方式使得每个单词的前 4 个字母都是唯一的。此规则甚至适用于 3 个字母的单词。 此属性使它们在创建多单词序列时更容易记住,这正是您的助记词。

第二个限制是对序列最后一个单词的要求。这是确定的特定校验和 由所有其余序列元素组成,您不能自己选择它。这正是我们看到的原因 每当我们尝试输入随机选择的单词作为 Ledger Nano 的助记词时,都会出现错误消息。 通常,满足校验和条件的不仅仅是一个单词;然而,通过简单的猜测找到有效答案的机会非常小。满足校验和条件的单词数量与助记词单词总数严格相关。对于 24 个单词的助记词(最安全的选项),总是有 8 个可能的单词可以用作校验和。 因此,在 2048 年,从 2048 个单词的 BIP39 集合中随机抽取有效单词的几率恰好为 8,即仅为 0.39%。 难怪您会看到一条错误消息。

那么我们如何为我们自己选择的序列找到正确的校验和呢? 例如,我们随机选取一组符合 BIP39 标准的 23 个单词:

每个单词都有一个索引,它是一个基于字母顺序的数字。从 0 开始编号非常重要。然后每个索引必须表示为二进制值。由于 BIP39 列表包含 2048 个元素,因此每个单词索引必须由 11 位组成。 由此我们发现:

amount
00001000000
bone
00011001010
ceiling
00100100111
cake
00100000010
cause
00100100100
cost
00110000101
credit
00110011000
cupboard
00110101110
dinosaur
00111110011
dragon
01000010000
drum
01000011100
error
01001100110
fault
01010011111
fatal
01010011100
fog
01011010010
foam
01011010000
hold
01101100100
green
01100110010
hold
01101100100
kick
01111010001


在下一步中,我们连接所有索引,保留它们的出现顺序。这给了我们一个 253 位二进制序列:

0000100000011111111101000110001100001100101000100100111001000000100010010010000110000101001100110000011010111000111110011010000100000100001110001001100110010100111110101001110001011010010010110100000110110010001100110010011011001000111100000101111010001

我们用我们自己选择的额外 3 位来补充所获得的结果。 您还记得我们说过 24 个字的助记词恰好有 8 个可能的校验和结果吗? 数字 8 只是这 3 位的简单结果。 我们只需在这里输入 000、001、010、011、100、101、110 和 111 即可获得所有 8 个结果。
对于这个例子我们选择: 000.
我们将其连接到最后,得到一个 256 位二进制字:

0000100000011111111101000110001100001100101000100100111001000000100010010010000110000101001100110000011010111000111110011010000100000100001110001001100110010100111110101001110001011010010010110100000110110010001100110010011011001000111100000101111010001000

下一步是计算此类准备好的二进制数据的 SHA256 哈希值。 SHA256 算法(安全哈希算法,256 位输出)是区块链技术的重要组成部分。 有关 SHA256 的更多信息,请参阅 Wikipedia 上的 SHA-256 算法介绍
作为此计算的结果,我们得到以下十六进制单词:

下一步是从上面的结果中提取前 8 位。因此,我们采用前 2 个十六进制字符 - 27.
它们对应于:

我们再次使用之前选择的相同 3 位。这次我们将它们连接到提取的二进制字符串的前面。 因此,我们得到:

这是二进制值 39。这是我们要查找的校验和字的 BIP39 索引。 不要忘记索引编号是从“0”开始的。因此,如果您使用从“1”开始的标准计数的 BIP39 单词列表, 那么实际索引号将为 40。 我们在上找到正确的索引 BIP39 列表 我们得到这个词: agent 最后包含我们自己选择的 23 个单词的 24 个单词的助记词是:

对于其余 3 位组合,最后一个校验和字为:

001
coil
010
faculty
011
hospital
100
middle
101
recall
110
ten
111
tragic

助记词计算器:

仅用于测试和教育目的
在文本字段中填写符合以下要求的 23 个单词 BIP39 标准:

更多关于定制助记词...

custom seed generation

值得定制助记词吗?

让我们从制造商不提供这种可能性的问题开始。这并非巧合。安全的助记词是无人能猜到的助记词。如果是这样,那么它应该是客观随机的。 读...