比特幣Layer2跨鏈橋多簽資產託管案例解析


作者:ScaleBit

比特幣Layer2 生態正在迎來一波爆發,而跨鏈橋則被認為是該生態中至關重要的組成部分。對Layer2 來說,跨鏈橋的安全性顯得特別重要,隨著Taproot 升級,跨鏈橋實作又出現了更多方案。在ScaleBit 的研究中,我們審視了多個BTC Layer2 跨鏈橋的設計方案,結合ScaleBit 的BTC Layer2 審計案例,總結出了四種常見的比特幣多簽方案,用於建立BTC Layer2 跨鏈橋。本文旨在深入探討這些方案的原理及其各自的優缺點,以期為讀者提供更清晰的認識。

方案一:傳統多簽

概述

傳統多簽指的是比特幣原生多簽或支付到腳本哈希(P2SH)多重簽名方式。比特幣用戶需要跨鏈時,先將BTC 轉到一個多簽地址進行託管,並在交易中加入備註資訊(如跨鏈的目標地址)。多簽帳戶由L2 鏈的節點共同管理,一般每個節點持有一個多簽私鑰。當節點確認多簽帳戶收到BTC 時,會在L2 鏈上用戶跨鏈的目標位址鑄造對應數量的BTC 。當用戶跨鏈提現回Bitcoin 網路時,L2 節點確認提現請求有效後,觸發一筆Bitcoin 網路上跨鏈橋多簽帳戶向用戶轉帳的交易,並分別用各自私鑰對該交易進行簽署並提交。

優點

最傳統的跨鏈方案,其特點在於穩定,開發快速,成本較低,同時經過了大量的實踐檢驗。在此基礎上,也還能夠增加額外的安全措施,例如可以將簽名服務獨立部署,形成簽名機,隔絕網絡,只讓簽名機和必要的其他服務鏈接起來。

缺點

多重簽名技術的隱私性無法得到保障,解鎖多簽腳本時將暴露多籤的公鑰,交易手續費偏高。

案例解析

鏈X

ChainX 的1.0版本的BTC 跨鏈方案已經成功運行了一段時間,並且一度走在市場前列,上線之初在極短的時間內跨鏈BTC 價值就已突破千萬美金。 ChainX 的1.0 版本就是多重簽章託管方案。

資產進入

ChainX 運行比特幣輕節點,Relay 即時傳輸Header 以保持最長鏈更新。當使用者向託管人的多簽位址發送轉賬,並將使用者的ChainX 位址以十六進位格式新增至OP_RETURN 作為交易中的Note 時,只有具有OP_RETURN Note 的轉帳交易才會被跨鏈橋識別接受。監控比特幣網絡,在交易的區塊被Bitcoin 確認後,向跨鏈橋提交Tx、Proof、OP_RETURN 及相關信息,跨鏈橋對Tx 和OP_RETURN 進行驗證。如果兩者都有效,X-BTC 將發行至OP_RETURN Note 所附的ChainX 位址。

資產退出

使用者在ChainX 網路中發起BTC 提現,會促使ChainX 跨鏈橋/閘道器中的記錄模組動作,鎖定對應數量的X-BTC,並記錄與使用者ID 相關的使用者申請資訊。同時託管人定期獲取正在進行的提現信息,據此形成BTC 提現交易並提交至ChainX 比特幣跨鏈橋,然後鎖定相應的提款記錄,最後由其他託管人共同簽署這筆交易。簽名完成後將交易提交至BTC 網絡,如果交易得到確認,將交易和證明路徑提交給傳輸跨鏈橋以驗證Tx。如果有效,相應的提現記錄將被關閉,鎖定的X-BTC 將被銷毀。

方案二:Schnorr 多簽

概述

