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
理财体验金奖励!