解析比特幣與Layer2資產跨鏈技術

原文標題:Adaptor Signatures and Its Application to Cross-Chain Atomic Swaps

原文連結:https://blog.bitlayer.org/Adaptor_Signatures_and_Its_Application_to_Cross-Chain_Atomic_Swaps/

作者:mutourend, lynndell

1. 引言

隨著比特幣Layer2擴容方案的快速發展,比特幣與其Layer2對應網路之間的跨鏈資產轉移頻率顯著增加。這一趨勢受到Layer2技術(如Bitlayer)所提供的更高可擴展性、更低的交易費和高吞吐量的推動。這些進步促進了更有效率、更經濟的交易,從而促進比特幣在各種應用中的更廣泛採用和整合。因此,比特幣與Layer2網路之間的互通性正成為加密貨幣生態系統的關鍵組成部分,推動創新,並為用戶提供更多多樣化和強大的金融工具。

如表1所示,比特幣與Layer2之間的跨鏈交易有三個典型方案,分別為中心化跨鏈交易、BitVM跨鏈橋和跨鏈原子交換。這三種技術在信任假設、安全性、便利性、交易額度等方面各不相同,能滿足不同的應用需求。

表1. 跨鏈交易技術對比

中心化跨鏈交易:用戶首先將比特幣支付給中心化機構(如專案方或交易所),則中心化機構在Layer2網路上將等值資產支付到用戶指定的地址,從而完成跨鏈資產轉移。這種技術的優點在於速度快,撮合過程相對容易,因為中心化機構可以迅速確認並處理交易。然而,這種方法的安全性完全依賴中心化機構的可靠性和信譽。如果中心化機構遭遇技術故障、惡意攻擊、違約,則使用者的資金面臨較高的風險。此外,中心化跨鏈交易也可能洩漏用戶隱私,需要用戶在選擇這種方法時慎重考慮。因此,儘管其便利性和高效性為用戶提供了極大的便利,但安全性和信任是中心化跨鏈交易面臨的主要挑戰。

BitVM跨鏈橋:此技術較為複雜。首先,在Peg-in階段,用戶將比特幣支付給BitVM聯盟控制的多簽位址,實現比特幣鎖定。在Layer2鑄造出對應數量的通證,並以此通證實現Layer2交易與應用。當使用者銷毀Layer2通證時,由Operator墊付。隨後,Operator到BitVM聯盟控制的多簽池子中報銷對應數量的比特幣。為防止Operator作惡,報銷過程採用樂觀挑戰機制,即任意第三方可對惡意報銷行為發起挑戰,挫敗作惡行為。該技術引入了樂觀挑戰機制,所以技術相對複雜。此外,樂觀挑戰機制涉及大量的挑戰與回應交易,交易費較高。因此,BitVM跨鏈橋僅適用於超大額交易,類似U的增發,因此使用頻率較低。

跨鏈原子交換:原子交換是一種實現去中心化加密貨幣交易的合約。在這種情況下,「原子」意味著一種資產所有權的變更實際上意味著另一種資產所有權的變更。該概念於2013年由TierNolan在Bitcointalk論壇上首次提出。 4年來,原子交換一直停留在理論領域。直到2017年,Decred和Litecoin成為第一個成功完成原子交換的區塊鏈系統。原子交換必須涉及兩方,而任何第三方不能中斷或乾擾交換過程。這意味著該技術是去中心化的、不受審查、具有較好的隱私保護、能實現高頻跨鏈交易,從而在去中心化交易所中廣泛應用。目前,跨鏈原子交換需要4筆交易,有些方案嘗試將交易筆數壓縮為2筆,但會增加對交換雙方的即時線上要求等。最後,跨鏈原子交換技術主要包括雜湊時間鎖和適配器簽章。

