BitVM橋與OP-DLC:新一代比特幣Layer2跨鏈橋的設計思路

進階5/24/2024, 9:02:26 AM
本文介紹BTC提款橋優化思路,Bitlayer針對BitVM橋不足而提出的OP-DLC橋,該技術允許在比特幣鏈上實現輕量級的智能合約功能,減少了對中央權威的依賴,增加了交易 的去中心化和去信任化程度。

摘要:· ZK橋在A鏈上部署智能合約,直接接收驗證B鏈區塊頭及相應零知識證明,確認跨鏈消息的有效性,屬於安全級別最高的橋接方案;樂觀/OP橋通過欺詐證明對無效的跨鏈消息進行鏈上挑戰,只需存在1個可靠的挑戰者,即可保證跨鏈橋資金池的安全;

· 比特幣主網因爲存在技術上的限制,無法直接部署ZK橋,但可以通過BitVM和欺詐證明實現樂觀橋。Bitlayer和Citrea等團隊採用了BitVM橋的方案,引入預籤名,結合了通道的思想,讓用戶在正式存款前,對存款執行後的處理流程進行限定,不給跨鏈橋官方挪用用戶存款的機會。

· BitVM橋本質基於“墊付-報銷”模式,有專門的Operator節點爲提款用戶打錢,Operator可以定期向公共存款地址申請報銷。如果Operator存在不實的報銷申請,可以被任何人挑戰並Slash;

· BitVM橋在理論上不存在安全問題,但存在活性/可用性問題,而且不能滿足特定用戶對資金獨立性和反洗錢的需求(本質還是資金池的模式)。Bitlayer對此增設了名爲OP-DLC的橋接方案,該方案類似於DLC.link,在通道和DLC的基礎上引入欺詐證明,防止DLC橋的預言機作惡。

· 由於BitVM和欺詐證明的落地難度大,DLC橋會率先落地並成暫時的替代物,只要解決預言機的信任風險,集成更爲可靠成熟的第三方預言機,DLC橋可以在現階段成爲比多籤橋更安全的提款驗證方案。

導語:自去年的銘文熱潮以來,比特幣生態便以井噴之勢步入高速增長期,短短半年時間,打着BTC Layer2旗號的項目便已達到近100家,簡直成了一片亂象迭出、機會與騙局共存的新大陸。毫不誇張的說,現在的比特幣生態已經是以太坊、Cosmos與Celestia、CKB和比特幣native生態的“多民族大熔爐”,加之缺乏權威的聲音,比特幣生態體系簡直就像19世紀的美國一樣,成爲了吸納各路勢力的新天地。這在爲整個Web3敘事帶來繁榮與活力的同時,也引入了巨大的風險。

許多項目在連技術方案都沒發布的情況下,就開始肆意炒作,打着native layer2的名號,聲稱能完整繼承比特幣主網的安全性;更有甚者玩起了造概念的宣傳手法,發明一堆光怪陸離的名詞術語,作爲宣揚自身優越性的臺詞。雖然自吹自擂已然是比特幣生態的現狀,但還是有不少頂級KOL發出了客觀的呼聲。

前不久,區塊鏈瀏覽器Mempool創始人Monanaut公開批判了當下比特幣生態的問題,他犀利的指出,如果一個比特幣Layer2單純採用多籤形式的提款橋,無法以一種去信任的形式讓用戶把資產隨時撤出,這樣的項目就不是一個真正的Layer2。有趣的是,此前Vitalik也曾指出,Layer2在安全保障上至少應比單純依賴於多籤的系統更安全。

可以說,Monanaut和Vitalik直言不諱的指出了比特幣Layer2在技術上的問題:很多L2的提款橋本質都是多籤橋,要麼是幾個知名機構各執一道密鑰,要麼採用基於POS的去中心化籤名,但無論如何,其安全模型都基於多數誠實假設,即默認大多數多籤參與者不串謀作惡。

這種嚴重依賴於信用背書的提款橋方案絕非長久之計,歷史已經告訴我們,多籤橋遲早會出各種各樣的問題,只有信任最小化或是趨於完全去信任的資產托管方式,才能經受住時間和黑客的考驗。但比特幣生態的現狀是,很多項目方連提款橋技術路線圖都沒有發布,對於橋該如何去信任或是信任最小化,壓根沒有成型的設計思路。

但這並非比特幣生態的全部。目前仍然有一些項目方針對提款橋優化思路發表了意見。在本文中,我們將對Bitlayer以及Citrea的BitVM橋進行簡要解析,並介紹Bitlayer針對BitVM橋的不足而提出的OP-DLC橋,讓更多人理解跨鏈橋的風險與設計思路,這對於廣大比特幣生態參與者而言,至關重要。

樂觀橋:基於欺詐證明的橋接驗證方案

其實,跨鏈橋的本質很簡單,就是向B鏈證明A鏈上的確發生了某事件。比如說,你從ETH往Polygon上跨資產,要讓跨鏈橋幫你證明,你確實向ETH鏈上的特定地址轉入了資產,然後你可以在Polygon鏈上接收等量資金。

傳統的跨鏈橋一般採用見證人多籤,他們會在鏈下指定幾個見證人,見證人要運行各條公鏈的節點,監測是否有人向跨鏈橋收款地址充入了資金。

這類跨鏈橋的安全模型和多簽錢包基本一致,要按照多籤設置方式比如M/N來判定其信任模型,但最終基本都遵循誠實多數假設,就是默認多數公證人都是無惡意的,容錯率比較有限。此前發生過的多起大數額的跨鏈橋被盜案,基本都發生在這類多籤橋身上,要麼是監守自盜,要麼是被黑客攻擊。

相比之下,基於欺詐證明協議的“樂觀橋”,和基於ZK的“ZK橋”,要安全的多。以ZK橋爲例,它會在目標鏈上設置專用的驗證器合約,直接在鏈上驗證提款證明,免去對鏈下見證人的依賴。

比如說,一個橫跨ETH和Polygon的ZK橋,會在Polygon上部署一個驗證者合約,暫且記作Verifier。ZK橋的Relayer節點會將最新的以太坊區塊頭,及證明有效性的ZK Proof轉發給Verifier,由後者驗證。這相當於讓Verifier合約在Polygon鏈上同步並驗證最新的以太坊區塊頭。區塊頭上記錄的merkle root與區塊內包含的交易集合有關聯性,可以用於驗證區塊中是否包含某筆交易。

如果在區塊高度爲101的以太坊區塊內,包含10筆從ETH到Polygon的跨鏈轉帳聲明,Relayer會生成與這10筆交易相關的Merkle Proof,向Polygon鏈上的Verifier合約提交證明:

101號以太坊區塊內包含10筆ETH到Polygon的跨鏈交易。當然,ZK橋可以把Merkle Proof進行ZK化,直接向Verifier合約提交ZK Proof。這整個流程中,用戶只需要信任跨鏈橋的智能合約沒有漏洞,以及零知識證明技術本身安全可靠,不需要像傳統多籤橋那樣引入過多的信任假設。

而“樂觀橋/Optimistic Bridge”要略爲不同,一些樂觀橋保留了類似於見證人的設定,但是會引入欺詐證明和挑戰窗口期,見證人對跨鏈消息生成多籤後,雖然會提交至目標鏈上,但其有效性不會被立刻認可,要度過一個窗口期且無人提出質疑,才能被判定爲有效。這其實和Optimistic Rollup(樂觀Rollup)的思路有些類似。當然,樂觀橋還有其他的產品模式,但歸根結底,安全性是靠欺詐證明協議來保障的。

