MuSig2签名会话中的状态最小化

互联网 阅读 361 2024-04-25 17:36:58

作者:salvatoshi

来源:https://delvingbitcoin.org/t/state-minimization-in-musig2-signing-sessions/626

BIP-0327 以巨大篇幅讨论了在运行 MuSig2 签名会话时保存一些状态的必要性。然而,在 BIP-0327 中, “签名会话” 仅仅是 “产生一个签名的过程”。

在一个钱包的标准签名流程中,将 “会话 ”理解为完整签名一笔交易的过程,会更加合理。有可能一笔交易的所有输入,都会通过同一次 “descriptor containing musig()” 来获得,而签名者会一次性为所有输入产生 nonce 公开值(pubnonce)/签名。

因此,在 BIP-0327 流程中,你需要预期同一时间 每个输入都会激活至少一个 MuSig2 会话。在考虑硬件签名设备的支持时,这就在一定程度上带来了挑战:这需要为无法限制数量的签名会话持久保存状态,比如,一个钱包要接收大量小额 UTXO 的时候。可持久保存信息的存储空间,对嵌入式的硬件签名设备来说通常是稀缺资源;而草率的方法很可能就是根据硬件本身的限制,给交易的输入数量施加一个上限。

在这篇文章中,我们草拟了一种方法,兼容于且建基于 BIP-0327,旨在定义一种只需在设备上持久化存储少量状态的 PSBT 层面的会话。这一方法通过为每一个单独的 MuSig2 会话同步生成必要的状态,将花费自 MuSig 钱包的 PSBT 的签名流程补充完整了。

muSig2-red-bitcoin-privacidad.jpg

使用同步随机性的签名流程

BIP-0327 状态的同步生成

本节将介绍本方法的核心思想,而下一节会在签名设备的语境下提供更精确的描述。

在BIP-0327中,签名设备需要保存的内部状态本质上是secnonce(nonce秘密值),该值又是让一个随机数rand’进入NonceGen算法计算出来的,并且可以选择加入其它依赖于被签名交易的参数。

而本方法的核心思想是,计算出一个全局的随机数rand_root;然后,为第i个输入和“wallet policy”所定义的、设备需要用于签名的第j个musig()密钥定义出用在NonceGen中的*rand’*:

Snipaste_2024-04-25_17-43-40.png

在拼接过程中,为了避免混淆,i和j使用固定长度的编码。这个数值将在NonceGen算法中作为对应的输入/公钥对的rand’值。

参数j使我们可以处理包含了涉及相关签名设备多于一个musig()公钥表达式的wallet policy。

签名流程的细节

本节介绍的是PSBT层面会话的处理,它将在BIP-0327的默认签名流程基础上插入。

我们假设签名设备要处理一个PSBT层面的会话;这个流程可以推广到处理多个并行的PSBT层面会话,每个会话都会计算和存储一个单独的rand_root。

在下列段落中,“会话”一词总是指代PSBT层面的签名会话;一个会话包含自身的rand_root,可能还包含签名设备希望在处理签名过程中保存的其它辅助数据。

第一阶段:nonce公开值的生成

一个PSBT发送给一个签名设备,该PSBT不包含任何nonce公开值。

  • 如果已经存在一个会话,将在持久化内存中删除旧会话。

  • 在易失性内存中创建一个新会话。

      设备产生一个刷新的随机数randroot,并保存在当前会话中。

      设备为第i个输入和第j个公钥生成随机性:randi,j=SHA256(randroot||i||j)。

  • 根据NonceGen算法计算每一个(secnonce,pubnonce)。

       在完成阶段(所有的pubnonce都已返回之后),会话的秘密值randroot复制到持久化内存。

第二阶段:碎片签名的生成