基於哈希時間鎖(HTLC)的跨鏈原子交換:第一個成功實現跨鏈原子交換的項目是Decred,利用“哈希鎖”和“時間鎖”,借助鏈上腳本(或智能合約)實現了TierNolan提出的的原子交換。 HTLC允許兩個用戶進行有時間限制的加密貨幣交易,即接收者必須在規定時間內(以區塊數量或區塊高度確定)向合約提交加密證明(「秘密」),否則資金將退還給發送者。如果接收者確認付款,則交易成功。因此,要求參與的兩個區塊鏈都具有「哈希鎖」和「時間鎖」功能。

雖然HTLC原子交換是去中心化交換技術領域的重大突破,但有以下問題。這些原子交換交易以及與它們相關的數據都是在鏈上進行的,導致用戶隱私洩漏。換言之,每次交換時,兩個區塊鏈上都會出現相同的雜湊值,且僅相隔只有幾個區塊。這意味著,觀察者可以將參與交換的貨幣聯繫起來,即在彼此靠近的區塊中找到相同的哈希值(TimeStamp-wise)。當跨鏈追蹤貨幣時,很容易確定來源。儘管這種分析不會揭示任何相關的身份數據,但第三方可以輕鬆推斷出所涉及的參與者的身份。

基於適配器簽名的跨鏈原子交換:BasicSwap提供的第二種交換被稱為「適配器簽名」原子交換,基於Monero開發人員Joël Gugger在2020年發表的一篇題為”Bitcoin–Monero Cross-chain Atomic Swap }”論文。論文可說是Lloyd Fournier 2019年論文One-Time Verifiably Encrypted Signatures, AKA Adaptor Signatures的一種實作。適配器簽名是一種附加簽名,其與初始簽名相結合以顯示秘密數據,使雙方能夠同時向對方透露兩部分數據,並且是使Monero原子交換對成為可能的scriptless協議的關鍵組成部分。

與HTLC原子交換相比,基於適配器簽章的原子交換有3個優點:首先,適配器簽章交換方案取代了「秘密雜湊」交換所依賴的鏈上腳本,包括時間鎖和雜湊鎖。換言之,HTLC交換中的秘密和秘密雜湊在適配器簽章交換中無直接對應關係。因此,在比特幣研究界被稱為「scriptless scripts 隱形腳本」。此外,由於不涉及這樣的腳本,鏈上佔用空間減少,使得基於適配器簽名的原子交換更輕量,費用更低。最後,HTLC要求每條鏈使用相同的哈希值,而適配器簽署的原子交換中涉及的交易無法鏈接,實現隱私保護。

本文首先介紹Schnorr/ECDSA適配器簽章與跨鏈原子交換原理。然後,分析適配器簽章中存在的隨機數安全問題和跨鏈場景中的系統異質和演算法異質問題,並給出解決方案。最後,將適配器簽章進行擴充應用,實現非互動式數位資產託管。

2. 適配器簽名與跨鏈原子交換

2.1 Schnorr適配器簽名與原子交換

TcuLTf8c6dSoomMlhjd8UKy2TUbqNzjdc3BiLOYo.png

2.2 ECDSA適配器簽名與原子交換

UEXz5bSi86Zj6yYK51HVISZYeizUnYeIh33xDVpJ.png

2.2.1 零知識證明zk{v | Ṽ = v ᐧ G, V = v ᐧ Y}

JhbqQbQKTgQ0d7zmD8oLPaoQRzCukq5c8zhDbPX7.png

3. 安全問題與解決方案

3.1 隨機數問題與解

3.1.1 隨機數洩漏問題

Schnorr/ECDSA轉接器簽章的預簽章皆對隨機數$r$進行承諾敘述 = r ᐧ G。此外,零知識證明中對隨機數$v$進行承諾$Ṽ=v ᐧ G,V=v ᐧ Y$。如果隨機數洩漏,則會導致私鑰洩漏。

具體而言,在Schnorr協議中,如果隨機數$r$洩漏,則能夠根據等式

$ŝ = r + c x.$

計算出私鑰$x$。