M/N多籤橋的信任假設是N-(M-1)/N,你要假設網路中的惡意者數量最多只有M-1個,則誠實者數量至少爲N-(M-1)。ZK橋的信任假設可以忽略不計,而基於欺詐證明的樂觀橋,信任假設爲1/N,N個見證人中只需要有一個誠實,願意對提交至目標鏈的無效跨鏈消息進行挑戰,便可保證橋的安全。

目前,由於技術上的限制,只能實現比特幣向Layer2存款方向的ZK橋,而如果方向相反,從Layer2向比特幣鏈上提款,只支持多籤橋或樂觀橋,或是類似於通道的模式(下文要講述的OP-DLC橋更像是通道)。要在比特幣鏈上實現樂觀橋,就要引入欺詐證明,bitVM爲這一技術的實現創造了良好條件。

在此前的文章《極簡解讀BitVM:如何在BTC鏈上驗證欺詐證明》,我們曾簡單介紹過,BitVM的欺詐證明,本質是把鏈下進行的復雜計算任務,拆解爲大量的簡單步驟,再挑出某一步放在比特幣鏈上直接驗證。這種思路和Arbitrum、Optimism等以太坊樂觀Rollup比較類似。

(BitVM2 文檔中提到將通過Lamport籤名把一個計算任務拆分爲大量的中間步驟,然後任何人可以對某個中間步驟進行挑戰)

當然,上述說法還是比較晦澀,但相信大多數人早就對欺詐證明的含義有所了解。在今天的這篇文章中,受限於整體篇幅,我們不打算對BitVM和欺詐證明協議的技術實現細節進行解讀,因爲這涉及到一系列復雜的交互流程。

我們將從產品與機制設計的角度簡要介紹BitLayer和Citrea、BOB乃至於BitVM官方設計的原生BitVM橋,以及Bitlayer如何通過OP-DLC橋來緩解BitVM橋的瓶頸,向大家展示如何在比特幣鏈上設計出更優越的提款橋方案。


(Bitlayer的橋接方案示意圖)

Bitlayer和Citrea的BitVM橋原理簡析

下文中,我們以Bitlayer和Citrea、Bob已公布的BitVM橋方案作爲素材,來闡明BitVM橋的大體運作流程。

在其官方文檔和技術博客中,上述項目方比較清晰的解釋了BitVM提款橋的產品設計思路(目前處於理論階段)。首先,當用戶通過BitVM橋提款時,需要借助Layer2上的Bridge合約生成提款聲明,提款聲明中會指定以下關鍵參數:

提款人需在L2銷毀的映射版BTC數量(如1個BTC);

提款人打算支付的跨鏈手續費(假設爲0.01個BTC);

提款人在L1的收款地址:L1_receipt;

提款人的收款金額(即1 — 0.01 = 0.99BTC)

之後,上述提款聲明會被包含進Layer2的區塊中。BitVM橋的Relayer節點會同步Layer2區塊,監聽其中包含的提款聲明,並將其轉發給Operator節點,由後者爲提款用戶打款。

這裏需要注意的是,Operator是先自掏腰包在比特幣鏈上爲用戶打款,也就是替BitVM橋“墊付”資金,之後再向BitVM橋的資金池申請補償。

Operator在申請報銷時,需要提供自己在Bitcoin鏈上的墊付證明(就是證明自己在L1上向提款用戶指定的地址打款了,要把包含在比特幣區塊中的特定轉帳記錄抽出來)。同時,Operator還要出具提款人在L2生成的提款聲明(通過Merkle Proof,證明出具的提款聲明來自於L2區塊中,而不是自己憑空捏造的)。之後,Operator需要證明如下事項:

Operator替BitVM橋墊付給提款人的資金,等於提款人在聲明中要求的收款金額;

Operator申請報銷時,報銷金額不多於提款人在Layer2銷毀的映射版BTC金額;

Operator的確把一段時間內的L2-L1提款聲明全部處理了,每一筆提款聲明都能匹配到比特幣鏈上的提款轉帳記錄;

這本質是對Operator謊報墊付金額,或是拒絕處理提款聲明的懲罰(可以解決提款橋的抗審查問題)。Operator需要在鏈下對墊付證明和提款聲明的關鍵字段進行對比驗證,證明兩者涉及的BTC數額相等。

而如果提款橋Operator謊報墊付金額,就是指Operator聲稱在L1上的payment proof,和L2提款人發出的Withdrawal Statement相匹配,但實際情況卻是兩者並不匹配。

這樣一來,證明Payment Proof = Withdrawal Statement 的ZKP一定是有錯誤的。只要這個ZKP被發布出去,Challanger就可以指出其中哪一步有錯,並通過BitVM2的欺詐證明協議進行挑戰。

需要強調的是,Bitlayer和Citrea、BOB、ZKBase等都採用了最新的BitVM2路線,也就是新版的BitVM方案,這種方案會把鏈下的計算任務ZK化,也就是說,爲鏈下進行的計算過程生成ZK Proof,然後對Proof進行驗證,之後把驗證ZKP的過程轉化爲適配於BitVM的形式,便於後續的挑戰。

同時,通過採用Lamport和預籤名,可以把原始BitVM的多輪交互式挑戰,優化爲單輪非交互式挑戰,極大程度降低了挑戰的難度。

BitVM的挑戰流程需要用到一種稱爲“承諾”的東西,即Commitment。我們解釋下什麼是“承諾”。一般而言,在比特幣鏈上發布“承諾”的人會聲稱,某些存放在鏈下的數據/發生在鏈下的計算任務是準確無誤的,而發布到鏈上的相關聲明就是“承諾”。

我們可以近似的把Commitment理解爲一大批鏈下數據的hash。承諾Commitment本身的尺寸往往被壓縮的很小,但其可以通過Merkle Tree等方式,與大量的鏈下數據相綁定,而這些被關聯的鏈下數據無需上鏈。


在BitVM2和Citrea、BitLayer的BitVM橋方案中,如果有人認爲提款橋Operator在鏈上發布的承諾有問題,該承諾關聯了無效的ZKP驗證流程,就可以發起挑戰,而且挑戰權限是Permissionless的。(裏面的交互流程比較復雜,在此不展開解釋)

由於Operator是替BitVM資金池墊付資金來給提款人打款,之後再向資金池申請報銷,在申請時,Operator要發布一個Commitment,證明自己在L1上給提款人轉的錢,等於提款人在L2上聲明要收到的錢。如果這個Commitment經過了欺詐證明窗口期仍然沒有被挑戰,Operator就可以取走自己需要的報銷金額。

這裏我們要解釋下BitVM橋的公共資金池是如何維護的,而這恰恰是跨鏈橋最關鍵的部分。大家都知道,跨鏈橋能兌付給提款人的資金,來源於存款人或是其他LP貢獻的資產,而Operator墊付出去的錢,最終都要從公共資金池抽走,所以單純看資金的轉移結果,BitVM橋吸收的存款人Deposit金額,應等於提款人Withdraw的金額。那麼如何保管Deposit的資金,就是一個很重要的問題。

在大多數比特幣Layer2的橋接方案中,往往通過多籤來管理公共資產,用戶的存款被匯總到一個多籤帳戶中,當需要給提款人打款時,就由這個多籤帳戶負責打款,這種方案顯然是存在巨大的信任風險的。

而Bitlayer和Citrea的BitVM橋,採用了類似於閃電網絡和通道的思想,用戶在存款前,會先和BitVM聯盟進行通訊,讓後者進行預籤名,以達成以下效果:

用戶向充值地址轉入存款後,這些錢會直接鎖定在一個Taproot地址上,只能由橋的Operator來領取。而且,Operator只有向用戶墊付了提款資金後,通過申請報銷的方式,向上述存款的Taproot地址申領資金。挑戰期結束後,Operator才能把一定額度的用戶存款取走。

在BitVM橋方案中,存在由N個成員組建的BitVM聯盟(BitVM Federation),由他們對用戶的存款進行調度。但這N個成員無法私自挪用用戶的存款,因爲用戶在向指定地址打款前,會要求BitVM聯盟先進行預籤名,確保這些存款只能被Operator合法申領。

(BitVM2對其樂觀橋方案的示意圖)

高度概括,BitVM橋採用了類似於通道和閃電網絡的思想,讓用戶“verify by yourself”,通過預籤名的方式讓BitVM聯盟無法擅自操縱存款池,存款池的錢只能用於爲Operator報銷資金。如果Operator謊報墊付金額,任何人都可以發布欺詐證明並進行挑戰。

如果上述方案可以落地,屆時BitVM橋將成爲最安全的比特幣提款橋之一:這種橋不存在安全問題,僅存在可用性/活性問題。用戶在嘗試向BitVM存入資金時,可能遭到BitVM聯盟的審查或拒絕配合,導致無法順利存入資金,但這與安全無關而屬於活性/可用性問題。

但BitVM橋的落地難度比較大,而且也無法滿足一些對資金透明度要求比較高的大戶的需求:這些人可能涉及到反洗錢問題,不太希望把自己的資金與別人的資金混到一起,但BitVM橋會統一收納存款者的錢,某種程度上是一個混雜很多錢的池子。

爲了解決上述BitVM橋的活性問題,以及爲有特定需求的人提供獨立幹淨的資金出入通道,BitLayer團隊額外增設了名爲OP-DLC的跨鏈橋方案,在BitVM2的樂觀橋之外,採用了類似於DLC.link的DLC橋,爲用戶提供BitVM橋和OP-DLC橋兩個出入口,以此降低對BitVM橋乃至於BitVM聯盟的依賴。

(DLC原理圖)

DLC:謹慎日志合約

DLC(Discreet Log Contracts)名爲謹慎日志合約,由MIT的Digital Currency Initiative提出,該技術最早用於在比特幣上實現一種輕量級的智能合約,不需要把合約的內容上鏈,就可以通過鏈下交互式通訊和預籤名等方法,在比特幣鏈上實現出保護隱私的智能合約功能。下面我們通過一個賭球案例來說明DLC的工作原理。

假設Alice與Bob要對3天後舉行的皇馬和巴薩的比賽結果打賭,兩人各出1個btc。如果皇馬勝出,則Alice可以獲得1.5 BTC,Bob只能收回0.5 BTC,這就相當於Alice賺0.5個BTC,Bob虧損0.5 BTC;如果巴薩勝出,Alice只能收回0.5 BTC,Bob則可以拿走1.5 BTC。如果平局,兩人各自從拿回1個BTC。

如果我們要讓上述對賭過程變得去信任化,就要想辦法防止任何一方耍賴,如果單純用2/2多籤或是2/3多籤,顯然還不夠去信任。DLC針對這一要點給出了自己的解決方案(要依賴於第三方預言機)。其整個工作流程大體可以分爲四部分。

以前面的Alice和Bob爲例,首先,雙方在鏈下創建一筆fund交易,這可以把彼此的1枚BTC鎖在2/2多簽地址上,如果這筆fund交易生效,則該多簽地址裏的2枚BTC需要雙方都授權,才能被花費。

當然,這筆Fund交易先不上鏈,只留存在鏈下的Alice和Bob客戶端本地,他們都知道這筆交易生效後會有什麼後果。目前雙方只是在進行理論推演,然後根據推演的結果達成一系列協議。

在DLC創建的第一階段,我們可以確定的是,雙方將在未來把各自的1枚BTC鎖入一個多簽地址中。

第二步,雙方繼續推演未來可能發生的事件和結果:比如,當球賽結果公布後,可能是Alice贏Bob輸、Alice輸Bob贏、平局等多種可能,這會導致前述2/2多簽地址中的比特幣出現不同的分配結果。

不同的結果需要由不同的交易指令來觸發,這些“可能在未來上鏈的交易指令”被稱爲CET,即合約執行交易(Contract Execution Transaction)。Alice和Bob要事先推演出所有的CET,生成包含全部CET的交易數據集。

例如,根據前述Alice和Bob對賭的幾種可能結果,Alice創建出以下幾種CET:

CET1:Alice可從多簽地址獲得1.5枚BTC,Bob可獲得0.5枚BTC;

CET2:Alice可從多簽地址獲得0.5枚BTC,Bob可獲得1.5枚BTC;

CET3:雙方各自可獲得1枚BTC。

我們以CET1爲例(Alice拿 1.5 BTC,Bob拿 0.5 BTC):

這筆交易的意思是,把多簽地址中的1.5枚BTC,轉移到一個由Alice和預言機輸出結果共同觸發的Taproot地址,另外0.5枚BTC轉移給Bob的地址。此時對應的事件是:皇馬勝出,Alice贏0.5BTC,Bob輸0.5BTC。

當然,要花費這1.5枚BTC,Alice必須拿到預言機發送的“皇馬勝出”結果籤名。換句話說,只有當預言機輸出“皇馬勝利”的消息後,Alice才能夠把這1.5枚BTC轉走。至於CET2和CET3的內容,我們可以以此類推,在此不贅述。

需要注意的是,CET本質是一筆待上鏈待生效的交易,如果Alice提前把CET1廣播出去,或是在“巴薩勝出”的情況下,仍然把“皇馬勝出”後才能順利觸發的CET1上鏈,會發生什麼?

前面的示意圖中,我們提到,CET1上鏈後,會把原始多簽地址中鎖定的2枚BTC轉走,0.5枚BTC轉給Bob,1.5枚BTC轉到一個Taproot地址中,預言機輸出“皇馬勝出”後,Alice方能解鎖Taproot地址鎖定的BTC。效果如下圖所示。

同時,這個Taproot地址受到時間鎖限制,如果在時間鎖規定的窗口期內,Alice無法成功提走1.5枚BTC,則Bob有權把這些錢直接拿走。

所以,只要預言機是誠實的,Alice就無法拿走這1.5枚BTC,等時間鎖期限耗盡,Bob可以把這1.5枚BTC拿走。再算上CET1上鏈時直接轉給Bob的那0.5枚BTC,最後所有的錢都會歸Bob所有。

對於Alice而言,無論自己最終是贏還是輸,最有利的做法都是把正確的CET上鏈,把無效的CET上鏈會讓自己輸更多錢。

