原文標(biāo)題:AdaptorSignaturesandItsApplicationtoCross-ChainAtomicSwaps
原文鏈接:https://blog.bitlayer.org/Adaptor_Signatures_and_Its_Application_to_Cross-Chain_Atomic_Swaps/
作者:mutourend,lynndell1.引言
隨著BitcoinLayer2擴(kuò)容方案的快速發(fā)展,Bitcoin與其Layer2對(duì)應(yīng)網(wǎng)絡(luò)之間的跨鏈資產(chǎn)轉(zhuǎn)移頻率顯著增加。這一趨勢(shì)受到Layer2技術(shù)(如Bitlayer)所提供的更高可擴(kuò)展性、更低的交易費(fèi)和高吞吐量的推動(dòng)。這些進(jìn)步促進(jìn)了更高效、更經(jīng)濟(jì)的交易,從而促進(jìn)Bitcoin在各種應(yīng)用中的更廣泛采用和集成。因此,Bitcoin與Layer2網(wǎng)絡(luò)之間的互操作性正成為Crypto生態(tài)系統(tǒng)的關(guān)鍵組成部分,推動(dòng)創(chuàng)新,并為用戶提供更多多樣化和強(qiáng)大的金融工具。
如表1所示,Bitcoin與Layer2之間的跨鏈交易有三個(gè)典型方案,分別為中心化跨鏈交易、BitVM跨鏈橋和跨鏈原子交換。這三個(gè)技術(shù)在信任假設(shè)、安全性、便捷性、交易額度等方面各不相同,能滿足不同的應(yīng)用需求。
表1.跨鏈交易技術(shù)對(duì)比
Schnorr/ECDSA適配器簽名的預(yù)簽名均對(duì)隨機(jī)數(shù)$r$進(jìn)行承諾=rG。此外,零知識(shí)證明中對(duì)隨機(jī)數(shù)$v$進(jìn)行承諾$=vG,V=vY$。如果隨機(jī)數(shù)泄漏,則會(huì)導(dǎo)致私鑰泄漏。
具體而言,在Schnorr協(xié)議中,如果隨機(jī)數(shù)$r$泄漏,則能夠根據(jù)等式
$ =r+cx.$
計(jì)算出私鑰$x$。
同理,在ECDSA協(xié)議中,如果隨機(jī)數(shù)$r$泄漏,則能夠根據(jù)等式
$=r^{-1}(hash(m)+R_xx).$
計(jì)算私鑰出$x$。
最后,在零知識(shí)證明協(xié)議中,如果隨機(jī)數(shù)$v$泄漏,則能夠根據(jù)等式
$z:=v+cr.$
計(jì)算出隨機(jī)數(shù)$r$,從而進(jìn)一步根據(jù)隨機(jī)數(shù)$r$計(jì)算出私鑰$x$。因此,隨機(jī)數(shù)使用完后需立刻刪除。3.1.2隨機(jī)數(shù)重用問題
對(duì)任意兩個(gè)跨鏈交易,如果適配器簽名協(xié)議使用相同的隨機(jī)數(shù),則會(huì)導(dǎo)致私鑰泄漏。具體而言,在Schnorr協(xié)議中,如果使用了相同的隨機(jī)數(shù)$r$,則以下方程組中僅$r$和$x$是未知的
$_1=r+c_1x,$
$_2=r+c_2x.$
因此,可以求解方程組,獲得私鑰$x$。
同理,在ECDSA適配器簽名協(xié)議中,如果使用相同的隨機(jī)數(shù)$r$,則以下方程組中僅$r$和$x$是未知的
$_1=r^{-1}(hash(m_1)+R_xx),$
$_2=r^{-1}(hash(m_2)+R_xx).$
因此,可以求解方程組,獲得私鑰$x$。
最后,在零知識(shí)證明協(xié)議中,如果使用相同的隨機(jī)數(shù)$v$,則以下方程組中僅$v$和$r$是未知的
$z_1=v+c_1r,$
$z_2=v+c_2r.$
因此,可以求解方程組,獲得隨機(jī)數(shù)$r$,從而進(jìn)一步解方程組獲得私鑰$x$。
以此類推,不同用戶使用相同的隨機(jī)數(shù),也會(huì)泄漏私鑰。換言之,使用相同隨機(jī)數(shù)的兩個(gè)用戶,能夠求解方程組,獲得對(duì)方的私鑰。因此,應(yīng)使用RFC6979解決隨機(jī)數(shù)重用問題。3.1.3解決方案:RFC6979
RFC6979指定了一種使用DSA和ECDSA生成確定性數(shù)字簽名的方法,解決了與生成隨機(jī)值k相關(guān)的安全問題。傳統(tǒng)的DSA和ECDSA簽名依賴于每次簽名操作隨機(jī)生成的隨機(jī)數(shù)k。如果此隨機(jī)數(shù)被重用或生成不當(dāng),會(huì)危及私鑰的安全性。RFC6979通過從私鑰和待簽名消息中確定性地導(dǎo)出$k$,消除了生成隨機(jī)數(shù)的需求。這確保了使用相同私鑰簽署相同消息時(shí),簽名總是相同的,從而增強(qiáng)了可重現(xiàn)性和可預(yù)測(cè)性。具體而言,確定性的$k$是由HMAC生成的。該過程涉及哈希函數(shù)(例如SHA256)對(duì)私鑰、消息和計(jì)數(shù)器計(jì)算哈希值,
$k=SHA256(sk,msg,counter).$
上述等式中,為表達(dá)簡(jiǎn)潔,僅對(duì)私鑰sk,消息msg和計(jì)數(shù)器counter計(jì)算哈希值,實(shí)際RFC6979中計(jì)算過程涉及更多的哈希計(jì)算。該等式確保k對(duì)每條消息都是唯一的,同時(shí)對(duì)于相同的輸入具有可重現(xiàn)性,并且減少了與弱或受損的隨機(jī)數(shù)生成器相關(guān)的私鑰暴露風(fēng)險(xiǎn)。因此,RFC6979為使用DSA和ECDSA的確定性數(shù)字簽名提供了一個(gè)強(qiáng)大的框架,解決了與隨機(jī)數(shù)生成相關(guān)的重大安全問題,并增強(qiáng)了數(shù)字簽名的可靠性和可預(yù)測(cè)性。這使其成為需要高安全性和符合嚴(yán)格操作要求的應(yīng)用程序的寶貴標(biāo)準(zhǔn)。Schnorr/ECDSA簽名存在隨機(jī)數(shù)缺陷,需要使用RFC6979進(jìn)行防范。因此,基于Schnorr/ECDSA的適配器簽名也存在這些問題,也需要使用RFC6979規(guī)范以解決這些問題。3.2跨鏈場(chǎng)景問題與解決方案3.2.1UTXO與賬戶模型系統(tǒng)異構(gòu)問題與解決方案
如圖1所示,Bitcoin采用UTXO模型,基于Secp256k1曲線實(shí)現(xiàn)原生的ECDSA簽名。Bitlayer為EVM兼容BitcoinL2鏈,采用Secp256k1曲線,支持原生的ECDSA簽名。適配器簽名實(shí)現(xiàn)了BTC交換所需的邏輯,而Bitlayer交換對(duì)應(yīng)方則由Ethereum智能合約的強(qiáng)大功能支撐。
基于適配器簽名的跨鏈原子交換,或至少是設(shè)計(jì)用于ECDSA曲線的semi-scriptless適配器簽名方案,與Ethereum不兼容。原因在于Ethereum是賬戶模型的,而不是UTXO模型。具體而言,基于適配器簽名的原子交換中要求退款交易必須預(yù)先簽名。但是,在Ethereum系統(tǒng)中,如果不知道nonce,則無(wú)法預(yù)先簽名交易。因此,一方可以在預(yù)先簽名完成和交易執(zhí)行之間發(fā)送交易——這將使預(yù)先簽名的交易無(wú)效(因?yàn)閚once已被使用,不能重復(fù)使用)。
此外,從隱私角度來(lái)看,這意味著Bitlayerswap的匿名性比HTLC更優(yōu)(swap的雙方都可找到合約)。但是,由于需要一方有公開合約,使得Bitlayerswap的匿名性低于適配器簽名的匿名性。在沒有合約的一方,swap交易看起來(lái)與任何其他交易都一樣。但是,在有EVM合約的一方,交易明顯是為了資產(chǎn)swap。雖然一方有公開合約,但是即使使用復(fù)雜的鏈分析工具,也不可能將其追溯到另一條鏈。
3.2.3不同曲線,適配器簽名不安全
假設(shè)Bitcoin使用Secp256k1曲線和ECDSA簽名,而Bitlayer使用ed25519曲線和Schnorr簽名。該情況下,不能使用適配器簽名。由于曲線不同,導(dǎo)致橢圓曲線群的階不同,即模系數(shù)不同。Bob在Bitcoin系統(tǒng)中將$y$適配到ECDSA簽名中時(shí),即計(jì)算$s:=+y$。此時(shí),$y$的取值空間為Secp256k1橢圓曲線群的標(biāo)量空間。隨后,Alice需要使用$y$在ed25519橢圓曲線群上進(jìn)行Schnorr簽名。但是,ed25519曲線余因子為8,且模系數(shù)不等于Secp256k1橢圓曲線群的模系數(shù)。因此,使用$y$在ed25519曲線上進(jìn)行Schnorr簽名是不安全的。4.數(shù)字資產(chǎn)托管應(yīng)用
數(shù)字資產(chǎn)托管有三個(gè)參與方,分別為:買方Alice、賣方Bob和托管方。使用適配器簽名能夠?qū)崿F(xiàn)非交互式門限數(shù)字資產(chǎn)托管,且在無(wú)需交互的情況下實(shí)例化門限支出策略的子集。該子集由2種參與者組成:參與初始化的參與者、不參與初始化的參與者,后者稱為托管方。托管方不能簽署任意交易,而只向支持的其中一方發(fā)送秘密。
一方面,托管人只能在幾個(gè)固定的結(jié)算交易中進(jìn)行選擇,而無(wú)法與其他參與方之一簽署新的交易。因此,這種秘密釋放機(jī)制使得非交互式門限托管的靈活性不如門限Schnorr簽名。另一方面,可以使用門限Schnorr簽名設(shè)置2-of-3花費(fèi)策略。但是,門限Schnorr簽名協(xié)議需要三方運(yùn)行進(jìn)行Decentralization密鑰生成協(xié)議。因此,基于適配器簽名的資產(chǎn)托管協(xié)議具有非交互優(yōu)勢(shì)。4.1基于適配器簽名的非交互式資產(chǎn)托管
圖3.基于適配器簽名的非交互式資產(chǎn)托管
如圖3所示,Alice和Bob想要?jiǎng)?chuàng)建一個(gè)具有隱形策略的2-of-3交易輸出,其中包含一個(gè)托管方。取決于條件$c$,Alice或Bob可花費(fèi)該交易輸出。如果Alice和Bob之間存在爭(zhēng)議,則托管方(公鑰為$E$,私鑰為$e$)決定由Alice或Bob獲得該資產(chǎn)。
創(chuàng)建一個(gè)未簽名funding交易,將BTC發(fā)送給Alice和Bob之間的某2-of-2MuSigoutput。
Alice選擇一個(gè)隨機(jī)值$t_A$,將某交易的adapator為$t_A G$的Schnorr預(yù)簽名$(\hat{R}_A,\hat{s}_A)$發(fā)送給Bob,該交易為將fundingoutput發(fā)送給Bob。Alice同時(shí)給Bob發(fā)送一個(gè)密文,該密文包含對(duì)秘密$t_A$并將托管公鑰$E$調(diào)整為$E_c=E+hash(E,c)G$的\textbf{可驗(yàn)證加密}$C=Enc(E_c,t_A)$。該過程中,Bob收到Alice的預(yù)簽名后,加上自己的簽名,不滿足2-of-2MuSig,從而無(wú)法花費(fèi)fundingoutput。僅當(dāng)Bob知道$t_A$(由托管方可提供),或Alice另外簽署完整簽名發(fā)送給Bob,才能花費(fèi)fundingoutput。
與之相對(duì)應(yīng),Bob基于其adaptorsecret$t_B$,重復(fù)步驟(2)。此時(shí)Bob所簽的交易為將fundingoutput發(fā)送給Alice。
Alice和Bob均驗(yàn)證接收密文的有效性,確認(rèn)密文是對(duì)$E_c$對(duì)秘密的加密,從而對(duì)funding交易簽署并廣播?沈(yàn)證加密使得在setup階段無(wú)需托管方參與,且不需要公開合約$c$。
當(dāng)有爭(zhēng)議時(shí),Alice和Bob可將密文以及條件c發(fā)送給托管方,則托管方可實(shí)際情況判決,從而使用調(diào)整私鑰$e+hash(E,c)$進(jìn)行解密發(fā)送$t_A/t_B$給Bob/Alice。
如果無(wú)爭(zhēng)議,則Alice和Bob可按其所想來(lái)花費(fèi)2-of-2MuSigoutput。如果存在爭(zhēng)議,則任何一方均可聯(lián)系托管方,并請(qǐng)求其adaptorsecret$t_A$或$t_B$。因此,其中一方在托管方的幫助下,可完成該適配器簽名,并廣播該結(jié)算交易。4.2可驗(yàn)證加密
基于離散對(duì)數(shù)的經(jīng)典可驗(yàn)證加密方案(PracticalVerifiableEncryptionandDecryptionofDiscreteLogarithms)不能用于Secp256k1adaptors,因其僅支持驗(yàn)證特殊結(jié)構(gòu)化的groups。
目前,有2種有前景的方式來(lái)基于Secp256k1離散對(duì)數(shù)做可驗(yàn)證加密,分別為Purify和Juggling。
Purify最初是為了創(chuàng)建具有確定性nonce(DN)的MuSig協(xié)議而提出的,要求每個(gè)簽名者使用零知識(shí)證明其nonce是將偽隨機(jī)函數(shù)(PRF)正確應(yīng)用于公鑰和消息的結(jié)果。PurifyPRF可在Bulletproofs零知識(shí)協(xié)議的算術(shù)電路中高效實(shí)現(xiàn),用于在Secp256k1上的離散對(duì)數(shù)創(chuàng)建可驗(yàn)證加密方案。換言之,使用zkSnark實(shí)現(xiàn)可驗(yàn)證加密。
Juggling加密包括四個(gè)步驟:(1)將離散對(duì)數(shù)$x$切分為多個(gè)長(zhǎng)為$l$的片段$x_k$,使得$x=\sum_k2^{(k-1)l}x_k$;(2)使用公鑰$Y$對(duì)片段$x_k G$進(jìn)行ElGamal加密$\{D_k,E_k\}=\{x_k G+r_k Y,r_k G\}$;(3)對(duì)每個(gè)$x_k G$創(chuàng)建范圍證明,證明$D_k$為一個(gè)Pedersen承諾$x_k G+r_k Y$,且其值小于$2^l$;(4)使用sigma協(xié)議,證明$\{sumD_k,sumE_k\}$是對(duì)$x_k G$的正確加密。
在解密過程中,對(duì)$\{D_k,E_k\}$解密出每個(gè)$x_k G$,然后窮舉搜索出$x_k$(取值范圍為$[0,2^l)$)。
Purify需在Bulletproofs內(nèi)執(zhí)行一個(gè)PRF,相對(duì)復(fù)雜,而Juggling理論上更簡(jiǎn)單。此外,二者在proofsize、證明時(shí)長(zhǎng)和驗(yàn)證時(shí)長(zhǎng)的差距很小。5.總結(jié)
本文對(duì)Schnorr/ECDSA適配器簽名與跨鏈原子交換的原理進(jìn)行了詳細(xì)描述。深入分析了適配器簽名存在隨機(jī)數(shù)泄漏問題、重復(fù)問題,并提出使用RFC6979以解決這些問題。此外,詳細(xì)分析了跨鏈應(yīng)用場(chǎng)景下,不但應(yīng)考慮Blockchain的UTXO模型與賬戶模型之間的區(qū)別,還應(yīng)考慮適配器簽名是否支持不同算法、不同曲線等問題。最后,對(duì)適配器簽名進(jìn)行擴(kuò)展應(yīng)用,實(shí)現(xiàn)非交互式數(shù)字資產(chǎn)托管,并簡(jiǎn)單介紹了涉及的密碼學(xué)原語(yǔ)--可驗(yàn)證加密。
參考文獻(xiàn)
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.
免責(zé)聲明:解析Bitcoin與Layer2資產(chǎn)跨鏈技術(shù)文章轉(zhuǎn)發(fā)自互聯(lián)網(wǎng),版權(quán)歸其所有。
文章內(nèi)容不代表本站立場(chǎng)和任何投資暗示。加密貨幣市場(chǎng)極其波動(dòng),風(fēng)險(xiǎn)很高,可能不適合所有投資者。在投資加密貨幣之前,請(qǐng)確保自己充分了解市場(chǎng)和投資的風(fēng)險(xiǎn),并考慮自己的財(cái)務(wù)狀況和風(fēng)險(xiǎn)承受能力。此外,請(qǐng)遵循您所在國(guó)家的法律法規(guī),以及遵守交易所和錢包提供商的規(guī)定。對(duì)于任何因使用加密貨幣所造成的投資損失或其他損失,本站不承擔(dān)任何責(zé)任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM