CoinEx中文官方
CoinEx中文官方

CoinEx成立於2017年12月,是一家面向全球的專業數字資產交易服務商。聚集創新數字資產為核心,多年來良好的專案服務水準及優質資產篩選能力,為全球用戶提供全面且優質的投資選擇。 CoinEx中文繁體群:https://t.me/CoinExGlobalChinese

CoinEx研究院:BitVM,比特幣主網上的智能合約潛力

E1I-A215

10月9日,ZeroSync 的開發者Robin Linus 發佈了BitVM的白皮書,吸引了社區的極大關注。它是一種新的計算範式,能夠在比特幣網路上表達\驗證圖靈完全的合約,而無需對網路共識規則進行任何更改。

 

去中心化智能合約的限制和追求

比特幣腳本語言作為一種棧式語言,提供了條件判斷等基本控制結構,用於定義交易的驗證邏輯。它要求提供正確的數字簽名才能花費比特幣,這體現了簡單的條件驗證。但是,比特幣腳本有意設計為非圖靈完備的,不支持迴圈等複雜控制流,來保證語言的簡潔性和安全性。這些限制使得比特幣腳本難以執行智能合約等複雜計算。

一些比特幣的 Layer 2解決方案雖然可通過鎖定資產實現基本智能合約,但本質上依賴多簽地址與跨鏈資產映射,仍需要一定的中心化信任。這降低了整個方案的去中心化程度,與比特幣的設計理念不完全契合。在BitVM被提出之前,比特幣社區一直在探討既去中心化、信任最小化,又能實現圖靈完備計算的方法。

 

BitVM:在比特幣上進行任何計算 

BitVM的核心創新在於利用比特幣現有的腳本系統來實現邏輯門(邏輯門種類包括與門、或門、非門、異或門,可以實現如與、或、非、異或等邏輯運算),進而構建任意複雜的布爾電路(布爾電路是一種用於實現邏輯運算的電路,輸入和輸出都是二進位的,可以使用邏輯門實現布爾運算,如與、或、非、異或等)。具體來說,BitVM使用哈希鎖(Hash Time Locked Contract,HTLC)和Taproot(2021年11月啟動的優化比特幣腳本的軟分叉)來表示基本的邏輯門,如與非門、或門等。通過組合這些基本邏輯門,就可以構建出任意複雜度的計算電路,這相當於在比特幣區塊鏈上模擬了一個可編程的電腦。

最後,當交易雙方出現糾紛,他們可以通過一個優雅的挑戰——回應協議,類似詐欺證明在比特幣進行驗證。即證明者(Prover)聲稱給定函數對某些特定輸入求值會得到某個特定的輸出,如果這個聲明是假的,則驗證者(Verifier)可以通過執行詐欺證明來懲罰證明者。利用這種機制,任何可計算的函數都可以在比特幣上得到驗證。

 

BitVM的設計

Bit Value Commitment

Bit Value Commitment 是一種比特幣腳本,通過 if-else 語句實現了一個 Commitment Scheme(一種加密原語,用於確保發送方在發送消息前能夠確定消息的內容,並且在消息被公開驗證之前無法更改該內容),其中包含兩個哈希值:hash0 和 hash1。根據輸入值的哈希值與這兩個哈希值的比較,確定返回值為 0 還是 1。

 圖一:一個用於1-bit承諾的具體實現

資料來源:https://bitvm.org/bitvm.pdf

Logic Gate Commitment

在計算理論中,任何可計算的函數都可以表示為布爾電路。其中,NAND門是一種通用的基本邏輯門,可以構建所有其他複雜邏輯門。BitVM通過包含兩個表示輸入的Bit Value Commitment和一個表示輸出的第三個Bit Value Commitment來實現NAND門。

BitVM巧妙地利用這一點,通過比特幣腳本來表達NAND門,進而構建任意複雜的布爾邏輯電路,這相當於在比特幣腳本中模擬了一個可編程電腦。

圖二:Bit Value Commitment實現的NAND門

資料來源:https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754

圖三:用於NAND操作的邏輯門承諾

資料來源:https://bitvm.org/bitvm.pdf

腳本計算兩個輸入的NAND值,以確保與已承諾的輸出比特匹配。

 

Binary Circuit Commitment