其實上述CET在構建時,對Taproot的schnorr籤名做了改進,可以理解爲利用預言機的公鑰+事件結果,針對不同結果構造出彼此獨立的地址。之後,等預言機公布某個結果對應的籤名,才能花費該結果對應的地址上鎖定的BTC。

當然,這裏面存在一種額外的可能。假如Alice知道自己輸了,幹脆不把自己構建的CET1上鏈,這個時候怎麼辦?這個很好解決,因爲Bob可以針對“alice輸,Bob贏”一事構建出自定義的CET,這個CET達成的效果和Alice構建的CET基本一致,只是具體細節不一樣,但結果是一樣的。

上面講述的就是最關鍵的CET構建流程。而DLC的第三步,是Alice和Bob雙方進行通訊,檢查對方構建的CET交易,帶上自己對該CET的籤名,檢查無誤後,可以信任彼此,便各自出資1枚BTC,鎖入最開始提到的那個Alice和Bob的2/2多簽地址,然後等待某個CET被上鏈,觸發後續的流程。

最後,等預言機公布結果,拿到預言機對結果的籤名後,任意一方可以把正確的CET上鏈,讓多簽地址中鎖定的2枚BTC被再分配,如果輸家搶先把錯誤的CET上鏈,會讓自己損失所有的錢,如果把正確的CET上鏈,輸家還可以收回0.5BTC。

可能有人會問,DLC與普通的2/3多籤有何不同?首先,2/3多籤下,任意兩方串謀即可盜走全部資產,而DLC通過提前構建CET集合的方式,讓對手方之間把全部的場景都限制住了,就算預言機參與串謀,造成的損失往往也有限。

其次,多籤需要各方針對具體的待上鏈交易進行籤名,而在DLC的設定下,預言機只需要對特定事件的結果進行籤名,不需要知道CET/待上鏈交易的內容,甚至完全不需要知道有Alice和Bob這兩個人,只需要像普通的預言機那樣和用戶進行正常的交互即可。

我們可以認爲,DLC本質是把對多籤參與方的信任轉變成了對預言機的信任,只要預言機不參與作惡,就可以保證DLC的協議設計足夠去信任。理論上來說,DLC可以採用比較成熟完善的第三方預言機,來避免作惡。而DLC.link和BitLayer利用了DLC的這種特性,把橋的信任問題轉嫁給了第三方預言機。

此外,Bitlayer的DLC橋還支持自建的預言機節點,在此之上加上了一層欺詐證明,當自建的預言機把無效的CET上鏈時,允許任何人對其進行挑戰。關於其OP-DLC橋的原理,我們將在下面展開簡述。

OP-DLC橋:DLC通道+欺詐證明

我們從存取款的全流程來解釋OP-DLC橋的運轉原理。假設現在Alice通過OP-DLC橋向L2存款1枚BTC,根據兩步交易機制,ALice先生成一個pre-fund交易,如下圖:

這其實是先把1枚BTC轉移到Alice和BitVM聯盟成員共同控制的Taproot地址中,然後開啓創建CET的一系列流程。如果BitVM橋聯盟成員拒絕配合Alice的存款請求,Alice可以等時間鎖結束後,把錢立刻抽回去。

如果BitVM聯盟成員願意配合Alice,雙方便通過鏈下通訊的方式,先生成正式的Fund存款交易(先不上鏈),以及提款場景下全部的CET,待CET生成和檢驗結束後,雙方才把Fund交易提交上鏈。

在Fund交易的Witness/籤名數據裏,Alice會指定自己在Layer2的收款地址;Fund交易上鏈後,Alice可以向Layer2上的橋合約提交上述fund交易數據,證明自己在比特幣鏈上完成了存款動作,有資格讓L2橋合約向指定的收款地址釋放Token。

Fund交易觸發後,存款實際上還是被鎖定於Alice和BitVM聯盟成員共同控制的Taproot多簽地址中。但要注意,該多籤只能通過CET來解鎖該地址鎖定的BTC,BitVM聯盟不能平白無故把錢轉走。

接下來我們來解析Alice和BitVM聯盟事先構建好的CET。這些CET用來滿足未來提款時的潛在場景,比如Alice可能存入了1枚BTC,但她初次提款時只提走0.3枚BTC,剩下的0.7枚BTC交由BitVM聯盟的公共資金池來支配,但要再提款就只能通過前文講過的BitVM橋;

或者幹脆用這0.7枚BTC發起一次新的pre-fund存款,當做是一筆新充入DLC橋的資產,可以重復前面提過的fund交易和CET構建流程。

上述流程不難理解,其實就是讓存款人Alice和bitVM聯盟互相充當對手方,爲不同金額的提款事件創建CET,然後讓預言機讀取Alice在Layer2發起的提款聲明,判斷Alice想觸發哪一個CET(想提多少錢)。

這裏面的風險在於,預言機可能和BitVM聯盟串謀,比如Alice聲明要提款0.5枚BTC,預言機卻僞造了提款聲明,最終使得“Alice收回0.1BTC,BitVM聯盟收到0.9BTC”的錯誤CET上鏈。

對此的解決方法有好幾種,首先就是可以採用在設計上比較完善的第三方預言機,防止此類串謀行爲(此時BitVM聯盟要和預言機串謀的拉攏難度極高),或者讓預言機進行質押,預言機需要定期在比特幣鏈上發布Commitment,聲明自己誠實的處理了提款人的提款請求。任何人都可以通過BitVM的欺詐證明協議對Commitment進行挑戰,如果挑戰成功,就Slash作惡的預言機。

在OP-DLC橋的設計下,用戶可以始終對自己的資產“參一手”,防止資產被BitVM聯盟挪用,而且這種類似於通道的設計方案,爲用戶帶來了更多的自主權,也不需要讓自己的資金和其他人的資金混到一起,更像一種P2P點對點的存取款方案。

此外,考慮到BitVM方案要過一段時間才能落地,在其落地前,相比於單純的多籤方案,DLC橋都是更可靠的橋接處理模型。這種方案也可以作爲與BitVM橋並行使用的兩大存取款出入口,其中一個出了故障後,用戶可以走另一個出入口,也不失爲一種好的容錯方法。

總結

BitLayer和Citrea的BitVM橋方案,本質是“墊付-報銷”模式,有專門的Operator節點爲提款用戶打錢,Operator可以定期向公共存款地址申請報銷。如果Operator存在不實的報銷申請,可以被任何人挑戰並Slash。

BitVM2的方案引入預籤名,結合了通道的思想,讓用戶在正式存款前,對存款執行後的處理流程進行限定,不給跨鏈橋官方挪用用戶存款的機會。

這種橋在理論上不存在安全問題,但存在活性/可用性問題,而且不能滿足特定用戶對資金獨立性和反洗錢的需求(本質還是資金池的模式),落地難度也很大。

爲此,Bitlayer增設了名爲OP-DLC的橋接方案,該方案類似於DLC.link,在通道和DLC的基礎上引入欺詐證明,防止DLC橋的預言機作惡。

但由於BitVM的落地難度太大,DLC橋會率先落地並成暫時的替代物,只要解決預言機的信任風險,集成更爲可靠成熟的第三方預言機,DLC橋可以在現階段成爲比多籤橋更安全的提款驗證方案。

聲明:

  1. 本文轉載自[極客web3],著作權歸屬原作者[Faust & Nickqiao],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。

