本文介绍了BIP-327 MuSig2多签协议在当下最火四个领域(Inscription, Restaking, BitVM co-sign, Custody)的应用。
<!--EndFragment-->
原文标题:BIP-327 MuSig2 in Four Applications: Inscription, Bitcoin Restaking, BitVM Co-sign, and Digital Asset Custody 原文链接:https://blog.bitlayer.org/BIP-327_MuSig2_in_Four_Applications/ 作者:Qin Wang (CSIRO), Cynic (Chakra), mutourend (Bitlayer), lynndell (Bitlayer)
本文介绍了BIP-327 MuSig2多签协议在当下最火四个领域(Inscription, Restaking, BitVM co-sign, Custody)的应用。
现有的比特币交易使用CheckMultiSig验证n-of-n多重签名,导致需要在比特币区块链上发布与de 交易中的签名者数量呈比例的签名和公钥。这种方法不仅揭示了交易参与者的总数,而且交易费会随着签名者数量的增加而增加。为解决该问题,在2018年,研究人员提出Schnorr多签协议:Musig。但是,该协议需要签名者之间进行三轮通信,用户体验相对较差,导致该协议未引起广泛关注与应用。
在2020年,随着MuSig2的推出,使得交互式签名取得了重大进展:将三轮通信降低为两轮,为用户带来更好的体验。此外,MuSig2允许一组用户共同生成单个签名和公钥来验证交易,提高了隐私性,并显著降低了交易手续费。经过三年多的不断完善,Schnorr多重签名(MuSig2)已经在钱包和设备上实现。
MuSig2相关提案如下:
Bitlayer与Chakra研究组发现,随着铭文、比特币质押、BitVM和数字资产托管的繁荣,BIP-327 MuSig2极具应用潜力,理论上支持无限数量的签名者参与交易,可节约链上空间、降低手续费、提高安全性、隐私性和可操作性等。
铭文:铭文是将定制内容写入比特币的聪(satoshi)进行铭刻。由于其能够直接在区块链上创建不可篡改和可验证的信息记录,使得这一概念得到了广泛关注。铭文可以从简单的文本到复杂的数据结构,提供了一种可靠的方法来认证数字资产的真实性和出处。区块链铭文的永久性和安全性使其在数字身份验证、所有权证明和关键信息的时间戳等应用中有较高的应用价值。对于铭文,MuSig2能够提高签名和验签速率,减少在铸造过程中所需要的交易费,并为链下索引器提供了必要的安全性,从而提升整体铭文生态的可靠性。
比特币质押:比特币持有者重新分配其质押资产,从而支持各种区块链协议或去中心化金融(DeFi)应用的机制。这个过程允许比特币在区块链生态系统中发挥多种作用,增强其实用性和收益潜力。通过参与重质押,用户可以为其他网络的安全性和功能做出贡献,同时保持其比特币持有量。这种创新方法利用了比特币的流动性和安全性,推动了更为集成和高效的区块链经济。由于比特币缺乏实现流动性质押所需的合约能力,且UTXO架构也无法较好地兼容质押代币任意面额提款功能。因此,需要 MuSig2 实现比特币的流动性质押。
BitVM:在比特币网络上实现智能合约功能的框架。与原生支持复杂智能合约的以太坊虚拟机(EVM)不同,BitVM旨在扩展比特币的脚本功能,以便进行更复杂的可编程交易。这一发展为比特币的去中心化应用(dApps)和复杂金融应用开辟了新的道路,突破了其简单脚本语言的限制。BitVM的引入,标志着比特币实用性的重要进化,在比特币和其他更灵活的智能合约平台之间架起桥梁。在不需要软分叉的情况下,BitVM需要预签,从而实现1-of-n信任假设以及permissionless挑战功能。为让信任假设尽可能小,需让n值尽可能大。但是,现有CheckMultiSig脚本验证大规模多签,需要极高的交易费,导致不可行。MuSig2可让n值尽可能大,使得n的取值不受限于比特币区块以及stack size限制,而取决于实际可协调的cosigner数量限制,且费用低。
数字资产托管:使用区块链安全存储和管理数字资产,如加密货币、NFT(非同质化代币)和其他代币化资产。这涉及保护私钥、确保访问控制以及提供网络威胁的防护。门限签名在数字资产安全管理中起着关键作用,它通过分布式的方式实现加密密钥的管理。这种技术将私钥分成多个份额,并分发给不同的参与者。要签署交易或访问数字资产,必须将预定门限数量的份额结合起来,确保没有单一方可以单方面控制或滥用资产。这通过减轻密钥泄露、内部威胁和单点故障的风险来增强安全性。此外,门限签名为数字资产管理提供了更稳健和灵活的治理模型,允许在去中心化组织和多方系统中进行安全的协作和决策。将门限签名与MuSig2结合,能够同时满足铭文、比特币质押、BitVM co-sign、数字资产托管等应用需求,实现一鱼四吃。
初始化: 群$\mathbb{G}$生成元为$G$,阶为$p$。抗碰撞哈希函数$\mathsf{H{agg},H{non},H_{sig}}$将任意长数据${0,1}^*$映射为随机整数$\mathbb{Z}_p$。
密钥生成: $n$个签名方,每个签名方$i$选择一个随机数$x_i\in \mathbb{Z}_p$作为私钥,计算对应的公钥 $$ X_i=x_i\cdot G. $$
公钥聚合: 令$L={X_1,...,X_n}$为公钥集合。定义 $\mathsf{KeyAggCoef}(L,Xi)=\mathsf{H{agg}}(L,Xi),$ 则聚合公钥为 $$ \tilde{X}=\sum\limits{i = 1}^n {(a_i\cdot X_i)}. $$ 其中,$a_i=\mathsf{KeyAggCoef}(L,X_i)$聚合系数。
签名第1轮:
承诺: 第$i$个签名方选择$\upsilon$个随机数$r_{i,j}\in \mathbb{Z}p, j\in{1,...,\upsilon}$,计算并输出$\upsilon$个承诺 $$ R{i,j}:=r{i,j}\cdot G, j\in{1,...,\upsilon}. $$ 承诺聚合: 聚合器接收到承诺为$(R{1,1},...R{1,\upsilon}),...,(R{n,1},...R_{n,\upsilon})$,累加 $$ Rj=\sum\limits{i = 1}^n {R_{i,j}} ,j\in{1,...,\upsilon}. $$ 签名第2轮:
签名: 签名方$i$输入聚合系数$a_i$、聚合承诺$(R1,...R\upsilon)$、聚合公钥$\tilde{X}$和消息$m$,计算 $$ b:={{H}{non}}(\tilde{X},({{R}{1}},...{{R}{\upsilon }}),m) \ R:=\sum\limits{j=1}^{\upsilon }{({{b}^{j-1}}\cdot {{R}{j}})} \ c:={{H}{sig}}(\tilde{X},R,m) \ {{s}{i}}:=c{{a}{i}}{{x}{i}}+\sum\limits{j=1}^{\upsilon }{({{r}_{i,j}}{{b}^{j-1}})}\,\bmod \,p \ $$ 签名聚合: 将$s_1,...,sn$累加 $$ s:=\sum\limits{i=1}^{n}{s_i}\mod p, $$ 则聚合签名为$(R,s)$。
验证: 验证方输入消息$m$、聚合公钥$\tilde{X}$和签名$(R,s)$,计算 $$ c:=\mathsf{H{sig}}(\tilde{X},R,m). $$ 然后验证以下等式 $$ s\cdot G=R+c\cdot\tilde{X}. $$ 公式推导如下: $$ s\cdot G=(\sum\limits{i=1}^{n}{si})\cdot G =\left(\sum\limits{i=1}^{n}{\left(ca_ixi+\sum\limits{j=1}^{\upsilon}{(r_{i,j}b^{j-1})}\right)}\right)\cdot G =R+c\cdot\tilde{X}. $$
近期,比特币核心贡献者 Andy Chow 提出几个BIP提案:
这是MuSig2被采纳和钱包集成的必要步骤。这些 BIP 和规范是集成 MuSig2 钱包所需要的全部内容。此外,许多钱包开发者和协作托管解决方案(见Getting Taproot ready for multisig)长期以来一直要求对 MuSig2 协议进行标准化。现在,随着正式的 BIP 到位,社区可以自行审查、提供反馈并帮助提高认识。
铭文最典型的应用就是构造BRC20,一种可以被看做为比特币上的NFT通证。其核心设计是通过Ordinals协议将数据刻录在每个聪上,并实现简单操作。总的来说,这里有三个步骤。
第一步,追踪每个聪的唯一性。由于聪是比特币的最小且不可分割的单位,且比特币总量为2100万,可用聪的上限为2.1千万亿。在比特币中的每个聪是一个独特的存在,具备唯一性,这正是在比特币上建立NFT的底层逻辑。这里每个聪都都将被赋予一个顺向序列号(通过Ordinals协议),并以先进先出的方式管理,以确保精确追踪和有序处理。 如图,我们看到每个聪都是完整顺序序列的一部分,示例中显示的是聪#1、#11和#31。
第二步,利用JSON格式和Taproot脚本将消息嵌入聪中。这些消息存储在SegWit字段中,使得过程高效且安全。脚本将JSON嵌入聪中,即OP字段内。OP_IF开始条件判断,而嵌入的内容将安排在OP_FALSE字段后,该条件确保后续内容不会被执行,仅作存储。因此,刚嵌入的JSON完整的保存在了这枚聪上。图1中显示的JSON嵌入内容包含部署BRC20代币的关键参数。它指定了协议为“brc-20”,操作类型为“部署”,代币符号为“ordi”,最大供应量定为2100万,铸造限额为1000。这里,支持此过程的关键BIP包括 Schnorr Signature (BIP340)、Taproot (BIP314) 和 Tapscript (BIP342) 以及 SegWit (BIP141)。
第三步,识别BRC20代币涉及由索引器管理的链下状态。这些索引器根据历史交易解析并解释BRC20代币的状态。它们解析链上数据,检查代币状态,并更新余额,确保信息是最新的。此外,轻客户端整合了这些信息,使用户能无缝识别和管理他们的BRC20代币。 <!--StartFragment-->
<!--EndFragment-->
图 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 换成比特币。 <!--StartFragment-->
<!--EndFragment-->
图 2. Chakra流动性质押流程
与自托管质押相比,MuSig2 支持的流动性质押,引入多个参与方维护数字资产托管的安全性,且同时释放了质押比特币的流动性,让 LST 能够在 BTCFi 中发挥更大的作用,从而为用户提供更多收益。
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交易。
<!--StartFragment-->
<!--EndFragment-->
图 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使用门限签名,使用分布式设备生成和管理数字签名,而任何单个设备无法拥有完全的签名能力。具体而言,门限签名方案将私钥分割成若干片,每个设备存储一片私钥。当且仅当一定数量的设备(即达到门限值)合作时,才能生成有效的签名。该机制极大地提升了数字资产的安全性,因为即使部分私钥分片泄露,攻击者仍然无法生成有效的签名。此外,门限签名还能防止单点故障,确保系统的鲁棒性和持续性。因此,门限签名为分布式管理数字资产提供了高效、安全的解决方案。 <!--StartFragment-->
<!--EndFragment-->
图 4. 聚合签名,门限签名
当Alice与Bob均使用门限签名进行各自的数字资产进行管控,且需要使用聚合签名(MuSig2)对某个交易进行多重签名,如上述铭文、比特币质押、BitVM co-sign等应用。该情况下,需要将聚合签名与门限签名结合,实现一鱼多吃。
<!--StartFragment-->
<!--EndFragment-->
图 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不出现。因此,实现门限签名与聚合签名耦合,同时满足多个应用需求。
参考资料
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!