Schnorr 多簽是在Taproot 升級當中引入的一種聚合簽名形式。相較於傳統的多簽(例如P2SH),儘管能夠實現mn 的門限簽名,但是需要將每一個使用的公鑰都輸入到解鎖腳本中,這樣一來就會佔據大量的交易成交量。但是對於一個採用了Schnorr 多簽的鎖定腳本來說,僅僅需要一個簽名就能夠解鎖了。

具體來說,Schnorr 相較於傳統的簽章方案而言,其最大的優點在於能夠進行聚合,即多個簽章可以簡單地合併。具體來說,對於給定的訊息m1、m2、…、mn,其對應的多個簽章s1、s2、…、sn可以直接相加,得到一個聚合的簽章s = s1 + s2 + … + sn。

由於多個Schnorr 簽章能夠以相加的方式進行聚合,因此單一Schnorr 簽章與聚合Schnorr 簽章的表現是一致的。它們具有相同的地址格式,同時和傳統的單一簽名幾乎佔用相同的空間。這個優點使得它非常適合用來壓縮簽名的成交量。比特幣在Taproot 升級之後支援了對Schnorr 簽名的原生驗證。

比特幣Layer2跨鏈橋多簽資產託管案例解析

優點

透過聚合,可以大幅減少簽名的大小和驗證的開銷,特別是在多方簽名或批量簽名的情況下,能夠提高效率並降低資源消耗。基於Schnorr 多簽的解鎖通常只需要一個簽名,而傳統的mn 多簽則至少需要提供m個簽名。

同時,由於Schnorr 多簽位址和普通的公鑰位址是完全相同的,Schnorr 簽章也能夠有效的進行隱私保護。傳統的多簽地址則需要一個截然不同的鎖定腳本。

缺點

由於Schnorr 簽名的特性,其只能用於建構nn 的門限簽名,它要求提供所有參與到聚合過程中的簽名才能夠解鎖。如果有任意一個私鑰遺失,則會導致資產鎖死。同時,Schnorr 簽章本身需要在鏈下進行聚合,其需要透過額外的鏈下協議,完成對簽章的聚合(例如MuSig ),這個步驟可能會引入額外的隱私和安全風險。

案例解析

具體實踐當中,暫時沒有直接使用Schnorr 簽章位址作為跨鏈橋的案例,但從理論上是可行的。

方案三:Schnorr 多簽+ Taproot

概述

在比特幣主網進行Taproot 升級之後,透過Schnorr 簽章技術來建構mn 的多簽Taproot 帳號成為了可能。透過建構一個特殊的Tapscript,就能夠實現基於Schnorr 的門限簽章。

任何一個Tapscript 腳本都可以被理解為存在多個條件,並且可以按照每個條件解鎖的特殊腳本。其中,每個分支所對應的解鎖腳本,事實上都是默克爾化抽象語法樹(MAST)的葉子節點。顯然,只要將Schnorr 簽名的不同可能的結果,都作為一個獨立的葉子節點,就能夠實現mn 的多簽錢包了。

具體來說,產生這樣一個Tapscript 需要多方在鏈下完成腳本的建構。以2-3多簽為例,首先在鏈下,參與者必須先建構多組可能的Schnorr 多簽。例如透過MuSig2,三個參與者A,B,C 分別產生Sig1(A,B),Sig2(B,C) 以及Sig3(A,C)。之後,需要將這三個生成的Schnorr 簽名Sig1,Sig2,Sig3 分別放在不同的葉子結點中並加入OP_CHECKSIG。最後,透過葉子結點,產生最終的梅克爾樹根,即可完成一個Taproot 的多簽錢包,如下圖所示。

比特幣Layer2跨鏈橋多簽資產託管案例解析

優點

能夠在Schnorr 簽名的基礎上實現mn 的原生多簽,並且具備原生Schnorr 多簽的其他優點,例如隱私保護,減少空間佔用等。同時,其使得多簽錢包能夠擁有的碎片數量得到了極大的拓展,理論上完全能夠使用數百個密鑰構建更加去中心化的跨鏈橋,進一步增加多簽方案的安全性。

缺點

