解析比特幣與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. 引言
隨着比特幣 Layer 2 擴容方案的快速發展,比特幣與其 Layer 2 對應網絡之間的跨鏈資產轉移頻率顯著增加。這一趨勢受到 Layer 2 技術(如 Bitlayer)所提供的更高可擴展性、更低的交易費和高吞吐量的推動。這些進步促進了更高效、更經濟的交易,從而促進比特幣在各種應用中的更廣泛採用和集成。因此,比特幣與 Layer 2 網絡之間的互操作性正成為加密貨幣生態系統的關鍵組成部分,推動創新,並為用戶提供更多多樣化和強大的金融工具。
如表 1 所示,比特幣與 Layer 2 之間的跨鏈交易有三個典型方案,分別為中心化跨鏈交易、BitVM 跨鏈橋和跨鏈原子交換。這三個技術在信任假設、安全性、便捷性、交易額度等方面各不相同,能滿足不同的應用需求。
表 1. 跨鏈交易技術對比
中心化跨鏈交易: 用戶首先將比特幣支付給中心化機構(如項目方或交易所),則中心化機構在 Layer 2 網絡上將等值資產支付到用戶指定的地址,從而完成跨鏈資產轉移。這種技術的優點在於速度快,撮合過程相對容易,因為中心化機構可以迅速確認並處理交易。然而,這種方法的安全性完全依賴於中心化機構的可靠性和信譽。如果中心化機構遭遇技術故障、惡意攻擊、違約,則用戶的資金面臨較高的風險。此外,中心化跨鏈交易也可能泄漏用戶隱私,需要用戶在選擇這種方法時慎重考慮。因此,盡管其便捷性和高效性為用戶提供了極大的便利,但安全性和信任是中心化跨鏈交易面臨的主要挑战。
BitVM 跨鏈橋: 該技術相對復雜。首先,在 Peg-in 階段,用戶將比特幣支付給 BitVM 聯盟控制的多籤地址,實現比特幣鎖定。在 Layer 2 鑄造出對應數量的通證,並用該通證實現 Layer 2 交易與應用。當用戶銷毀 Layer 2 通證時,由 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, A.K.A. Adaptor Signatures 的一種實現。適配器籤名是一種附加籤名,其與初始籤名相結合以顯示祕密數據,使雙方能夠同時向對方透露兩部分數據,並且是使 Monero 原子交換對成為可能的 scriptless 協議的關鍵組成部分。
與 HTLC 原子交換相比,基於適配器籤名的原子交換有 3 個優勢:首先,適配器籤名交換方案取代了“祕密哈希”交換所依賴的鏈上腳本,包括時間鎖和哈希鎖。換言之,HTLC 交換中的祕密和祕密哈希在適配器籤名交換中無直接對應關系。因此,在比特幣研究界被稱為“scriptless scripts 隱形腳本”。此外,由於不涉及這樣的腳本,鏈上佔用空間減少,使得基於適配器籤名的原子交換更輕量,費用更低。最後,HTLC 要求每條鏈使用相同的哈希值,而適配器籤名的原子交換中涉及的交易無法鏈接,實現隱私保護。
本文首先介紹 Schnorr/ECDSA 適配器籤名與跨鏈原子交換原理。然後,分析適配器籤名中存在的隨機數安全問題和跨鏈場景中的系統異構和算法異構問題,並給出解決方案。最後,對適配器籤名進行擴展應用,實現非交互式數字資產托管。
2. 適配器籤名與跨鏈原子交換
2.1 Schnorr 適配器籤名與原子交換
2.2 ECDSA 適配器籤名與原子交換
2.2.1 零知識證明 zk{v | Ṽ = v ᐧ G, V = v ᐧ Y}
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 生成的。該過程涉及哈希函數(例如 SHA 256)對私鑰、消息和計數器計算哈希值,
$k = SHA 256(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 模型,基於 Secp 256 k 1 曲线實現原生的 ECDSA 籤名。Bitlayer 為 EVM 兼容 Bitcoin L2鏈,採用 Secp 256 k 1 曲线,支持原生的 ECDSA 籤名。適配器籤名實現了 BTC 交換所需的邏輯,而 Bitlayer 交換對應方則由以太坊智能合約的強大功能支撐。
基於適配器籤名的跨鏈原子交換,或至少是設計用於 ECDSA 曲线的 semi-scriptless 適配器籤名方案,與以太坊不兼容。原因在於以太坊是账戶模型的,而不是 UTXO 模型。具體而言,基於適配器籤名的原子交換中要求退款交易必須預先籤名。但是,在以太坊系統中,如果不知道 nonce,則無法預先籤名交易。因此,一方可以在預先籤名完成和交易執行之間發送交易 —— 這將使預先籤名的交易無效(因為 nonce 已被使用,不能重復使用)。
此外,從隱私角度來看,這意味着 Bitlayer swap 的匿名性比 HTLC 更優(swap 的雙方都可找到合約)。但是,由於需要一方有公开合約,使得 Bitlayer swap 的匿名性低於適配器籤名的匿名性。在沒有合約的一方,swap 交易看起來與任何其他交易都一樣。但是,在有 EVM 合約的一方,交易明顯是為了資產 swap。雖然一方有公开合約,但是即使使用復雜的鏈分析工具,也不可能將其追溯到另一條鏈。
圖 1. UTXO 與账戶模型異構系統跨鏈原子交換
Bitlayer 目前支持原生 ECDSA 籤名,也可通過智能合約實現 Schnorr 籤名驗證。如果使用原生的 Bitlayer 交易,則無法預籤原子交換中的退款交易;需要使用 Bitlayer 智能合約交易,才能夠實現原子交換。但是,該過程會犧牲隱私性,即 Bitlayer 系統中參與原子交換的交易是可追溯的,但無法追溯到 BTC 系統中的交易。在 Bitlayer 端可設計類似 Tornado Cash 之類的 Dapp 應用,為 BTC 與 Bitlayer 原子交換中 Bitlayer 端的交易提供隱私服務。
3.2.2 相同曲线,不同算法,適配器籤名安全
如圖 2 所示,假設 Bitcoin 和 Bitlayer 均使用 Secp 256 k 1 曲线,但是 Bitcoin 使用 Schnorr 籤名,而 Bitlayer 使用 ECDSA。該情況下,基於 Schnorr 和 ECDSA 的適配器籤名,是可證明安全的。假設給定 ECDSA 和 Schnorr 籤名預言機,能夠構造模擬器 S 攻破 ECDSA,則僅給定 ECDSA 籤名預言機,能夠構造模擬器 S 攻破 ECDSA。但是,ECDSA 是安全的。同理,假設給定 ECDSA 和 Schnorr 籤名預言機,能夠構造模擬器 S 攻破 Schnorr 籤名,則僅給定 ECDSA 籤名預言機,能夠構造模擬器 S 攻破 Schnorr 籤名。但是,Schnorr 籤名是安全的。因此,在跨鏈場景下,適配器籤名使用了相同曲线,但是籤名算法不同,則是安全的。換言之,適配器籤名允許一端使用 ECDSA,而另一端使用 Schnorr 籤名。
圖 2. 相同曲线,不同算法,適配器籤名
3.2.3 不同曲线,適配器籤名不安全
假設 Bitcoin 使用 Secp 256 k 1 曲线和 ECDSA 籤名,而 Bitlayer 使用 ed 25519 曲线和 Schnorr 籤名。該情況下,不能使用適配器籤名。由於曲线不同,導致橢圓曲线群的階不同,即模系數不同。Bob 在 Bitcoin 系統中將$y$適配到 ECDSA 籤名中時,即計算$s:= ŝ+y$。此時,$y$的取值空間為 Secp 256 k 1 橢圓曲线群的標量空間。隨後,Alice 需要使用$y$在 ed 25519 橢圓曲线群上進行 Schnorr 籤名。但是,ed 25519 曲线余因子為 8 ,且模系數不等於 Secp 256 k 1 橢圓曲线群的模系數。因此,使用$y$在 ed 25519 曲线上進行 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-2 MuSig output。
-
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。
-
與之相對應,Bob 基於其 adaptor secret $t_B$,重復步驟(2)。此時 Bob 所籤的交易為將 funding output 發送給 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-2 MuSig output。如果存在爭議,則任何一方均可聯系托管方,並請求其 adaptor secret $t_A$或$t_B$。因此,其中一方在托管方的幫助下,可完成該適配器籤名,並廣播該結算交易。
4.2 可驗證加密
基於離散對數的經典可驗證加密方案( Practical Verifiable Encryption and Decryption of Discrete Logarithms )不能用於 Secp 256 k 1 adaptors,因其僅支持驗證特殊結構化的 groups。
目前,有 2 種有前景的方式來基於 Secp 256 k 1 離散對數做可驗證加密,分別為 Purify 和 Juggling 。
Purify 最初是為了創建具有確定性 nonce(DN)的 MuSig 協議而提出的,要求每個籤名者使用零知識證明其 nonce 是將僞隨機函數(PRF)正確應用於公鑰和消息的結果。Purify PRF 可在 Bulletproofs 零知識協議的算術電路中高效實現,用於在 Secp 256 k 1 上的離散對數創建可驗證加密方案。換言之,使用 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 模型與账戶模型之間的區別,還應考慮適配器籤名是否支持不同算法、不同曲线等問題。最後,對適配器籤名進行擴展應用,實現非交互式數字資產托管,並簡單介紹了涉及的密碼學原語--可驗證加密。
參考文獻
-
Gugger J. Bitcoin-monero cross-chain atomic swap[J]. Cryptology ePrint Archive, 2020.
-
Fournier L. One-time verifiably encrypted signatures aka adaptor signatures[J]. 2019, 2019.
-
https://crypto-in-action.github.io/ecdsa-blockchain-dangers/190816-secp256k1-ecdsa-dangers.pdf
-
Pornin T. Deterministic usage of the digital signature algorithm (DSA) and elliptic curve digital signature algorithm (ECDSA)[R]. 2013.
-
Komlo C, Goldberg I. FROST: flexible round-optimized Schnorr threshold signatures[C]//Selected Areas in Cryptography: 27 th International Conference, Halifax, NS, Canada (Virtual Event), October 21-23, 2020, Revised Selected Papers 27. Springer International Publishing, 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/
-
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.
-
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.
-
Shlomovits O, Leiba O. Jugglingswap: scriptless atomic cross-chain swaps[J]. arXiv preprint arXiv: 2007.14423, 2020.
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
比特幣衝上7.7萬鎂後急墜、以太坊漲破3150鎂!全網單日爆倉2.91億鎂
在 川普勝選後,比特幣連日來持續上漲,在昨晨 3 時首度 突破 7.7 萬美元,高點達 77,20...
Arthur Hayes加倉以太坊!Santiment預測:牛市利潤將重回ETH
在 川普當選之後,加密貨幣市場連日大漲,不僅比特幣 衝破 7.7 萬美元,刷新歷史新高,已低迷許久...
富爸爸公開比特幣持倉「73枚」,計畫加倉至100枚:上漲還沒封頂!
投 資理財暢銷書《富爸爸,窮爸爸》作者羅伯特清崎(Robert Kiyosaki)向來抨擊美國國債...
星球日報
文章數量
7012粉絲數
0