BitVM橋與OP-DLC:新一代比特幣Layer2跨鏈橋的設計思路

進階5/24/2024, 9:02:26 AM
本文介紹BTC提款橋優化思路,Bitlayer針對BitVM橋不足而提出的OP-DLC橋,該技術允許在比特幣鏈上實現輕量級的智能合約功能,減少了對中央權威的依賴,增加了交易 的去中心化和去信任化程度。

摘要:· ZK橋在A鏈上部署智能合約,直接接收驗證B鏈區塊頭及相應零知識證明,確認跨鏈消息的有效性,屬於安全級別最高的橋接方案;樂觀/OP橋通過欺詐證明對無效的跨鏈消息進行鏈上挑戰,只需存在1個可靠的挑戰者,即可保證跨鏈橋資金池的安全;

· 比特幣主網因爲存在技術上的限制,無法直接部署ZK橋,但可以通過BitVM和欺詐證明實現樂觀橋。Bitlayer和Citrea等團隊採用了BitVM橋的方案,引入預籤名,結合了通道的思想,讓用戶在正式存款前,對存款執行後的處理流程進行限定,不給跨鏈橋官方挪用用戶存款的機會。

· BitVM橋本質基於“墊付-報銷”模式,有專門的Operator節點爲提款用戶打錢,Operator可以定期向公共存款地址申請報銷。如果Operator存在不實的報銷申請,可以被任何人挑戰並Slash;

· BitVM橋在理論上不存在安全問題,但存在活性/可用性問題,而且不能滿足特定用戶對資金獨立性和反洗錢的需求(本質還是資金池的模式)。Bitlayer對此增設了名爲OP-DLC的橋接方案,該方案類似於DLC.link,在通道和DLC的基礎上引入欺詐證明,防止DLC橋的預言機作惡。

· 由於BitVM和欺詐證明的落地難度大,DLC橋會率先落地並成暫時的替代物,只要解決預言機的信任風險,集成更爲可靠成熟的第三方預言機,DLC橋可以在現階段成爲比多籤橋更安全的提款驗證方案。

導語:自去年的銘文熱潮以來,比特幣生態便以井噴之勢步入高速增長期,短短半年時間,打着BTC Layer2旗號的項目便已達到近100家,簡直成了一片亂象迭出、機會與騙局共存的新大陸。毫不誇張的說,現在的比特幣生態已經是以太坊、Cosmos與Celestia、CKB和比特幣native生態的“多民族大熔爐”,加之缺乏權威的聲音,比特幣生態體系簡直就像19世紀的美國一樣,成爲了吸納各路勢力的新天地。這在爲整個Web3敘事帶來繁榮與活力的同時,也引入了巨大的風險。

許多項目在連技術方案都沒發布的情況下,就開始肆意炒作,打着native layer2的名號,聲稱能完整繼承比特幣主網的安全性;更有甚者玩起了造概念的宣傳手法,發明一堆光怪陸離的名詞術語,作爲宣揚自身優越性的臺詞。雖然自吹自擂已然是比特幣生態的現狀,但還是有不少頂級KOL發出了客觀的呼聲。

前不久,區塊鏈瀏覽器Mempool創始人Monanaut公開批判了當下比特幣生態的問題,他犀利的指出,如果一個比特幣Layer2單純採用多籤形式的提款橋,無法以一種去信任的形式讓用戶把資產隨時撤出,這樣的項目就不是一個真正的Layer2。有趣的是,此前Vitalik也曾指出,Layer2在安全保障上至少應比單純依賴於多籤的系統更安全。

可以說,Monanaut和Vitalik直言不諱的指出了比特幣Layer2在技術上的問題:很多L2的提款橋本質都是多籤橋,要麼是幾個知名機構各執一道密鑰,要麼採用基於POS的去中心化籤名,但無論如何,其安全模型都基於多數誠實假設,即默認大多數多籤參與者不串謀作惡。

這種嚴重依賴於信用背書的提款橋方案絕非長久之計,歷史已經告訴我們,多籤橋遲早會出各種各樣的問題,只有信任最小化或是趨於完全去信任的資產托管方式,才能經受住時間和黑客的考驗。但比特幣生態的現狀是,很多項目方連提款橋技術路線圖都沒有發布,對於橋該如何去信任或是信任最小化,壓根沒有成型的設計思路。

但這並非比特幣生態的全部。目前仍然有一些項目方針對提款橋優化思路發表了意見。在本文中,我們將對Bitlayer以及Citrea的BitVM橋進行簡要解析,並介紹Bitlayer針對BitVM橋的不足而提出的OP-DLC橋,讓更多人理解跨鏈橋的風險與設計思路,這對於廣大比特幣生態參與者而言,至關重要。

樂觀橋:基於欺詐證明的橋接驗證方案

其實,跨鏈橋的本質很簡單,就是向B鏈證明A鏈上的確發生了某事件。比如說,你從ETH往Polygon上跨資產,要讓跨鏈橋幫你證明,你確實向ETH鏈上的特定地址轉入了資產,然後你可以在Polygon鏈上接收等量資金。

傳統的跨鏈橋一般採用見證人多籤,他們會在鏈下指定幾個見證人,見證人要運行各條公鏈的節點,監測是否有人向跨鏈橋收款地址充入了資金。

這類跨鏈橋的安全模型和多簽錢包基本一致,要按照多籤設置方式比如M/N來判定其信任模型,但最終基本都遵循誠實多數假設,就是默認多數公證人都是無惡意的,容錯率比較有限。此前發生過的多起大數額的跨鏈橋被盜案,基本都發生在這類多籤橋身上,要麼是監守自盜,要麼是被黑客攻擊。

相比之下,基於欺詐證明協議的“樂觀橋”,和基於ZK的“ZK橋”,要安全的多。以ZK橋爲例,它會在目標鏈上設置專用的驗證器合約,直接在鏈上驗證提款證明,免去對鏈下見證人的依賴。

比如說,一個橫跨ETH和Polygon的ZK橋,會在Polygon上部署一個驗證者合約,暫且記作Verifier。ZK橋的Relayer節點會將最新的以太坊區塊頭,及證明有效性的ZK Proof轉發給Verifier,由後者驗證。這相當於讓Verifier合約在Polygon鏈上同步並驗證最新的以太坊區塊頭。區塊頭上記錄的merkle root與區塊內包含的交易集合有關聯性,可以用於驗證區塊中是否包含某筆交易。

如果在區塊高度爲101的以太坊區塊內,包含10筆從ETH到Polygon的跨鏈轉帳聲明,Relayer會生成與這10筆交易相關的Merkle Proof,向Polygon鏈上的Verifier合約提交證明:

101號以太坊區塊內包含10筆ETH到Polygon的跨鏈交易。當然,ZK橋可以把Merkle Proof進行ZK化,直接向Verifier合約提交ZK Proof。這整個流程中,用戶只需要信任跨鏈橋的智能合約沒有漏洞,以及零知識證明技術本身安全可靠,不需要像傳統多籤橋那樣引入過多的信任假設。

而“樂觀橋/Optimistic Bridge”要略爲不同,一些樂觀橋保留了類似於見證人的設定,但是會引入欺詐證明和挑戰窗口期,見證人對跨鏈消息生成多籤後,雖然會提交至目標鏈上,但其有效性不會被立刻認可,要度過一個窗口期且無人提出質疑,才能被判定爲有效。這其實和Optimistic Rollup(樂觀Rollup)的思路有些類似。當然,樂觀橋還有其他的產品模式,但歸根結底,安全性是靠欺詐證明協議來保障的。

