• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

解析Bitcoin与Layer2资产跨链技术

  • 2024年8月06日 11:41

原文标题:AdaptorSignaturesandItsApplicationtoCross-ChainAtomicSwaps

原文链接:https://blog.bitlayer.org/Adaptor_Signatures_and_Its_Application_to_Cross-Chain_Atomic_Swaps/

作者:mutourend,lynndell1.引言

随着BitcoinLayer2扩容方案的快速发展,Bitcoin与其Layer2对应网络之间的跨链资产转移频率显著增加。这一趋势受到Layer2技术(如Bitlayer)所提供的更高可扩展性、更低的交易费和高吞吐量的推动。这些进步促进了更高效、更经济的交易,从而促进Bitcoin在各种应用中的更广泛采用和集成。因此,Bitcoin与Layer2网络之间的互操作性正成为Crypto生态系统的关键组成部分,推动创新,并为用户提供更多多样化和强大的金融工具。

如表1所示,Bitcoin与Layer2之间的跨链交易有三个典型方案,分别为中心化跨链交易、BitVM跨链桥和跨链原子交换。这三个技术在信任假设、安全性、便捷性、交易额度等方面各不相同,能满足不同的应用需求。

表1.跨链交易技术对比

TcuLTf8c6dSoomMlhjd8UKy2TUbqNzjdc3BiLOYo.png2.2ECDSA适配器签名与原子交换

JhbqQbQKTgQ0d7zmD8oLPaoQRzCukq5c8zhDbPX7.png3.安全问题与解决方案3.1随机数问题与解决方案3.1.1随机数泄漏问题

Schnorr/ECDSA适配器签名的预签名均对随机数$r$进行承诺=rG。此外,零知识证明中对随机数$v$进行承诺$=vG,V=vY$。如果随机数泄漏,则会导致私钥泄漏。

具体而言,在Schnorr协议中,如果随机数$r$泄漏,则能够根据等式

$ =r+cx.$

计算出私钥$x$。

同理,在ECDSA协议中,如果随机数$r$泄漏,则能够根据等式

$=r^{-1}(hash(m)+R_xx).$

计算私钥出$x$。

最后,在零知识证明协议中,如果随机数$v$泄漏,则能够根据等式

$z:=v+cr.$

计算出随机数$r$,从而进一步根据随机数$r$计算出私钥$x$。因此,随机数使用完后需立刻删除。3.1.2随机数重用问题

对任意两个跨链交易,如果适配器签名协议使用相同的随机数,则会导致私钥泄漏。具体而言,在Schnorr协议中,如果使用了相同的随机数$r$,则以下方程组中仅$r$和$x$是未知的

$_1=r+c_1x,$

$_2=r+c_2x.$

因此,可以求解方程组,获得私钥$x$。

同理,在ECDSA适配器签名协议中,如果使用相同的随机数$r$,则以下方程组中仅$r$和$x$是未知的

$_1=r^{-1}(hash(m_1)+R_xx),$

$_2=r^{-1}(hash(m_2)+R_xx).$

因此,可以求解方程组,获得私钥$x$。

最后,在零知识证明协议中,如果使用相同的随机数$v$,则以下方程组中仅$v$和$r$是未知的

$z_1=v+c_1r,$

$z_2=v+c_2r.$

因此,可以求解方程组,获得随机数$r$,从而进一步解方程组获得私钥$x$。

以此类推,不同用户使用相同的随机数,也会泄漏私钥。换言之,使用相同随机数的两个用户,能够求解方程组,获得对方的私钥。因此,应使用RFC6979解决随机数重用问题。3.1.3解决方案:RFC6979

RFC6979指定了一种使用DSA和ECDSA生成确定性数字签名的方法,解决了与生成随机值k相关的安全问题。传统的DSA和ECDSA签名依赖于每次签名操作随机生成的随机数k。如果此随机数被重用或生成不当,会危及私钥的安全性。RFC6979通过从私钥和待签名消息中确定性地导出$k$,消除了生成随机数的需求。这确保了使用相同私钥签署相同消息时,签名总是相同的,从而增强了可重现性和可预测性。具体而言,确定性的$k$是由HMAC生成的。该过程涉及哈希函数(例如SHA256)对私钥、消息和计数器计算哈希值,

$k=SHA256(sk,msg,counter).$

上述等式中,为表达简洁,仅对私钥sk,消息msg和计数器counter计算哈希值,实际RFC6979中计算过程涉及更多的哈希计算。该等式确保k对每条消息都是唯一的,同时对于相同的输入具有可重现性,并且减少了与弱或受损的随机数生成器相关的私钥暴露风险。因此,RFC6979为使用DSA和ECDSA的确定性数字签名提供了一个强大的框架,解决了与随机数生成相关的重大安全问题,并增强了数字签名的可靠性和可预测性。这使其成为需要高安全性和符合严格操作要求的应用程序的宝贵标准。Schnorr/ECDSA签名存在随机数缺陷,需要使用RFC6979进行防范。因此,基于Schnorr/ECDSA的适配器签名也存在这些问题,也需要使用RFC6979规范以解决这些问题。3.2跨链场景问题与解决方案3.2.1UTXO与账户模型系统异构问题与解决方案

