Skip to content

BTC #5:Transaction(下)— Taproot 与 Babylon

Taproot 是比特币 2021 年的重大升级。Babylon 则展示了如何用比特币脚本实现 PoS 质押。


Taproot 升级

Taproot 由三个 BIP 组成,是比特币自 SegWit 以来最重要的升级。

graph TB
    TAP["🌳 Taproot 升级<br/>2021年11月激活"]

    TAP --> BIP340["BIP340<br/>Schnorr 签名"]
    TAP --> BIP341["BIP341<br/>Taproot 输出"]
    TAP --> BIP342["BIP342<br/>Tapscript"]

    BIP340 --> S1["比 ECDSA 更高效"]
    BIP340 --> S2["支持签名聚合<br/>多签看起来和单签一样"]

    BIP341 --> T1["结合 Schnorr + MAST"]
    BIP341 --> T2["默认走密钥路径<br/>更快更便宜"]

    BIP342 --> TS1["更新脚本验证规则"]
    BIP342 --> TS2["为未来升级留空间"]

Schnorr 签名 vs ECDSA

特性ECDSASchnorr
标准广泛使用更简洁的数学证明
签名聚合不支持支持(多签可以合并为单签)
批量验证逐个验证可以批量验证,更快
隐私性多签交易暴露签名数量多签和单签看起来一样

MAST(默克尔化抽象语法树)

MAST 允许将多个花费条件组织成默克尔树,使用时只需揭露实际使用的那个条件:

graph TB
    ROOT["Taproot 输出<br/>公钥 P = 内部公钥 + tweak"]

    ROOT -->|"密钥路径<br/>Key Path"| KP["直接用聚合签名花费<br/>最快、最便宜、最隐私"]

    ROOT -->|"脚本路径<br/>Script Path"| MAST["MAST 根"]

    MAST --> L["脚本A<br/>2-of-3 多签"]
    MAST --> R["哈希节点"]
    R --> RL["脚本B<br/>时间锁"]
    R --> RR["脚本C<br/>哈希锁"]

    style KP fill:#c8e6c9

优势

  • 大部分情况走密钥路径,与普通交易无异
  • 只在需要时才揭露脚本条件
  • 未使用的条件完全不暴露,保护隐私

Babylon 协议

Babylon 是一个比特币质押协议,允许 BTC 持有者在不离开比特币网络的情况下参与 PoS 链的质押。

工作原理

sequenceDiagram
    participant User as BTC 持有者
    participant BTC as 比特币网络
    participant Babylon as Babylon 协议
    participant PoS as PoS 链

    User->>BTC: 构建 Taproot 质押交易
    Note over BTC: BTC 被锁定在<br/>Taproot 脚本中
    BTC-->>Babylon: 质押证明上链
    Babylon->>PoS: 提供安全保障
    PoS-->>User: 质押奖励

    Note over User,BTC: 解锁条件:<br/>1. 正常解锁(时间锁到期)<br/>2. 提前解锁(双方签名)<br/>3. 惩罚(作恶则资金销毁)

技术实现

Babylon 利用 Taproot 脚本实现条件锁定:

  • 质押:BTC 发送到特定的 Taproot 地址,脚本定义了多种花费路径
  • 解锁:通过时间锁或多签方式解锁
  • 惩罚(Slashing):如果验证者作恶,通过提取私钥的方式销毁质押的 BTC

关键点:BTC 始终留在比特币链上,不需要跨链桥,消除了桥接风险。

学习资源