M/N多籤橋的信任假設是N-(M-1)/N,你要假設網路中的惡意者數量最多只有M-1個,則誠實者數量至少爲N-(M-1)。ZK橋的信任假設可以忽略不計,而基於欺詐證明的樂觀橋,信任假設爲1/N,N個見證人中只需要有一個誠實,願意對提交至目標鏈的無效跨鏈消息進行挑戰,便可保證橋的安全。

目前,由於技術上的限制,只能實現比特幣向Layer2存款方向的ZK橋,而如果方向相反,從Layer2向比特幣鏈上提款,只支持多籤橋或樂觀橋,或是類似於通道的模式(下文要講述的OP-DLC橋更像是通道)。要在比特幣鏈上實現樂觀橋,就要引入欺詐證明,bitVM爲這一技術的實現創造了良好條件。

在此前的文章《極簡解讀BitVM:如何在BTC鏈上驗證欺詐證明》,我們曾簡單介紹過,BitVM的欺詐證明,本質是把鏈下進行的復雜計算任務,拆解爲大量的簡單步驟,再挑出某一步放在比特幣鏈上直接驗證。這種思路和Arbitrum、Optimism等以太坊樂觀Rollup比較類似。

(BitVM2 文檔中提到將通過Lamport籤名把一個計算任務拆分爲大量的中間步驟,然後任何人可以對某個中間步驟進行挑戰)

當然,上述說法還是比較晦澀,但相信大多數人早就對欺詐證明的含義有所了解。在今天的這篇文章中,受限於整體篇幅,我們不打算對BitVM和欺詐證明協議的技術實現細節進行解讀,因爲這涉及到一系列復雜的交互流程。

我們將從產品與機制設計的角度簡要介紹BitLayer和Citrea、BOB乃至於BitVM官方設計的原生BitVM橋,以及Bitlayer如何通過OP-DLC橋來緩解BitVM橋的瓶頸,向大家展示如何在比特幣鏈上設計出更優越的提款橋方案。


(Bitlayer的橋接方案示意圖)

Bitlayer和Citrea的BitVM橋原理簡析

下文中,我們以Bitlayer和Citrea、Bob已公布的BitVM橋方案作爲素材,來闡明BitVM橋的大體運作流程。

在其官方文檔和技術博客中,上述項目方比較清晰的解釋了BitVM提款橋的產品設計思路(目前處於理論階段)。首先,當用戶通過BitVM橋提款時,需要借助Layer2上的Bridge合約生成提款聲明,提款聲明中會指定以下關鍵參數:

提款人需在L2銷毀的映射版BTC數量(如1個BTC);

提款人打算支付的跨鏈手續費(假設爲0.01個BTC);

提款人在L1的收款地址:L1_receipt;

提款人的收款金額(即1 — 0.01 = 0.99BTC)

之後,上述提款聲明會被包含進Layer2的區塊中。BitVM橋的Relayer節點會同步Layer2區塊,監聽其中包含的提款聲明,並將其轉發給Operator節點,由後者爲提款用戶打款。

這裏需要注意的是,Operator是先自掏腰包在比特幣鏈上爲用戶打款,也就是替BitVM橋“墊付”資金,之後再向BitVM橋的資金池申請補償。

Operator在申請報銷時,需要提供自己在Bitcoin鏈上的墊付證明(就是證明自己在L1上向提款用戶指定的地址打款了,要把包含在比特幣區塊中的特定轉帳記錄抽出來)。同時,Operator還要出具提款人在L2生成的提款聲明(通過Merkle Proof,證明出具的提款聲明來自於L2區塊中,而不是自己憑空捏造的)。之後,Operator需要證明如下事項:

Operator替BitVM橋墊付給提款人的資金,等於提款人在聲明中要求的收款金額;

Operator申請報銷時,報銷金額不多於提款人在Layer2銷毀的映射版BTC金額;

Operator的確把一段時間內的L2-L1提款聲明全部處理了,每一筆提款聲明都能匹配到比特幣鏈上的提款轉帳記錄;

這本質是對Operator謊報墊付金額,或是拒絕處理提款聲明的懲罰(可以解決提款橋的抗審查問題)。Operator需要在鏈下對墊付證明和提款聲明的關鍵字段進行對比驗證,證明兩者涉及的BTC數額相等。

而如果提款橋Operator謊報墊付金額,就是指Operator聲稱在L1上的payment proof,和L2提款人發出的Withdrawal Statement相匹配,但實際情況卻是兩者並不匹配。

這樣一來,證明Payment Proof = Withdrawal Statement 的ZKP一定是有錯誤的。只要這個ZKP被發布出去,Challanger就可以指出其中哪一步有錯,並通過BitVM2的欺詐證明協議進行挑戰。

需要強調的是,Bitlayer和Citrea、BOB、ZKBase等都採用了最新的BitVM2路線,也就是新版的BitVM方案,這種方案會把鏈下的計算任務ZK化,也就是說,爲鏈下進行的計算過程生成ZK Proof,然後對Proof進行驗證,之後把驗證ZKP的過程轉化爲適配於BitVM的形式,便於後續的挑戰。

同時,通過採用Lamport和預籤名,可以把原始BitVM的多輪交互式挑戰,優化爲單輪非交互式挑戰,極大程度降低了挑戰的難度。

BitVM的挑戰流程需要用到一種稱爲“承諾”的東西,即Commitment。我們解釋下什麼是“承諾”。一般而言,在比特幣鏈上發布“承諾”的人會聲稱,某些存放在鏈下的數據/發生在鏈下的計算任務是準確無誤的,而發布到鏈上的相關聲明就是“承諾”。

我們可以近似的把Commitment理解爲一大批鏈下數據的hash。承諾Commitment本身的尺寸往往被壓縮的很小,但其可以通過Merkle Tree等方式,與大量的鏈下數據相綁定,而這些被關聯的鏈下數據無需上鏈。


在BitVM2和Citrea、BitLayer的BitVM橋方案中,如果有人認爲提款橋Operator在鏈上發布的承諾有問題,該承諾關聯了無效的ZKP驗證流程,就可以發起挑戰,而且挑戰權限是Permissionless的。(裏面的交互流程比較復雜,在此不展開解釋)

由於Operator是替BitVM資金池墊付資金來給提款人打款,之後再向資金池申請報銷,在申請時,Operator要發布一個Commitment,證明自己在L1上給提款人轉的錢,等於提款人在L2上聲明要收到的錢。如果這個Commitment經過了欺詐證明窗口期仍然沒有被挑戰,Operator就可以取走自己需要的報銷金額。

這裏我們要解釋下BitVM橋的公共資金池是如何維護的,而這恰恰是跨鏈橋最關鍵的部分。大家都知道,跨鏈橋能兌付給提款人的資金,來源於存款人或是其他LP貢獻的資產,而Operator墊付出去的錢,最終都要從公共資金池抽走,所以單純看資金的轉移結果,BitVM橋吸收的存款人Deposit金額,應等於提款人Withdraw的金額。那麼如何保管Deposit的資金,就是一個很重要的問題。

