Lezioni online Bitcoin-only
This project is maintained by valerio-vaccaro
Officine Bitcoin Bitcoin-only 课程 本项目由 valerio-vaccaro 维护
🇨🇳 中文 🇬🇧 English 🇪🇸 Español 🇵🇹 Português 🇷🇺 Русский 🇫🇷 Français 🇩🇪 Deutsch 🇮🇹 Italiano 🇭🇺 Magyar 🏳️ Milanés 🏳️ Veneto
描述符是一个相对较新的概念,目前还不算普及,但它们很适合用来描述 Bitcoin wallet 的结构。描述符是可读的字符串(包含字母数字字符、十六进制字符,以及括号等少量符号),用于以清晰且标准化的方式表示一个 wallet,也就是计算余额、接收和花费 Bitcoin 所需的一组公钥和私钥。
为了说明描述符的背景,讲者回顾了 wallets 的演进:
仅有 mnemonic 还不够,尤其是对于 multisig(需要多个签名)这类复杂 wallets,或者带有高级 scripts 的 wallets(例如 timelock 或继承条件)。有些 wallets 会尝试所有可能的派生路径来寻找资金,而另一些 wallets(例如 Electrum)则要求指定 wallet 类型。此外,在 multisig 中,还需要其他参与者的公钥,这进一步增加了备份的复杂度。
描述符的出现是为了解决这些限制,为 wallet 结构提供完整而灵活的描述。它们不会取代 mnemonic,而是对其进行补充,包括:
pk([fingerprint/derivation]xpub...),其中:
sortedmulti(2, xpub1, xpub2, xpub3),它描述一个 2-of-3 wallet,并对密钥排序以保持一致性。一个有意思的例子是 Taproot (tr) 的描述符,它支持两种花费模式:
并非所有 wallets 都完全支持描述符。例如,Bitcoin Core 只实现了其中一个子集,并且需要为地址和 change 分别使用两个描述符。Sparrow 或 Specter 等软件提供了更好的支持,允许导入/导出描述符并可视化其结构。
可以使用以下工具进行实验:
本课程是为 Satoshi Spritz Connect 创建的。