同理,在ECDSA協議中,如果隨機數$r$洩漏,則能夠根據等式

$ŝ = r^{-1}(hash(m)+R_x x).$

計算私鑰出$x$。

最後,在零知識證明協議中,如果隨機數$v$洩漏,則能夠根據等式

$z := v + c r.$

計算出隨機數$r$,從而進一步根據隨機數$r$計算出私鑰$x$。因此,隨機數使用完後需立刻刪除。

3.1.2 隨機數重用問題

對任兩個跨鏈交易,如果適配器簽章協定使用相同的隨機數,則會導致私鑰洩漏。具體而言,在Schnorr協定中,如果使用了相同的隨機數$r$,則以下方程組中僅$r$和$x$是未知的

$ŝ_1 =r + c_1 x, $

$ ŝ_2 = r + c_2 x. $

因此,可以求解方程組,得到私鑰$x$。

同理,在ECDSA適配器簽章協定中,如果使用相同的隨機數$r$,則以下方程組中僅$r$和$x$是未知的

$ ŝ_1 = r^{-1}(hash(m_1)+R_x x),$

$ ŝ_2 = r^{-1}(hash(m_2)+R_x x).$

因此,可以求解方程組,得到私鑰$x$。

最後,在零知識證明協議中,如果使用相同的隨機數$v$,則以下方程組中僅$v$和$r$是未知的

$z_1 = v+c_1 r, $

$ z_2 = v+c_2 r. $

因此,可以解方程組,得到隨機數$r$,從而進一步解方程組獲得私鑰$x$。

以此類推,不同使用者使用相同的隨機數,也會洩漏私鑰。換言之,使用相同隨機數的兩個用戶,能夠求解方程組,以獲得對方的私鑰。因此,應使用RFC 6979解決隨機數重用問題。

3.1.3 解決方案:RFC 6979

RFC 6979指定了一種使用DSA和ECDSA產生確定性數位簽章的方法,解決了與產生隨機值k相關的安全性問題。傳統的DSA和ECDSA簽章依賴於每次簽章操作隨機產生的隨機數k。如果此隨機數被重複使用或產生不當,會危及私鑰的安全性。 RFC 6979透過從私鑰和待簽章訊息中確定性地匯出$k$,消除了產生隨機數的需求。這確保了使用相同私鑰簽署相同訊息時,簽名總是相同的,從而增強了可重現性和可預測性。具體而言,確定性的$k$是由HMAC產生的。這個過程涉及哈希函數(例如SHA256)對私鑰、訊息和計數器計算哈希值,

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

上述等式中,為表達簡潔,僅對私鑰sk,訊息msg和計數器counter計算哈希值,實際RFC 6979中計算過程涉及更多的哈希計算。此等式確保k對每個訊息都是唯一的,同時對於相同的輸入具有可重現性,並且減少了與弱或受損的隨機數產生器相關的私鑰暴露風險。因此,RFC 6979為使用DSA和ECDSA的確定性數位簽章提供了一個強大的框架,解決了與隨機數產生相關的重大安全性問題,並增強了數位簽章的可靠性和可預測性。這使其成為需要高安全性和符合嚴格操作要求的應用程式的寶貴標準。 Schnorr/ECDSA簽章有隨機數缺陷,需要使用RFC 6979進行防範。因此,基於Schnorr/ECDSA的適配器簽章也存在這些問題,也需要使用RFC 6979規範來解決這些問題。

3.2 跨鏈場景問題與解決方案

3.2.1 UTXO與帳戶模型系統異質問題與解決方案

如圖1所示,比特幣採用UTXO模型,以Secp256k1曲線實現原生的ECDSA簽章。 Bitlayer為EVM相容Bitcoin L2鏈,採用Secp256k1曲線,支援原生的ECDSA簽章。適配器簽章實現了BTC交換所需的邏輯,而Bitlayer交換對應方則由以太坊智慧合約的強大功能所支撐。