如图1所示,Bitcoin采用UTXO模型,基于Secp256k1曲线实现原生的ECDSA签名。Bitlayer为EVM兼容BitcoinL2链,采用Secp256k1曲线,支持原生的ECDSA签名。适配器签名实现了BTC交换所需的逻辑,而Bitlayer交换对应方则由Ethereum智能合约的强大功能支撑。

基于适配器签名的跨链原子交换,或至少是设计用于ECDSA曲线的semi-scriptless适配器签名方案,与Ethereum不兼容。原因在于Ethereum是账户模型的,而不是UTXO模型。具体而言,基于适配器签名的原子交换中要求退款交易必须预先签名。但是,在Ethereum系统中,如果不知道nonce,则无法预先签名交易。因此,一方可以在预先签名完成和交易执行之间发送交易——这将使预先签名的交易无效(因为nonce已被使用,不能重复使用)。

此外,从隐私角度来看,这意味着Bitlayerswap的匿名性比HTLC更优(swap的双方都可找到合约)。但是,由于需要一方有公开合约,使得Bitlayerswap的匿名性低于适配器签名的匿名性。在没有合约的一方,swap交易看起来与任何其他交易都一样。但是,在有EVM合约的一方,交易明显是为了资产swap。虽然一方有公开合约,但是即使使用复杂的链分析工具,也不可能将其追溯到另一条链。

I878yUJlDdWcV5pk5XiHTyqqDtOBQ6Fa3muhmHUx.png

3.2.3不同曲线,适配器签名不安全

假设Bitcoin使用Secp256k1曲线和ECDSA签名,而Bitlayer使用ed25519曲线和Schnorr签名。该情况下,不能使用适配器签名。由于曲线不同,导致椭圆曲线群的阶不同,即模系数不同。Bob在Bitcoin系统中将$y$适配到ECDSA签名中时,即计算$s:=+y$。此时,$y$的取值空间为Secp256k1椭圆曲线群的标量空间。随后,Alice需要使用$y$在ed25519椭圆曲线群上进行Schnorr签名。但是,ed25519曲线余因子为8,且模系数不等于Secp256k1椭圆曲线群的模系数。因此,使用$y$在ed25519曲线上进行Schnorr签名是不安全的。4.数字资产托管应用

数字资产托管有三个参与方,分别为:买方Alice、卖方Bob和托管方。使用适配器签名能够实现非交互式门限数字资产托管,且在无需交互的情况下实例化门限支出策略的子集。该子集由2种参与者组成:参与初始化的参与者、不参与初始化的参与者,后者称为托管方。托管方不能签署任意交易,而只向支持的其中一方发送秘密。

一方面,托管人只能在几个固定的结算交易中进行选择,而无法与其他参与方之一签署新的交易。因此,这种秘密释放机制使得非交互式门限托管的灵活性不如门限Schnorr签名。另一方面,可以使用门限Schnorr签名设置2-of-3花费策略。但是,门限Schnorr签名协议需要三方运行进行去中心化密钥生成协议。因此,基于适配器签名的资产托管协议具有非交互优势。4.1基于适配器签名的非交互式资产托管

图3.基于适配器签名的非交互式资产托管

如图3所示,Alice和Bob想要创建一个具有隐形策略的2-of-3交易输出,其中包含一个托管方。取决于条件$c$,Alice或Bob可花费该交易输出。如果Alice和Bob之间存在争议,则托管方(公钥为$E$,私钥为$e$)决定由Alice或Bob获得该资产。

创建一个未签名funding交易,将BTC发送给Alice和Bob之间的某2-of-2MuSigoutput。

Alice选择一个随机值$t_A$,将某交易的adapator为$t_A G$的Schnorr预签名$(\hat{R}_A,\hat{s}_A)$发送给Bob,该交易为将fundingoutput发送给Bob。Alice同时给Bob发送一个密文,该密文包含对秘密$t_A$并将托管公钥$E$调整为$E_c=E+hash(E,c)G$的\textbf{可验证加密}$C=Enc(E_c,t_A)$。该过程中,Bob收到Alice的预签名后,加上自己的签名,不满足2-of-2MuSig,从而无法花费fundingoutput。仅当Bob知道$t_A$(由托管方可提供),或Alice另外签署完整签名发送给Bob,才能花费fundingoutput。