由於其依然使用了Schnorr 簽章技術作為基礎,因此依然需要鏈下協商過程來產生聚合簽章。同時,隨著簽名方的增加,Tapscript 需要處理的葉子節點也會隨之增加,使得效率降低。並且,在參與簽章方增加的同時,鏈下聚合過程中由於協議缺陷,導致資訊外洩的風險也更高了。

案例解析

BEVM

BEVM 是一條Bitcoin 二層網絡,盡可能的利用了Bitcoin Core 0.21 之後的一些特性。比特幣中的用戶A透過將比特幣發送到BEVM 指定的,包含了Tapscript 的,一個使用了聚合公鑰的帳戶之中以進行跨鏈;並透過在BEVM 中銷毀掉對應的代幣進行退出。

BEVM 上的每個POS 共識節點都自備一把BTC 閘限簽章私鑰:是透過Taproot(Schnorr + Mast 合約)技術產生的N 個閘限合約私鑰,負責託管互動BTC 網路上的資產和資料。 BTC 閘限簽章私鑰是透過POS質押邏輯選出n 個共識節點產生的,n 最大可以支援到1000,如下圖所示。

比特幣Layer2跨鏈橋多簽資產託管案例解析

資產進入

用戶將BTC 發送到了跨鏈橋Taproot 地址當中,Bitcoin 礦工接受到了這筆交易。在BEVM 當中,每個礦工都需要同時運行一個比特幣網路的輕節點,以便於快速的識別比特幣中打過來的交易。在確定用戶將BTC 打入Taproot 位址之後,礦工們將根據協議,在另外一個和用戶商議好(或在生成之後發送給他)的地址中,加入相同數量的BEVM BTC。

資產退出

使用者若希望退出BEVM,首先,使用者在BEVM 的EVM 平台提交跨回BTC網路的交易請求,然後BEVM 的n 個POS 共識節點會用BTC 門限託管合約進行大於2/3的BFT 投票,投票通過後會產生BTC Taproot 交易。隨後,BTC Taproot 交易會被提交到BTC 網絡,完成BTC 鏈上資產的交互。在這筆交易得到了足夠的確認之後,用戶將收到BTC,其擁有的BEVM BTC 被銷毀,整個跨鏈生命週期結束。

建構Taproot 帳號以及Tapscript

從以上的流程可以看到,BEVM 從工程實務的角度來看,最關鍵的部分顯然就是如何建構這個Taproot 帳戶,以及這個帳戶對應的Tapscript 應該如何建構。但是Tapscript 支援對Schnorr 簽章進行驗證,透過OP_CHECKSIGADD 指令,能夠累進式的判斷最終簽章是否成功。

方案四:DLC (Discreet Log Contracts)

概述

謹慎日誌合約(DLC)的方案同樣基於傳統多簽方案。用戶將資金儲存在一個與專案方共同參與的2-2 多簽錢包中,並且建構多筆交易,按照預言機發出的信息,來決定最終資金的去向。

具體來說,首先,DLC 的參與雙方A 和B 共同創建一個2-2 的多簽地址,並將資金發送到當中。接下來,A和B將會和預言機一起,依照可能出現的結果,用多簽地址中的代幣,再建構多筆交易。這些交易稱為Contract Execution Transactions (CET),於鏈下保存。最後,預言機可以根據結果,對某一個特定的CET 進行簽名,並提交上鍊,完成整個DLC 的生命週期。預言機與專案方的差別,相較於直接掌握跨鏈橋私鑰的項目方,預言機作為第三方作惡或竄謀過程會更複雜且不可控。

如下图所示,与其他跨链桥显著不同的一点是,DLC 需要为每一个用户单独构造一个地址(或者让用户自行构建 DLC 地址)。

比特幣Layer2跨鏈橋多簽資產託管案例解析

優點