基於適配器簽章的跨鏈原子交換,或至少設計用於ECDSA 曲線的semi-scriptless適配器簽章方案,與以太坊不相容。原因在於以太坊是帳戶模型的,而不是UTXO模型。具體而言,基於適配器簽署的原子交換中要求退款交易必須預先簽署。但是,在以太坊系統中,如果不知道nonce,則無法預先簽署交易。因此,一方可以在預先簽名完成和交易執行之間發送交易—— 這將使預先簽署的交易無效(因為nonce 已被使用,不能重複使用)。

此外,從隱私角度來看,這意味著Bitlayer swap的匿名性比HTLC更優(swap的雙方都可找到合約)。但是,由於需要一方有公開合約,使得Bitlayer swap的匿名性低於適配器簽章的匿名性。在沒有合約的一方,swap交易看起來與其他交易一樣。但是,在有EVM合約的一方,交易明顯是為了資產swap。雖然一方有公開合約,但即使使用複雜的鏈分析工具,也不可能將其追溯到另一​​條鏈。

y4eVFTvo9ZKkKPu9Gm1McpccWlmeouiFqbNb6QK0.png

圖1. UTXO與帳戶模型異構系統跨鏈原子交換

Bitlayer目前支援原生ECDSA簽名,也可透過智慧合約實現Schnorr簽名驗證。如果使用原生的Bitlayer交易,則無法預簽原子交換中的退款交易;需要使用Bitlayer智能合約交易,才能夠實現原子交換。但是,該過程會犧牲隱私性,即Bitlayer系統中參與原子交換的交易是可追溯的,但無法追溯到BTC系統中的交易。在Bitlayer端可設計類似Tornado Cash之類的Dapp應用,為BTC與Bitlayer原子交換中Bitlayer端的交易提供隱私服務。

3.2.2 相同曲線,不同演算法,適配器簽章安全

如圖2所示,假設Bitcoin和Bitlayer都使用Secp256k1曲線,但Bitcoin使用Schnorr簽名,而Bitlayer使用ECDSA。此情況下,基於Schnorr和ECDSA的適配器簽名,是可證明安全的。假設給定ECDSA和Schnorr簽章預言機,能夠建構模擬器S攻破ECDSA,則僅給定ECDSA簽章預言機,能夠建構模擬器S攻破ECDSA。但是,ECDSA是安全的。同理,假設給定ECDSA和Schnorr簽名預言機,能夠構造模擬器S攻破Schnorr簽名,則僅給定ECDSA簽名預言機,能夠構造模擬器S攻破Schnorr簽名。但是,Schnorr簽名是安全的。因此,在跨鏈場景下,適配器簽章使用了相同曲線,但是簽名演算法不同,則是安全的。換言之,適配器簽章允許一端使用ECDSA,而另一端使用Schnorr簽章。

I878yUJlDdWcV5pk5XiHTyqqDtOBQ6Fa3muhmHUx.png

圖2. 相同曲線,不同演算法,適配器簽名

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 基於適配器簽署的非互動式資產託管

HNOon6CPhx25A8YppTIO6kPxhMW1qtsXXpFGjNJ1.png

圖3. 基於適配器簽章的非互動式資產託管