与之相对应,Bob基于其adaptorsecret$t_B$,重复步骤(2)。此时Bob所签的交易为将fundingoutput发送给Alice。

Alice和Bob均验证接收密文的有效性,确认密文是对$E_c$对秘密的加密,从而对funding交易签署并广播。可验证加密使得在setup阶段无需托管方参与,且不需要公开合约$c$。

当有争议时,Alice和Bob可将密文以及条件c发送给托管方,则托管方可实际情况判决,从而使用调整私钥$e+hash(E,c)$进行解密发送$t_A/t_B$给Bob/Alice。

如果无争议,则Alice和Bob可按其所想来花费2-of-2MuSigoutput。如果存在争议,则任何一方均可联系托管方,并请求其adaptorsecret$t_A$或$t_B$。因此,其中一方在托管方的帮助下,可完成该适配器签名,并广播该结算交易。4.2可验证加密

基于离散对数的经典可验证加密方案(PracticalVerifiableEncryptionandDecryptionofDiscreteLogarithms)不能用于Secp256k1adaptors,因其仅支持验证特殊结构化的groups。

目前,有2种有前景的方式来基于Secp256k1离散对数做可验证加密,分别为Purify和Juggling。

Purify最初是为了创建具有确定性nonce(DN)的MuSig协议而提出的,要求每个签名者使用零知识证明其nonce是将伪随机函数(PRF)正确应用于公钥和消息的结果。PurifyPRF可在Bulletproofs零知识协议的算术电路中高效实现,用于在Secp256k1上的离散对数创建可验证加密方案。换言之,使用zkSnark实现可验证加密。

Juggling加密包括四个步骤:(1)将离散对数$x$切分为多个长为$l$的片段$x_k$,使得$x=\sum_k2^{(k-1)l}x_k$;(2)使用公钥$Y$对片段$x_k G$进行ElGamal加密$\{D_k,E_k\}=\{x_k G+r_k Y,r_k G\}$;(3)对每个$x_k G$创建范围证明,证明$D_k$为一个Pedersen承诺$x_k G+r_k Y$,且其值小于$2^l$;(4)使用sigma协议,证明$\{sumD_k,sumE_k\}$是对$x_k G$的正确加密。

在解密过程中,对$\{D_k,E_k\}$解密出每个$x_k G$,然后穷举搜索出$x_k$(取值范围为$[0,2^l)$)。

Purify需在Bulletproofs内执行一个PRF,相对复杂,而Juggling理论上更简单。此外,二者在proofsize、证明时长和验证时长的差距很小。5.总结

本文对Schnorr/ECDSA适配器签名与跨链原子交换的原理进行了详细描述。深入分析了适配器签名存在随机数泄漏问题、重复问题,并提出使用RFC6979以解决这些问题。此外,详细分析了跨链应用场景下,不但应考虑Blockchain的UTXO模型与账户模型之间的区别,还应考虑适配器签名是否支持不同算法、不同曲线等问题。最后,对适配器签名进行扩展应用,实现非交互式数字资产托管,并简单介绍了涉及的密码学原语--可验证加密。

参考文献

GuggerJ.Bitcoin-monerocross-chainatomicswap[J].CryptologyePrintArchive,2020.

FournierL.One-timeverifiablyencryptedsignaturesakaadaptorsignatures[J].2019,2019.

https://crypto-in-action.github.io/ecdsa-blockchain-dangers/190816-secp256k1-ecdsa-dangers.pdf

PorninT.Deterministicusageofthedigitalsignaturealgorithm(DSA)andellipticcurvedigitalsignaturealgorithm(ECDSA)[R].2013.

KomloC,GoldbergI.FROST:flexibleround-optimizedSchnorrthresholdsignatures[C]//SelectedAreasinCryptography:27thInternationalConference,Halifax,NS,Canada(VirtualEvent),October21-23,2020,RevisedSelectedPapers27.SpringerInternationalPublishing,2021:34-65.

https://github.com/BlockstreamResearch/scriptless-scripts/blob/master/md/NITE.md

https://particl.news/the-dex-revolution-basicswap-and-private-ethereum-swaps/

CamenischJ,ShoupV.Practicalverifiableencryptionanddecryptionofdiscretelogarithms[C]//AnnualInternationalCryptologyConference.Berlin,Heidelberg:SpringerBerlinHeidelberg,2003:126-144.

NickJ,RuffingT,SeurinY,etal.MuSig-DN:Schnorrmulti-signatureswithverifiablydeterministicnonces[C]//Proceedingsofthe2020ACMSIGSACConferenceonComputerandCommunicationsSecurity.2020:1717-1731.

ShlomovitsO,LeibaO.Jugglingswap:scriptlessatomiccross-chainswaps[J].arXivpreprintarXiv:2007.14423,2020.

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM