BitVM,比特幣主機上智能合約的潛力


10 月9 日,ZeroSync 開發者Robin Linus 發布了BitVM 白皮書,引起社群廣泛關注。 BitVM 引入了一種新的計算範式,能夠表達圖靈完整的比特幣合約,而無需修改網路的共識規則。

去中心化智能合約:限制與目標

比特幣腳本是一種基於堆疊的語言,提供基本的控制結構(例如條件檢查)來定義交易驗證邏輯。需要有效的數位簽名才能透過簡單的條件驗證過程來使用比特幣。

話雖如此,該腳本的設計並不是圖靈完備的。雖然它不支援循環等複雜的流控制功能,但這種設計保證了語言的簡單性和安全性。

這些限制使得腳本很難執行複雜的計算,包括涉及智能合約的計算。

雖然一些專為比特幣設計的Layer 2 解決方案可以透過鎖定資產來實現基本的智能合約功能,但它們本質上依賴多重簽名地址和跨鏈資產映射,這需要一定程度的中心化信任。

這破壞了比特幣對去中心化的承諾。在引入BitVM 之前,比特幣社群探索了去中心化、信任最小化以及能夠進行圖靈完備計算的方法。

BitVM:用比特幣計算任何東西

BitVM 的創新核心是利用比特幣現有的腳本系統來實作邏輯閘(包括AND、OR、NOT 和XOR 閘,允許AND、OR、NOT 和XOR 等操作)來建構任意複雜的布林值。

這些電路用於對二進位輸入執行邏輯運算並提供二進位輸出; 布林計算可以使用邏輯閘來執行AND、OR、NOT和XOR等運算來實現。

具體來說,BitVM 採用哈希時間鎖定合約(HTLC)和Taproot(2021 年11 月啟動的腳本最佳化軟分叉)來表示基本邏輯閘,例如AND 和OR 閘。

然後,BitVM 結合這些基本邏輯閘來建立任何複雜性的電路,本質上是在比特幣區塊鏈上模擬可程式計算機。

最後,如果交易各方之間發生爭議,可以採用優雅的質詢回應協議(類似於比特幣中的詐欺證明)進行驗證。

證明者聲明給定函數評估某些特定輸入到某些特定輸出。如果這個陳述是錯誤的,驗證者可以進行詐欺測試並懲罰證明者。使用這種機制,任何可計算的函數都可以在比特幣中得到驗證。

比特虛擬機器設計

位值妥協

Bit Value Commitment 是一個比特幣腳本,採用if-else 語句來實作承諾方案。這種密碼原語確保發送者在發送訊息之前可以確認訊息的內容,並且內容在公開發布後無法更改。

此承諾方案包含兩個雜湊值:hash0 和hash1。透過將輸入的雜湊值與這兩個雜湊值進行比較來確定返回值是0 還是1。

圖1:1 位承諾的具體實現

邏輯埠妥協

在計算理論中,任何可計算函數都可以表示為布林電路。特別是,與非閘是一種通用邏輯閘,可用於建置所有其他複雜邏輯閘。

BitVM 包含兩個位元值承諾(代表兩個輸入)和第三個位元值承諾(代表輸出)以實現NAND 閘。

BitVM巧妙地透過比特幣腳本來表達與非門。這允許你建構任意複雜的布林邏輯電路,透過腳本有效地模擬可程式計算機。

圖2:使用位值承諾實現NAND 閘

圖3:NAND 操作的邏輯閘承諾

此腳本計算兩個輸入的NAND 值,以確保其與提交的輸出位元相符。

二進位電路妥協

BitVM 可以透過組合連接埠承諾來表達任何電路。每個執行步驟都提交給Tapleaf。它們都組合成同一個Taproot 位址,因此證明者可以運行電路上的任何連接埠。

執行門需要證明者打開相應的門承諾並為其輸入和輸出位元設定值。例如,在圖4 中,A、B、C 和D 是預定義位值的承諾,每個值代表一個位元。然後執行涉及八個與非閘的邏輯運算。

例如,如果A NAND B結果為E,且E作為下一個與非閘的輸入,則整個電路的最終輸出將為TRUE。這種布林電路設計連接比特值承諾的NAND 閘並執行複雜的邏輯運算,為比特幣區塊鏈上的可驗證計算提供緊湊的表示。

圖4:具有八個不同NAND 閘的電路。

挑戰與應對

在BitVM 中,僅僅提交一個電路是不夠的,還需要一個挑戰響應機制來證明計算的正確性。

為了實現這一點,證明者和驗證者必須在設定期間預先簽署一系列交易。交易按照“挑戰-響應-挑戰-響應”的順序鏈接,形成多輪挑戰-響應交互。

如果一方在時限後停止參與,另一方將贏得挑戰並能夠收到兩筆押金。此機制僅在詐欺情況下才有必要。只要雙方配合,就可以共同解決任何2中2簽名的合約。

讓我們看看這個機制在假設的情況下是如何運作的。 Paul(品嚐者)和Vicky(驗證者)預先簽署了一系列交易。然後,Vicky 可以透過從Tapscript 表中的哈希鎖之一選擇挑戰(hash7) 來發起挑戰(TX 2)。

這會為Paul 解鎖一個特定的Tapscript,並迫使他在開放的輸入和輸出的情況下運行它。任何不一致的陳述都可以透過重複此過程進行幾輪查詢來快速反駁。

如果證明者停止協作,驗證者可以解鎖哈希原像,迫使證明者在區塊鏈上做出回應。每輪查詢都可以驗證或反駁特定連接埠。

透過二分搜尋(一種用於在排序數組中定位特定元素的演算法),驗證者只需經過幾輪挑戰和回應即可快速識別證明者的錯誤。一旦證明者的兩個承諾發生衝突,驗證者立即贏得挑戰並接受押金。

圖5:用於執行多輪質詢和回應的預簽交易序列

這種縝密的設計使得BitVM 能夠對任何複雜的計算進行鏈上驗證,從而確保協作效率並在發生欺詐時進行處罰。這證明了在比特幣網路上驗證互動式圖靈完備計算的可能性。

BitVM 設計的關鍵方面

鏈下計算&鏈上驗證

BitVM 將複雜計算的負擔從區塊鏈上轉移出來,專門保留比特幣區塊鏈來驗證結果。這種方法避免了在區塊鏈上直接執行複雜的合約,這有助於避免過度增加區塊鏈的大小。

使用比特幣哈希鎖和腳本的快速邏輯閘

BitVM 利用比特幣支援的哈希鎖和腳本操作碼來表示基本邏輯閘,例如AND 和NOT 閘。連接這些邏輯閘可以讓你建構任意複雜度的電路,從而實現圖靈完備的計算。

用於證明者和驗證者的博弈論引擎

BitVM 的驗證機制類似於Optimistic Rollup,涉及計算部分之間的互動挑戰和回應。最終,正確的計算結果在鏈上得到確認。如果證明者作弊,驗證者可以對比特幣區塊鏈執行處罰。

因此,BitVM 和Optimistic Rollup 採用類似的鏈上驗證互動機制,唯一的差異在於BitVM 直接使用比特幣腳本來實現互動式挑戰回應過程。

鏈上影響最小

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

免責聲明:本文僅供參考,不構成投資建議或投資要約。 CriptoFácil 對本文中提及的任何內容、產品或服務概不負責。

資訊來源:由0x資訊編譯自CRIPTOFACIL。版權歸作者Comunicado de Imprensa所有,未經許可,不得轉載

Total
0
Shares
Related Posts