前言

Taproot Assets(原名 Taro)是 Lightning Labs 推出的比特币原生资产协议,它利用 Taproot 输出和 Merkle 树结构,在不修改比特币协议的前提下实现自定义资产的发行、转移和验证。

本文记录了从零开始搭建 Taproot Assets 实验环境,成功发行第一个测试资产的完整过程。同时基于这段时间对 RGB 协议的不断实验和研究,深入对比了两种比特币原生资产协议的设计理念、技术实现和使用体验差异,为开发者选择合适的技术方案提供参考。

重要提示: 本文是开发者实验教程,不适合大规模资产发行。工具链仍在快速演进中。

技术背景

Bitcoin 原生资产协议概览

与传统方案不同,比特币生态的资产协议采用了不同的设计哲学:

┌─────────────────┬─────────────────┬──────────────────────┐
│     ERC-20      │       RGB       │   Taproot Assets     │
├─────────────────┼─────────────────┼──────────────────────┤
│ 链上:合约状态   │ 链上:极小承诺   │ 链上:资产定义+承诺   │
│ 执行:链上计算   │ 执行:客户端     │ 执行:混合验证        │
│ 费用:gas费     │ 费用:Bitcoin tx │ 费用:Bitcoin tx     │
│ 扩展:L2解决    │ 扩展:客户端     │ 扩展:Lightning集成   │
└─────────────────┴─────────────────┴──────────────────────┘

核心原理

本质上就是把资产承诺加入 Taproot tweak,控制 UTXO 即控制资产。

关键公式:tweaked_pubkey = internal_pubkey + H_TapTweak(internal_pubkey || asset_commitment) * G

这是对标准 Taproot 地址生成的扩展应用,将资产信息嵌入到地址推导过程中。

环境搭建

系统要求

核心组件架构

Bitcoin 层: Bitcoin Core (bitcoind) → 区块链数据和交易广播
Lightning 层: LND + lncli → 钱包管理和 Lightning 功能
资产层: tapd + tapcli → 资产发行和转移
集成层: LiT → 一体化解决方案(可选)