本文档详细介绍了比特币核心软件中使用的输出描述符语言,包括其特性、例子、组成部分以及各种表达式的解释。输出描述符是一种简单的语言,用于描述输出脚本的集合,并提供了一些函数来描述不同类型的脚本。
本文是 Kevin Loaec 在 Advancing Bitcoin 2023 大会上的演讲稿,主要讨论了比特币中时间锁的各种应用场景,以及如何通过 Miniscript 等工具,提升比特币钱包的安全性和灵活性,例如:无需备份主要密钥、社交恢复、反向出口等。
本文提出了一种通过盲化多签名装置中的 BIP39 种子词(更具体地说是拓展公钥 xpub)来增强隐私的方案。该方案使用一个大且随机生成的 BIP32 路径来遮掩种子词,使得即使攻击者获取了种子词,也无法得知其用途和所保护的资金信息。该方案与现有的多签名硬件签名器和协调器软件兼容,旨在提高多签名装置的安全性。
本文介绍了Miniscript,这是一种以结构化的方式表示比特币脚本的编程语言,旨在实现高效分析、组合和通用签名等功能。Miniscript通过将复杂的脚本转化为人类可读的格式,并提供在线编译器优化脚本,从而简化了比特币脚本的构造和使用,提高了互操作性,并为诸如储备金证明、花费方式组合和动态联盟等应用场景提供了解决方案。
本文介绍了输出描述符(也称钱包描述符)的概念,它是一种人类可读的字符串,代表输出脚本以及解决该脚本所需的信息。描述符明确显示公钥(包括派生公钥的推导路径)和脚本,便于钱包导入,避免传统导入机制可能导致的地址混淆问题。描述符钱包则使用这些描述符来创建地址和签名交易。