该文档描述了用于验证 Taproot Asset (资产)转移的虚拟机执行环境,该环境使用 asset_script_version 版本 1。
asset_script_version
本文档描述了在 Taproot Asset 状态转换交易的“部分签名比特币交易 (PSBT, BIP-0174)”格式中使用的自定义字段。定义了用于表示虚拟资产交易的新字段,并解释了如何将一个或多个虚拟资产交易映射并提交到单个比特币链上“锚”交易中。
该文档定义了一种扁平文件证明格式,作为打包 Taproot Asset 证明的标准方法。该证明格式本身是给定资产先前谱系的仅附加日志。证明锚定在给定资产的初始“创世输出”处。单个 Taproot Asset 状态转换的证明包括比特币默克尔证明、Taproot Asset 默克尔和稀疏默克尔树 (MS-SMT) 包含证明,最后是一组有效的状态转换见证人。
该文档提出了 Taproot Asset Universe 的概念,旨在为资产的用户/持有者提供一种简便的方法来引导其对给定创世点的识别,以此作为资产的根。Universe 是一个 MS-SMT,它索引到用于跟踪资产移动/转移的已花费输出集合中。Universe 可以包含资产的创世输出集合、多个资产,跟踪单个交易,并用作聚合层。
该文档描述了TAP,一种构建在比特币区块链之上的Taproot原生资产协议。Taproot Assets允许在比特币上表示任意资产,而不会使基础链膨胀。该协议设计使得与Taproot Assets交互的交易与普通交易无区别。Taproot Assets 通过一个嵌套的资产脚本树扩展了基础 Taproot 脚本树,资产脚本树提交到有效的见证作为结构化元数据,允许跨交易图移动资产的证明。
本文档描述了将单个 Taproot Asset 发送到熟悉的 bech32m 地址的方法,以及将该地址映射到有效的 Taproot Asset 脚本树的方法,该脚本树可以包含在广播事务中以完成转移。一旦交易被广播,接收者可以使用已确认交易的先前输出点在他们选择的 Universe 中查找完整的资产证明。
bech32m
本文档描述了一种Merkle Sum Sparse Merkle Tree (MS-SMT)数据结构,它是稀疏Merkle Tree的增强版本,包含一个在内部分支散列操作期间组合的sum值。这种树允许有效的非包含证明,同时也支持无效的Merkle Sum承诺的有效故障证明。MS-SMT 用于 Taproot 资产协议中,以实现资产所有权转移和多资产交换的验证。