一个PSBT,包含了所有的nonce公开值,发送到设备。

  • 会话的一个复制本存储到易失性内存,然后该会话从持久化内存中删除。

       对每一个输入/musig公钥对(i,j):

    使用上述的同步随机性算法randi,j重新计算nonce公开值/nonce秘密值

  • 验证包含在PSBT中的nonce公开值与重新同步计算出的值相匹配。

  • 根据BIP-0327继续签名流程,生成签名碎片。

安全考量

避免状态复用

仅在第一阶段的结尾存储会话到持久化内存中,并且在第二阶段开始之前就删除它,可以简化审计,并确保不会出现跨签名会话的状态复用。

同步随机性的安全性

同步生成randi,j并不是问题,因为randroot的值是秘密的,而且不会离开设备。这保证了不同的i和j所生成的数值对攻击者来说是不可预测的。

PSBT的熔融性

如果要给 NonceGen 函数传入可选的参数 ,它们将依赖于 PSBT 中呈现的交易数据。因此,无法保证它们会在下一次到来的 PSBT 中保持不变。

但是,这并不构成一个安全风险,因为这些参数在 NonceGen 函数中只是额外的熵源。恶意的软件钱包无法以可预测的方式影响 nonce 秘密值/公开值。改变任何用在 NonceGen 中的参数都会导致第二节点出错,因为重新计算出的 nonce 公开值 将与 PSBT 中的不一致。

(译者注:即,PSBT 中包含的 nonce 公开值是签名设备在第一阶段中计算出来的;而第二阶段传入的 PSBT 中如果使用了不同的交易数据,设备将根据这些交易数据计算出不同的 nonce 公开值。)

推广到多个 PSBT 签名会话

上述方法假设了,在处理一个会话的时候,不会为包含了 musig() 公钥的一个 wallet policy 的另一个 PSBT 启动签名。

但可以将这种方法推广到任意数量的并行签名会话。每个会话都可以通过哈希(在实用性上)足以唯一定义被签名交易的信息(保证出现在第二阶段的 PSBT 所提供的信息未改变)来计算出一个 会话 id,从而区别每一个会话;举个例子,可以是对 PSBT 所包含的待签名交易的 txid 以及用于签名的 wallet policy 的承诺。

免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:比特币到底是什么?不讲技术的比特币概述 下一篇:田野调查:实现 MuSig2