透過DLC 跨鏈方案,使用者對跨鏈橋帳戶擁有更多的自主權,不需要第三方託管資金;同時DLC 也能夠透過HTLC 建構逃生艙,使得資金相對安全。相較於多簽跨鏈橋,使用者可以用自己建構的帳戶完成跨鏈,而無需依賴專案方提供的特定位址。同時,相較於專案方,預言機網路由於無法查看DLC 的鏈下部分,因此更加安全可信。

缺點

儘管預言機與專案方進行了區分,但是依然存在著惡意的預言機與DLC 參與者進行竄謀的可能性。在預言機被操縱的情況下,用戶的資金將可能被意外的劃轉。

案例解析一

DLC連結

在DLC.link 當中,強調這樣一個概念,即DLC.link 官方不會參與到任何L1 的事務當中,如DLC 的創建,資金的接收等,而是全部在對手盤之間完成。下圖是DLC.link 簡化後的鑄造流程。

比特幣Layer2跨鏈橋多簽資產託管案例解析

資產進入

與傳統跨鏈橋不同,用戶可以被允許自發的生成一個DLC 腳本,其中,參與的雙方分別為DLC 指定的做市商以及用戶,它們需要通過鏈下協議,構建一個2-2 的多簽錢包。之後,它們還需要按照一定的清算標準,在鏈下設定好所有可能發生的期貨交易(CET),以及觸發這些交易所所需的預言機簽章。

用戶在創建完成DLC 腳本之後,需要等待4-6 個比特幣區塊的確認,之後,DLC 網路中的節點將會使用它們的輕節點抓取所有有效的DLC 信息,並根據他們進行dlcBTC 的鑄造。

資產退出

當使用者試圖退出DLC.link 網路的時候,有以下幾種可能的方式,正常提現和逃生艙(Escape Hatch)。在正常的情況下,如果預言機接收到來自L2 訊息,表示用戶有提現意圖,資金將返還給用戶,同時對應的dlcBTC 被銷毀。而如果DLC 帳戶長時間未收到訊息(例如,一年)的情況下,資金能夠透過CET 當中的一筆包含了HTLC 的特殊交易自動返回給用戶。

案例解析二

野牛

Bison 提供了一個專注於解決比特幣Layer2 生態中的安全性、速度和使用者體驗的跨鏈橋技術。透過結合多簽錢包和DLC,Bison 能夠提供一個高效且安全的跨鏈轉移解決方案。

比特幣Layer2跨鏈橋多簽資產託管案例解析

資產進入

當任一資產試圖進入Bison 網路時,使用者需要將資產傳送至一層網路的DLC 當中。該DLC 是一個鏈上的多簽地址,由Bison 和用戶共同擁有。因此Bison 無法在未經用戶授權的前提下對比特幣進行轉移。在用戶試圖在Bison 網路使用這些質押的比特幣之前,他需要先提供一個DLC 的簽名,才可以使得未來的交易能夠進行。

資產退出

如果用戶希望將他的比特幣移回自己的錢包,Bison 會簽署一條訊息,以便用戶可以將資金轉移。當Bison 網路在指定時間範圍內沒有進行相應,DLC 透過HTLC 自動解鎖,將剩餘的比特幣退回給用戶。這種機制確保使用者在決定在Bison 網路上使用它們之前,保留對資金的自我保管。

總結

以上四種方案,各有優缺點,除第三種外,其他的都有應用案例。

針對BTC L2 的跨鏈橋方案,最終的目標都是能夠建立一個去信任的資產託管方案。能夠在盡量保障用戶資金安全的同時,確保最終L1 結算的正確性。現階段來看,基於Tapscript 的Schnorr 多簽與DLC 方案能較大程度上降低作惡與合謀的風險,增加跨鏈橋的安全性。除此之外,跨鏈橋也需要健壯且去信任的驗證者網路來維護,我們未來也會對如何建立它進行討論。

感謝BEVM CEO Gavin ,Bison Labs CEO Jay、Rooch Network 共同創辦人JoleStar 對本文的貢獻。

Total
0
Shares
Related Posts