在大多數比特幣Layer2的橋接方案中,往往通過多籤來管理公共資產,用戶的存款被匯總到一個多籤帳戶中,當需要給提款人打款時,就由這個多籤帳戶負責打款,這種方案顯然是存在巨大的信任風險的。

而Bitlayer和Citrea的BitVM橋,採用了類似於閃電網絡和通道的思想,用戶在存款前,會先和BitVM聯盟進行通訊,讓後者進行預籤名,以達成以下效果:

用戶向充值地址轉入存款後,這些錢會直接鎖定在一個Taproot地址上,只能由橋的Operator來領取。而且,Operator只有向用戶墊付了提款資金後,通過申請報銷的方式,向上述存款的Taproot地址申領資金。挑戰期結束後,Operator才能把一定額度的用戶存款取走。

在BitVM橋方案中,存在由N個成員組建的BitVM聯盟(BitVM Federation),由他們對用戶的存款進行調度。但這N個成員無法私自挪用用戶的存款,因爲用戶在向指定地址打款前,會要求BitVM聯盟先進行預籤名,確保這些存款只能被Operator合法申領。

(BitVM2對其樂觀橋方案的示意圖)

高度概括,BitVM橋採用了類似於通道和閃電網絡的思想,讓用戶“verify by yourself”,通過預籤名的方式讓BitVM聯盟無法擅自操縱存款池,存款池的錢只能用於爲Operator報銷資金。如果Operator謊報墊付金額,任何人都可以發布欺詐證明並進行挑戰。

如果上述方案可以落地,屆時BitVM橋將成爲最安全的比特幣提款橋之一:這種橋不存在安全問題,僅存在可用性/活性問題。用戶在嘗試向BitVM存入資金時,可能遭到BitVM聯盟的審查或拒絕配合,導致無法順利存入資金,但這與安全無關而屬於活性/可用性問題。

但BitVM橋的落地難度比較大,而且也無法滿足一些對資金透明度要求比較高的大戶的需求:這些人可能涉及到反洗錢問題,不太希望把自己的資金與別人的資金混到一起,但BitVM橋會統一收納存款者的錢,某種程度上是一個混雜很多錢的池子。

爲了解決上述BitVM橋的活性問題,以及爲有特定需求的人提供獨立幹淨的資金出入通道,BitLayer團隊額外增設了名爲OP-DLC的跨鏈橋方案,在BitVM2的樂觀橋之外,採用了類似於DLC.link的DLC橋,爲用戶提供BitVM橋和OP-DLC橋兩個出入口,以此降低對BitVM橋乃至於BitVM聯盟的依賴。

(DLC原理圖)

DLC:謹慎日志合約

DLC(Discreet Log Contracts)名爲謹慎日志合約,由MIT的Digital Currency Initiative提出,該技術最早用於在比特幣上實現一種輕量級的智能合約,不需要把合約的內容上鏈,就可以通過鏈下交互式通訊和預籤名等方法,在比特幣鏈上實現出保護隱私的智能合約功能。下面我們通過一個賭球案例來說明DLC的工作原理。

假設Alice與Bob要對3天後舉行的皇馬和巴薩的比賽結果打賭,兩人各出1個btc。如果皇馬勝出,則Alice可以獲得1.5 BTC,Bob只能收回0.5 BTC,這就相當於Alice賺0.5個BTC,Bob虧損0.5 BTC;如果巴薩勝出,Alice只能收回0.5 BTC,Bob則可以拿走1.5 BTC。如果平局,兩人各自從拿回1個BTC。

如果我們要讓上述對賭過程變得去信任化,就要想辦法防止任何一方耍賴,如果單純用2/2多籤或是2/3多籤,顯然還不夠去信任。DLC針對這一要點給出了自己的解決方案(要依賴於第三方預言機)。其整個工作流程大體可以分爲四部分。

以前面的Alice和Bob爲例,首先,雙方在鏈下創建一筆fund交易,這可以把彼此的1枚BTC鎖在2/2多簽地址上,如果這筆fund交易生效,則該多簽地址裏的2枚BTC需要雙方都授權,才能被花費。

當然,這筆Fund交易先不上鏈,只留存在鏈下的Alice和Bob客戶端本地,他們都知道這筆交易生效後會有什麼後果。目前雙方只是在進行理論推演,然後根據推演的結果達成一系列協議。

在DLC創建的第一階段,我們可以確定的是,雙方將在未來把各自的1枚BTC鎖入一個多簽地址中。

第二步,雙方繼續推演未來可能發生的事件和結果:比如,當球賽結果公布後,可能是Alice贏Bob輸、Alice輸Bob贏、平局等多種可能,這會導致前述2/2多簽地址中的比特幣出現不同的分配結果。

不同的結果需要由不同的交易指令來觸發,這些“可能在未來上鏈的交易指令”被稱爲CET,即合約執行交易(Contract Execution Transaction)。Alice和Bob要事先推演出所有的CET,生成包含全部CET的交易數據集。

例如,根據前述Alice和Bob對賭的幾種可能結果,Alice創建出以下幾種CET:

CET1:Alice可從多簽地址獲得1.5枚BTC,Bob可獲得0.5枚BTC;

CET2:Alice可從多簽地址獲得0.5枚BTC,Bob可獲得1.5枚BTC;

CET3:雙方各自可獲得1枚BTC。

我們以CET1爲例(Alice拿 1.5 BTC,Bob拿 0.5 BTC):

這筆交易的意思是,把多簽地址中的1.5枚BTC,轉移到一個由Alice和預言機輸出結果共同觸發的Taproot地址,另外0.5枚BTC轉移給Bob的地址。此時對應的事件是:皇馬勝出,Alice贏0.5BTC,Bob輸0.5BTC。

當然,要花費這1.5枚BTC,Alice必須拿到預言機發送的“皇馬勝出”結果籤名。換句話說,只有當預言機輸出“皇馬勝利”的消息後,Alice才能夠把這1.5枚BTC轉走。至於CET2和CET3的內容,我們可以以此類推,在此不贅述。

需要注意的是,CET本質是一筆待上鏈待生效的交易,如果Alice提前把CET1廣播出去,或是在“巴薩勝出”的情況下,仍然把“皇馬勝出”後才能順利觸發的CET1上鏈,會發生什麼?

前面的示意圖中,我們提到,CET1上鏈後,會把原始多簽地址中鎖定的2枚BTC轉走,0.5枚BTC轉給Bob,1.5枚BTC轉到一個Taproot地址中,預言機輸出“皇馬勝出”後,Alice方能解鎖Taproot地址鎖定的BTC。效果如下圖所示。

同時,這個Taproot地址受到時間鎖限制,如果在時間鎖規定的窗口期內,Alice無法成功提走1.5枚BTC,則Bob有權把這些錢直接拿走。

所以,只要預言機是誠實的,Alice就無法拿走這1.5枚BTC,等時間鎖期限耗盡,Bob可以把這1.5枚BTC拿走。再算上CET1上鏈時直接轉給Bob的那0.5枚BTC,最後所有的錢都會歸Bob所有。

對於Alice而言,無論自己最終是贏還是輸,最有利的做法都是把正確的CET上鏈,把無效的CET上鏈會讓自己輸更多錢。