如圖3所示,Alice和Bob想要建立一個具有隱形策略的2-of-3交易輸出,其中包含一個託管方。取決於條件$c$,Alice或Bob可花費該交易輸出。如果Alice和Bob之間存在爭議,則託管方(公鑰為$E$,私鑰為$e$)決定由Alice或Bob獲得該資產。

  1. 建立一個未簽署funding交易,將BTC送到Alice和Bob之間的某2-of-2 MuSig output。

  2. Alice選擇隨機值$t_A$,將某交易的adapator為$t_A ᐧ G$的Schnorr預簽章$(\hat{R}_A,\hat{s}_A)$傳送給Bob,該交易為將funding output傳送給Bob。 Alice同時寄給Bob一個密文,該密文包含對秘密$t_A$並將託管公鑰$E$調整為$E_c = E + hash(E, c)G$的\textbf{可驗證加密}$ C = Enc(E_c, t_A)$。過程中,Bob收到Alice的預簽名後,加上自己的簽名,不滿足2-of-2 MuSig,因此無法花費funding output。只有當Bob知道$t_A$(由託管方可提供),或Alice另外簽署完整簽名發送給Bob,才能花費funding output。

  3. 與之相對應,Bob基於其adaptor secret $t_B$,重複步驟(2)。此時Bob所簽的交易為將funding output寄給Alice。

  4. Alice和Bob都驗證接收密文的有效性,確認密文是對$E_c$對秘密的加密,從而簽署funding交易並廣播。可驗證加密使得在setup階段無需託管方參與,且不需要公開合約$c$。

  5. 當有爭議時,Alice和Bob可將密文以及條件c發送給託管方,則託管方可實際情況判決,從而使用調整私鑰$e+hash(E, c)$進行解密發送$t_A/t_B $給Bob/Alice。

如果無爭議,則Alice和Bob可按其所想來花費2-of-2 MuSig output。如有爭議,則任何一方均可聯絡託管方,並要求其adaptor secret $t_A$或$t_B$。因此,其中一方在託管方的幫助下,可完成該適配器簽名,並廣播該結算交易。

4.2 可驗證加密

基於離散對數的經典可驗證加密方案(Practical Verifiable Encryption and Decryption of Discrete Logarithms)無法用於Secp256k1 adaptors,因其僅支援驗證特殊結構化的groups。

目前,有2種有前景的方式來基於Secp256k1離散對數做可驗證加密,分別為Purify和Juggling。

Purify最初是為了創建具有確定性nonce(DN)的MuSig協定而提出的,要求每個簽署者使用零知識證明其nonce是將偽隨機函數(PRF)正確應用於公鑰和訊息的結果。 Purify PRF可在Bulletproofs零知識協定的算術電路中高效實現,用於在Secp256k1上的離散對數建立可驗證加密方案。換言之,使用zkSnark實作可驗證加密。

Juggling加密包含四個步驟:(1)將離散對數$x$切割分成多個長為$l$的片段$x_k$,使得$x = \sum _k 2^{(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協議,證明$\ {sum D_k, sum E_k\}$是對$x_k ᐧ G$的正確加密。

在解密過程中,對$\{D_k, E_k\}$解密出每個$x_k ᐧ G$,然後窮舉搜尋出$x_k$(取值範圍為$[0, 2^l)$)。

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

5. 总结

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

参考文献

  1. Gugger J. Bitcoin-monero cross-chain atomic swap[J]. Cryptology ePrint Archive, 2020.

  2. Fournier L. One-time verifiably encrypted signatures aka adaptor signatures[J]. 2019, 2019.

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

  4. Pornin T. Deterministic usage of the digital signature algorithm (DSA) and elliptic curve digital signature algorithm (ECDSA)[R]. 2013.

  5. Komlo C, Goldberg I. FROST: flexible round-optimized Schnorr threshold signatures[C]//Selected Areas in Cryptography: 27th International Conference, Halifax, NS, Canada (Virtual Event), October 21-23, 2020, Revised Selected Papers 27. Springer International Publishing, 2021: 34-65.

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

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

  8. Camenisch J, Shoup V. Practical verifiable encryption and decryption of discrete logarithms[C]//Annual International Cryptology Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2003: 126-144.

  9. Nick J, Ruffing T, Seurin Y, et al. MuSig-DN: Schnorr multi-signatures with verifiably deterministic nonces[C]//Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 2020: 1717-1731.

  10. Shlomovits O, Leiba O. Jugglingswap: scriptless atomic cross-chain swaps[J]. arXiv preprint arXiv:2007.14423, 2020.

Total
0
Shares
Related Posts