原文标题:《BIP-327 MuSig2 in Four Applications: Inscription, Bitcoin Restaking, BitVM Co-sign, and Digital Asset Custody》
原文作者:Qin Wang (CSIRO), Cynic (Chakra), mutourend (Bitlayer), lynndell (Bitlayer)
图 1. BRC20 代币的关键步骤
这里,部署和铸造操作只需要一次交易,而转移 BRC20 代币(即 transfer 操作)需要两次交易。第一个交易中,向发送者进行一次基本要求的链上刻录,这与铸造的操作非常相似。第二个交易中,另一笔交易完成了从发送者到接收者的转移。然后,链下索引器更新状态。如果条件满足,索引器会从发送者的余额中扣除相应金额,并记入接收者的余额。
我们可以观察到,Schnorr 签名已用于比特币的 Taproot 升级中,提升了比特币交易的隐私性和效率。升级版本的 Schnorr 多重签名(MuSig2)可以非常直观且自然的合并入 Taproot 升级的部分,并自然衔接如铭文和类似 BRC20 的创建过程中。新升级的铭文可以在现有基础上提高签名和验签速率,并且进一步减少在铸造过程中所需要的交易费。
另外一个应用来自于链下索引器部分。现行的索引器本质是链外验证者,不同的服务提供商提供各自的索引器更新服务。这里引起的风险来源于不可信,正如众多的侧链和 Rollup 服务提供商一样,用户无法对相对管理中心化的服务提供商进行信任。即使这些索引器并不存贮用户的天然资金,但是错误报价或延迟报价将导致用户交易失败。MuSig2 提供了一种多签的思路。可以引入相对分散并且大量的验证者共同维护相同的索引器,每次在特定的节点进行共同验证打点签名,类似于 checkpoint 机制。用户起码可以信任在打点前的索引器诚实且可信地提交了链上铭文和交易流。这样,MuSig2 为链下索引器提供了必要的安全性,从而提升整体铭文生态的可靠性。
比特币质押
与以太坊等 PoS 链有原生的质押机制不同,比特币是由 PoW 共识机制维护的区块链,需要通过额外的机制实现质押功能。当前,最广为人知的是 Babylon 提出的比特币质押方案。
在 Babylon 质押机制中,用户通过 Babylon 定义的 BTC 质押脚本完成质押,称为质押交易,产生质押输出。质押输出是一个 Taproot 输出,内部密钥通过设置为 NUMS 点禁用,有三条可用的脚本路径,实现质押功能。分别是:
· 时间锁路径:实现质押的锁仓功能;
· 解质押路径:实现提前结束质押功能;
· 罚没路径:实现作恶时系统的惩罚功能。
比特币质押机制为比特币持有者提供了一个较为安全的生息方案,提升了比特币资产的效用。但是,这种质押在一定程度上损害了比特币的流动性。但是,以太坊质押机制的多年探索为比特币质押探明了道路,可以使用流动性质押解决该问题。
流动性质押引入了新的角色,即资产的托管方。用户将资产存入流动性质押项目的托管地址,获得对应比例的流动性质押代币(Liquid Staking Token, LST)。流动性质押项目将收集到的资产进行原生质押,LST 的持有者自动分享质押收益。此外,LST 持有者可以直接在二级市场交易 LST,或燃烧 LST 以换回原生的质押资产。
以太坊上的流动性质押可以通过智能合约实现。但是,比特币缺乏实现流动性质押所需的合约能力,且 UTXO 架构也无法较好地兼容 LST 任意面额提款功能。当前,由于 OP_CAT 等契约操作码未上线,无法有效地对比特币交易输出的未来花费方式实施限制。因此,需要 MuSig2 来实现比特币的流动性质押。
如图 2 所示,在 Chakra 流动性质押中,用户首先将比特币转入由 MuSig2 支持的多签地址。该事件被索引器捕获,并调用链上合约,为用户铸造 ckrBTC。多签地址中的比特币会质押进 Babylon。用户在持有 ckrBTC 的同时,也能够持续获得 Babylon 质押的收益。当用户想要结束质押,可以销毁 ckrBTC,索引器检测到销毁事件后,进行解质押操作,将比特币返还给用户。此外,用户也可以直接在二级市场交易,将 ckrBTC 换成比特币。
图 2. Chakra 流动性质押流程
与自托管质押相比,MuSig2 支持的流动性质押,引入多个参与方维护数字资产托管的安全性,且同时释放了质押比特币的流动性,让 LST 能够在 BTCFi 中发挥更大的作用,从而为用户提供更多收益。
BitVM Cosign
Robin Linus 2023 年 10 月发布BitVM: Compute Anything on Bitcoin 白皮书,使用 Lamport 一次性签名实现了有状态的比特币脚本。该系统可在不引入新操作码等软分叉的情况下,通过乐观挑战机制实现图灵完备的比特币合约。该系统仅使用 OP_BOOLAND 和 OP_NOT 操作码构建的 NAND 门二进制电路,展示了在比特币上验证任意计算的挑战机制,但是程序编译出的电路规模庞大,几乎不可实际应用。随后,BitVM1使用 RISC-V 指令表达程序,充分利用比特币系统中所有的操作码,以提高效率。
BitVM2对 BitVM1 进行了两方面扩展。(1)BitVM1 中的挑战者是参与初始设置的联盟成员,而 BitVM2 中的挑战者是任意参与方。因此,BitVM1 中联盟成员有串谋作恶的风险,而 BitVM2 的挑战者是 Permissionless 的,联盟成员无法串谋作恶。(2)BitVM1 需要多轮挑战,周期较长,而 BitVM2 充分利用了 ZK Proof 的简洁性以及 Taptree 的脚本表达能力,挑战周期仅 2 轮,将 peg-in 时所需预签的交易数由约 100 笔降低到了约 10 笔。具体而言,BitVM1 需要使用二分法,经过多轮交互,找到程序中错误执行的 RISC-V 指令;而 BitVM2 验证的不再是程序自身,而是验证程序执行正确的 ZK proof,BitVM2 会把 ZK 验证算法切成多个子函数,每个子函数对应一个 Tapleaf。当被挑战时,Operator 需揭露各个子函数的值,若有不一致之处,任何人都可发起 Disprove 交易对其进行惩罚。
如图 3 所示,BitVM2 需要大量的 n-of-n 预签。由于用户不知道哪个 Operator 会为其垫付,所以在发起 Peg-in 交易之前,需要 BitVM 联盟对 Take1, Take2, Assert, Disprove 和 Burn 这 5 个交易进行 n-of-n 预签。用户只有确认各子孙交易预签完毕后,才会将资金真正通过 Peg-in 交易存入到 n-of-n 多签控制地址中。当用户想要出金时,可发起 Peg-out 交易,其中一个 Operator 为其垫付,则能完成出金。
Operator 需要质押 2 个 BTC,才可以报销垫付的比特币。如果无人挑战,则 Operator 可通过 Take1 交易成功报销。如果 Operator 作恶,则任何人众筹 1BTC 后即可发起挑战。面对挑战,如果 Operator 不响应,则执行 Burn 交易,即销毁 1.9BTC,且剩余的 0.1BTC 给发起 Burn 交易中的接收地址;如果 Operator 响应,即执行 Assert 交易。
· 情况 1:某个子函数值揭露不一致,则任何人可发起 Disprove 交易,即销毁 1BTC,且 1BTC 给发起 Disprove 交易中的接收地址。
· 情况 2:子函数值揭露一致,则 2 周后,Operator 可通过 Take2 交易成功报销。
图 3. BitVM 2 流程
在 BitVM2 系统中,需要 BitVM 联盟对 Take1, Take2, Assert, Disprove 和 Burn 这 5 个交易进行 n-of-n 预签。BitVM 信任假设为 1-of-n,其中 n 值越大,则信任假设越低。但是,如此庞大规模的多签需要极高的手续费,导致在比特币上几乎不可行。MuSig2 能够将大量的多签聚合为一个签名,将手续费降到最低,且理论上支持的 n 值无限大,具体取决于实际可协调的 cosigners 数量,如 n 值为 1000 甚至更大。
BitVM 部署时,为防止 BitVM 联盟通过 n-of-n 多签串谋花费,在 Peg-in 设置完成之后,要求 n 个 cosigners 中至少有一个 cosigner 删除私钥。这使得 BitVM 桥中的资金只能通过 Operator 诚实垫付后,使用报销交易进行花费。因此,提高了 BitVM 桥的安全性。
数字资产托管
聚合签名允许多个签名组合成一个签名,从而简化验证过程并提高效率。如图 4 所示,Alice 使用完整私钥 KeyA 生成签名 SigA,Bob 使用完整私钥 KeyB 生成完整签名 SigB。然后将 SigA 与 SigB 聚合,生成聚合签名 AggSig。这种方式不仅确保了每个参与者的独立性和责任,还增强了整体系统的安全性,因为需要双方的参与才能进行任何授权操作。通过这种协作,Alice 和 Bob 能够实现更安全、更高效的数字资产管理,防止单点故障和恶意操作,同时简化了交易的复杂性和验证成本。
另一方面,Alice 使用门限签名,使用分布式设备生成和管理数字签名,而任何单个设备无法拥有完全的签名能力。具体而言,门限签名方案将私钥分割成若干片,每个设备存储一片私钥。当且仅当一定数量的设备(即达到门限值)合作时,才能生成有效的签名。该机制极大地提升了数字资产的安全性,因为即使部分私钥分片泄露,攻击者仍然无法生成有效的签名。此外,门限签名还能防止单点故障,确保系统的鲁棒性和持续性。因此,门限签名为分布式管理数字资产提供了高效、安全的解决方案。
图 4. 聚合签名,门限签名
当 Alice 与 Bob 均使用门限签名进行各自的数字资产进行管控,且需要使用聚合签名(MuSig2)对某个交易进行多重签名,如上述铭文、比特币质押、BitVM co-sign 等应用。该情况下,需要将聚合签名与门限签名结合,实现一鱼多吃。
图 5. 聚合签名与门限签名耦合
如图 5 所示,当 Alice 与 Bob 使用门限签名进行数字资产托管,则完整私钥 KeyA 与 KeyB 均不出现,而仅出现对应的私钥分片,分别为 (ShareA1, ShareA2, ShareA3) 和 (ShareB1, ShareB2, ShareB3)。此时,基于私钥分片 (ShareA1, ShareA2, ShareA3) 和 (ShareB1, ShareB2, ShareB3) 分别运行门限签名,分别生成签名 SigA 和签名 SigB。然后将签名 SigA 与签名 SigB 聚合,生成聚合签名 AggSig。整个过程中,完整私钥 KeyA 和 KeyB 不出现。因此,实现门限签名与聚合签名耦合,同时满足多个应用需求。
参考资料
2021. MuSig2: Simple Two-Round Schnorr Multi-Signatures
2022. BIP-327: MuSig2 for BIP340-compatible Multi-Signatures
2020. BIP-340: Schnorr Signatures for secp256k1
2023. Forgery with a fake key in MuSig2
2023. BitVM whitepaper
2024. BitVM 2: Permissionless Verification on Bitcoin
2024. Chakra x Babylon Staking Testnet: Technical Overview & Security Analysis
「原文来源」