其實上述CET在構建時,對Taproot的schnorr籤名做了改進,可以理解爲利用預言機的公鑰+事件結果,針對不同結果構造出彼此獨立的地址。之後,等預言機公布某個結果對應的籤名,才能花費該結果對應的地址上鎖定的BTC。

當然,這裏面存在一種額外的可能。假如Alice知道自己輸了,幹脆不把自己構建的CET1上鏈,這個時候怎麼辦?這個很好解決,因爲Bob可以針對“alice輸,Bob贏”一事構建出自定義的CET,這個CET達成的效果和Alice構建的CET基本一致,只是具體細節不一樣,但結果是一樣的。

上面講述的就是最關鍵的CET構建流程。而DLC的第三步,是Alice和Bob雙方進行通訊,檢查對方構建的CET交易,帶上自己對該CET的籤名,檢查無誤後,可以信任彼此,便各自出資1枚BTC,鎖入最開始提到的那個Alice和Bob的2/2多簽地址,然後等待某個CET被上鏈,觸發後續的流程。

最後,等預言機公布結果,拿到預言機對結果的籤名後,任意一方可以把正確的CET上鏈,讓多簽地址中鎖定的2枚BTC被再分配,如果輸家搶先把錯誤的CET上鏈,會讓自己損失所有的錢,如果把正確的CET上鏈,輸家還可以收回0.5BTC。

可能有人會問,DLC與普通的2/3多籤有何不同?首先,2/3多籤下,任意兩方串謀即可盜走全部資產,而DLC通過提前構建CET集合的方式,讓對手方之間把全部的場景都限制住了,就算預言機參與串謀,造成的損失往往也有限。

其次,多籤需要各方針對具體的待上鏈交易進行籤名,而在DLC的設定下,預言機只需要對特定事件的結果進行籤名,不需要知道CET/待上鏈交易的內容,甚至完全不需要知道有Alice和Bob這兩個人,只需要像普通的預言機那樣和用戶進行正常的交互即可。

我們可以認爲,DLC本質是把對多籤參與方的信任轉變成了對預言機的信任,只要預言機不參與作惡,就可以保證DLC的協議設計足夠去信任。理論上來說,DLC可以採用比較成熟完善的第三方預言機,來避免作惡。而DLC.link和BitLayer利用了DLC的這種特性,把橋的信任問題轉嫁給了第三方預言機。

此外,Bitlayer的DLC橋還支持自建的預言機節點,在此之上加上了一層欺詐證明,當自建的預言機把無效的CET上鏈時,允許任何人對其進行挑戰。關於其OP-DLC橋的原理,我們將在下面展開簡述。

OP-DLC橋:DLC通道+欺詐證明

我們從存取款的全流程來解釋OP-DLC橋的運轉原理。假設現在Alice通過OP-DLC橋向L2存款1枚BTC,根據兩步交易機制,ALice先生成一個pre-fund交易,如下圖:

這其實是先把1枚BTC轉移到Alice和BitVM聯盟成員共同控制的Taproot地址中,然後開啓創建CET的一系列流程。如果BitVM橋聯盟成員拒絕配合Alice的存款請求,Alice可以等時間鎖結束後,把錢立刻抽回去。

如果BitVM聯盟成員願意配合Alice,雙方便通過鏈下通訊的方式,先生成正式的Fund存款交易(先不上鏈),以及提款場景下全部的CET,待CET生成和檢驗結束後,雙方才把Fund交易提交上鏈。

在Fund交易的Witness/籤名數據裏,Alice會指定自己在Layer2的收款地址;Fund交易上鏈後,Alice可以向Layer2上的橋合約提交上述fund交易數據,證明自己在比特幣鏈上完成了存款動作,有資格讓L2橋合約向指定的收款地址釋放Token。

Fund交易觸發後,存款實際上還是被鎖定於Alice和BitVM聯盟成員共同控制的Taproot多簽地址中。但要注意,該多籤只能通過CET來解鎖該地址鎖定的BTC,BitVM聯盟不能平白無故把錢轉走。

接下來我們來解析Alice和BitVM聯盟事先構建好的CET。這些CET用來滿足未來提款時的潛在場景,比如Alice可能存入了1枚BTC,但她初次提款時只提走0.3枚BTC,剩下的0.7枚BTC交由BitVM聯盟的公共資金池來支配,但要再提款就只能通過前文講過的BitVM橋;

或者幹脆用這0.7枚BTC發起一次新的pre-fund存款,當做是一筆新充入DLC橋的資產,可以重復前面提過的fund交易和CET構建流程。

上述流程不難理解,其實就是讓存款人Alice和bitVM聯盟互相充當對手方,爲不同金額的提款事件創建CET,然後讓預言機讀取Alice在Layer2發起的提款聲明,判斷Alice想觸發哪一個CET(想提多少錢)。

這裏面的風險在於,預言機可能和BitVM聯盟串謀,比如Alice聲明要提款0.5枚BTC,預言機卻僞造了提款聲明,最終使得“Alice收回0.1BTC,BitVM聯盟收到0.9BTC”的錯誤CET上鏈。

對此的解決方法有好幾種,首先就是可以採用在設計上比較完善的第三方預言機,防止此類串謀行爲(此時BitVM聯盟要和預言機串謀的拉攏難度極高),或者讓預言機進行質押,預言機需要定期在比特幣鏈上發布Commitment,聲明自己誠實的處理了提款人的提款請求。任何人都可以通過BitVM的欺詐證明協議對Commitment進行挑戰,如果挑戰成功,就Slash作惡的預言機。

在OP-DLC橋的設計下,用戶可以始終對自己的資產“參一手”,防止資產被BitVM聯盟挪用,而且這種類似於通道的設計方案,爲用戶帶來了更多的自主權,也不需要讓自己的資金和其他人的資金混到一起,更像一種P2P點對點的存取款方案。

此外,考慮到BitVM方案要過一段時間才能落地,在其落地前,相比於單純的多籤方案,DLC橋都是更可靠的橋接處理模型。這種方案也可以作爲與BitVM橋並行使用的兩大存取款出入口,其中一個出了故障後,用戶可以走另一個出入口,也不失爲一種好的容錯方法。

總結

BitLayer和Citrea的BitVM橋方案,本質是“墊付-報銷”模式,有專門的Operator節點爲提款用戶打錢,Operator可以定期向公共存款地址申請報銷。如果Operator存在不實的報銷申請,可以被任何人挑戰並Slash。

BitVM2的方案引入預籤名,結合了通道的思想,讓用戶在正式存款前,對存款執行後的處理流程進行限定,不給跨鏈橋官方挪用用戶存款的機會。

這種橋在理論上不存在安全問題,但存在活性/可用性問題,而且不能滿足特定用戶對資金獨立性和反洗錢的需求(本質還是資金池的模式),落地難度也很大。

爲此,Bitlayer增設了名爲OP-DLC的橋接方案,該方案類似於DLC.link,在通道和DLC的基礎上引入欺詐證明,防止DLC橋的預言機作惡。

但由於BitVM的落地難度太大,DLC橋會率先落地並成暫時的替代物,只要解決預言機的信任風險,集成更爲可靠成熟的第三方預言機,DLC橋可以在現階段成爲比多籤橋更安全的提款驗證方案。

聲明:

  1. 本文轉載自[極客web3],著作權歸屬原作者[Faust & Nickqiao],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
It seems that you are attempting to access our services from a Restricted Location where Gate is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.