


系列: Zero to Zero Knowledge
助记词种子短语支撑着加密货币中最重要的方面之一——自托管。
今天我们来学习种子短语是如何生成并在钱包中使用的。
恢复短语由 BIP-39 规范定义,这是当今最常见的恢复短语类型。
恢复短语的创建始于生成随机性。熵越高,安全性越强。对于大多数用户来说,128 bits 的熵已被认为足够安全。

根据初始熵的长度,恢复短语通常会有 12 到 24 个单词。
我们首先生成 128 bits 的熵。
我们使用 SHA256 对熵进行哈希。该哈希的前几个比特会作为校验和。
这样就为我们的熵生成了一个独特的指纹。

总计 132 bits(128 熵 + 4 校验和)会被拆分为多个 11 比特的块。
每个 11 比特序列都会被转换为一个十进制数字(0-2047)。
BIP-39 词表恰好包含 2048 个单词(英语、西班牙语、中文等)。
然后使用这些数字在词表中找到对应的单词。

结果: 现在我们得到了一个安全且便于人类阅读的 12 个单词恢复短语!
通过恢复短语,钱包可以生成密钥,用来创建支付地址以及不同的钱包账户。
生成的密钥是确定性的——相同的输入总会产生相同的输出。
钱包种子通过**密钥派生函数(KDF)**从助记词短语推导得到:
这会生成一个 64-byte (512-bit) 的种子。

该种子会被拆分为两个 32-byte 序列:
它们用于 分层确定性(HD)钱包 中的子密钥派生。
在 Zcash 中,查看权限或花费权限可以针对子树独立委托,而不会危及主种子。
ZIP-32 定义了针对 Zcash 隐私特性进行适配的分层确定性密钥生成标准。
从 Expanded Spending Key 可以派生出:
不同的派生机制会生成适合提供给付款发送者的外部地址,可用于屏蔽池(Sapling 与 Orchard)之间。

Zcash 还支持内部地址,用于自动屏蔽等钱包操作。
原始线程来自 ZecHub (@ZecHub)
https://x.com/ZecHub/status/1624125037945946145
本页面根据原始“Zero to Zero Knowledge”线程整理编写,用于 ZecHub wiki。