相关资讯

  • CZ获刑四个月,币安涅槃重生时
    CZ获刑四个月,币安涅槃重生时

    币安创始人CZ因违反反洗钱法被判监禁4个月,但币安顺利过渡,证明其用户资金安全和品牌稳固。CZ已辞去首席执行官职务并缴纳罚款,但被禁止返回阿联酋。法官最终判处CZ4个月监禁,称其收到了161封信件,了解其人品。信件描绘了CZ是一位冒着风险为币安成功的人,也是一位致力于家庭和慈善事业的领导者。币安仍然稳居全球第一大加密货币交易所,保持着用户的信心和资产安全。币安勇于面对监管挑战,积极与监管机构合作,巩固了其在全球加密市场的领导地位。.....

    每日资讯 2024-05-01 06:32 785
  • RootData:2024年Q1Web3行业投资研究报告
    RootData:2024年Q1Web3行业投资研究报告

    2024年Q1,Web3行业融资总额达25.45亿美元,同比增长4.7%,DeFi赛道融资额环比增长超过150%。比特币现货ETF资金流入超过121亿美元,推高比特币价格至历史新高。Q1早期融资项目数量同比增长10.5%,但仍有较多未被验证的技术与解决方案。AI、RWA、LSD、DePIN等板块轮动,用户对于寻找热门投资标的需求更高。Web3投资者注意力主要受知名机构投资、项目TGE事件、空投等因素影响。随着Web3行业吸引更多主流投资者,基于热门人物的交易线索将更受关注。RootData热搜榜单成为加密

    每日资讯 2024-04-30 19:35 1241
  • Vitalik:Binius——对二进制字段的高效证明
    Vitalik:Binius——对二进制字段的高效证明

    本文介绍了2019年时代密码学中的SNARK和STARK技术,特别感谢Justin Drake, Jim Posen, Benjamin Diamond和Radi Cojbasic的反馈。STARK和SNARK是一种证明计算机程序正确性的方法,通过将程序转换成包含多项式的数学方程来实现。STARK使用更大的数字,但不需要可信的设置,并且抗量子。SNARK使用更小的数字,但有限制。Binius是一种新的多项式承诺方案,它使用超立方体来表示计算轨迹,并通过Reed-Solomon编码来防止作弊。Binius是

    每日资讯 2024-04-30 19:34 814
  • EigenLayer官宣空投!但Pendle用户惨遭背刺……
    EigenLayer官宣空投!但Pendle用户惨遭背刺……

    EigenLayer发放空投,总供应量16.7亿枚,分配给社区45%,投资者29.5%,早期贡献者25.5%。但社区不满分配方案,认为项目方占比过高,代币不可转让。空投受IP限制和VPN封锁影响,与积分关联不大,部分用户反映数量少。空投后,EIGEN可能会跟其他项目一样下跌,市场流动性不足。.....

    每日资讯 2024-04-30 19:34 440
  • 市场静候“强心针”:香港虚拟资产现货ETF
    市场静候“强心针”:香港虚拟资产现货ETF

    加密货币市场周末表现疲软,投资者期待香港虚拟资产ETF带来流动性提振,但分析师警告缺乏积极催化剂可能导致币价继续下跌。比特币交易价格持续低于63,000美元,山寨币也遭受重创。本周关注企业财报、就业数据和美联储会议,分析师预计比特币目标为67,500美元以上,但利率不确定性给市场带来压力。比特币ETF流出资金达8360万美元,加密货币市场整体疲软。分析师认为,未来利率不确定性是波动的主要来源,ETF流量逆转也给比特币带来压力。经济学家表示,比特币当前的疲软可能是最后一次震荡,需要反弹至67,500美元以上

    每日资讯 2024-04-30 19:34 485
  • 香港金融史重大时刻:比特币ETF正式登陆港交所
    香港金融史重大时刻:比特币ETF正式登陆港交所

    香港将于4月30日推出比特币和以太坊现货ETF,华夏基金等三家子公司已获批准。此举为零售和机构投资者提供了安全、高效的数字资产配置工具。投资者可通过胜利证券和华赢证券进行实物申购,预计将吸引更多券商参与。ETF市场规模庞大,吸引美国投资者和海外家族办公室。目前只允许合格投资人、机构投资人、零售投资人和符合规定的国际投资人投资。香港证监会已明确将监管加密货币,目前只有比特币和以太坊符合推出ETF的条件。华夏基金香港提供高灵活性的交易选项,支持多种货币交易,费率低于同类型产品。加密货币ETF的推出可能会利好加

    每日资讯 2024-04-30 19:34 1110
  • 跨输入签名聚合如何集成到比特币?
    跨输入签名聚合如何集成到比特币?

    跨输入的签名聚合(cross-input signature aggregation,CISA)是一种可以减少交易体积的技术,有望成为比特币的软分叉。本代码库的目标是为了收集关于签名聚合的思想和主题,以及构想它们集成到比特币中的方式。

    比特币知识 2024-04-30 17:44 724
  • 盲化的两方ECDSA签名
    盲化的两方ECDSA签名

    两方的 ECDSA(椭圆曲线签名算法)协议让两个互不信任的参与者可以安全地生成一个共有的公私钥对,而且既无需知晓另一方的私钥信息,也无需知晓整个私钥,就可以对一条双方一致认可的信息生成一个有效的 ECDSA 签名。我们提出了一种基于 Lindell [1] 协议的方法,让其中一方可以完全盲化地参与签名生成,这样 TA 就既不知道被签名的消息的内容,也不知道最终的签名是什么样。

    比特币知识 2024-04-30 17:21 637