任何電路可以通過組合門承諾來表示,執行的每個步驟都被記錄在Tapleaf中。它們都被合併到同一個Taproot地址中,以便證明者可以執行電路中的任何門。執行一個門需要證明者打開相應的門承諾,並為其輸入和輸出位設置值。例如圖四, A、B、C、D 都是給定的bit value commitment,每個承諾表示一個比特位。通過8個 NAND 門的邏輯運算,如A NAND B 得到 E,E 再作為下一個NAND的輸入,最後整個電路的輸出結果為 TRUE。這種布爾電路的設計通過連接bit value commitment的 NAND 門實現了複雜的邏輯運算,為比特幣鏈上的可驗證計算提供了一種緊湊的表示方式。

圖四:一個有8個NAND門的電路範例

資料來源:https://bitvm.org/bitvm.pdf

Challenges and Responses

在BitVM中,僅僅承諾一個電路是不夠的,還需要一個挑戰-回應機制來驗證計算的正確性。為此,證明者和驗證者在設置階段預先簽署一系列相互鏈接的交易。這些交易按照“挑戰-回應-挑戰-回應”的順序進行,形成多輪交互。如果任何一方停止回應,則另一方可以在超時後贏得這輪挑戰,獲取雙方的存款。這個機制只有在存在欺詐時才需要用到,只要雙方合作,可以用2對2簽名直接完成計算。

具體操作上,例如當Paul(證明者)和Vicky(驗證者)預先簽署一系列交易,Vicky隨後可以發起挑戰(TX 2), 通過打開Tapscript中的哈希鎖選擇一個挑戰(hash7),迫使證明者執行被挑戰的門電路(TX 3),公開輸入輸出。任何不一致都可以通過幾輪查詢快速證明。如果證明者停止協作,驗證者可以通過解鎖自己持有的哈希預映射強制其在鏈上回應。每輪質詢都可能驗證或證偽某個門的正確性。通過二分搜索(一種用於在有序數組中尋找特定元素位置的演算法),驗證者可以在幾輪後找出證明者的錯誤。一旦證明者的兩個承諾衝突,驗證者就直接贏得質詢並獲得押金。

圖五:預先簽署的一系列交易,以執行多輪挑戰和回應

資料來源:https://bitvm.org/bitvm.pdf

這種細緻的設計使BitVM實現了對任意複雜計算的鏈上驗證。同時保證了協作時的高效,與欺詐時的可懲罰性。它展示了在比特幣網路中進行圖靈完備交互計算驗證的可能性。

 

BitVM 設計的關鍵點

鏈下計算,鏈上驗證

BitVM把複雜的計算邏輯都放在了鏈下,只在比特幣鏈上進行結果的驗證。這避免了將複雜合約直接運行在區塊鏈上的做法,可以防止區塊鏈膨脹。

使用哈希鎖和比特幣腳本進行邏輯門表示

BitVM使用哈希鎖和比特幣支持的各種腳本操作碼來表示基本的邏輯門,如與非門。然後通過連接這些邏輯門,可以構建任意複雜度的電路,實現圖靈完備的計算。

證明者與驗證者的博弈理論

BitVM這種驗證採用的機制類似Optimistic Rollup,通過讓計算的雙方進行交互挑戰和回應,最終在鏈上確認誰的計算結果是正確的。如果證明者作弊,驗證者可以在比特幣鏈上執行懲罰。因此兩者都採取了類似的鏈上驗證交互機制,不同在於BitVM直接利用比特幣腳本實現了互動式的挑戰-回應流程。

最小的鏈上影響

BitVM的計算過程對比特幣區塊鏈基本沒有影響,只有當出現糾紛時,才會在鏈上留下少量交易。這保持了比特幣的高效和可擴展性。

不需要軟分叉

由於BitVM只是利用了比特幣現有的腳本功能,所以不需要對比特幣協議進行任何軟分叉,這降低了將其應用到比特幣主網的難度。 

總結

BitVM的最大創新在於不需要修改比特幣核心協議,僅通過創新性地運用現有腳本,尤其是Taproot優化後的腳本,即可實現圖靈完備的驗證能力。這種高妙的設計使得BitVM可以無縫集成入比特幣主網,而不會引入新的相容性問題、也不會影響比特幣的去中心化特性。

基於此,BitVM 具有將智能合約和去中心化應用引入比特幣生態的潛力,如可以構建最小信任的跨鏈橋來連接不同區塊鏈資產,提升比特幣的互操作性;還可協助構建更優化的zkRollup擴展層,提高比特幣的可擴展性。簡而言之,BitVM 展現了僅通過創新使用現有屬性,展示了將比特幣生態系統引入新時代的巨大可能性。

 

參考資料

https://bitvm.org/bitvm.pdf

https://github.com/supertestnet/tapleaf-circuits

https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754

 

CC BY-NC-ND 4.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论