BitVM 及其優化考慮因素

中級4/8/2024, 3:35:02 AM
本文探討了 BitVM 用於增強比特幣生態系統可擴展性和豐富性的原理和優化策略。

1. 簡介

比特幣是一種去中心化、安全、值得信賴的數字資產。然而,它面臨着重大限制,無法成爲支付和其他應用程序的可擴展網路。比特幣的擴容問題自誕生以來一直備受關注。比特幣的 UTXO(未花費交易輸出)模型將每筆交易視爲獨立事件,導致無狀態系統在執行復雜的、依賴於狀態的計算時能力不足。因此,雖然比特幣可以執行簡單的腳本和多重籤名交易,但它很難促進有狀態區塊鏈平台上常見的復雜且動態的合約交互。這種限制極大地限制了可以在比特幣上構建的去中心化應用程式(dApp)和復雜金融工具的範圍,而有狀態平台模型爲部署和執行功能豐富的智能合約提供了更加多樣化的環境。

對於比特幣擴容,主要技術包括狀態通道、側鏈和客戶端驗證。狀態通道提供了安全且多樣化的支付解決方案,但驗證任意復雜計算的能力有限。這種限制降低了它們在需要復雜的條件邏輯和交互的各種場景中的適用性。側鏈支持廣泛的應用程序並提供超出比特幣功能的多樣性,但它們的安全性較低。這種安全差異源於側鏈使用獨立的共識機制,其穩健性遠不如比特幣的共識機制。客戶端驗證採用比特幣UTXO模型,可以處理更復雜的交易,但缺乏與比特幣的雙向檢查和約束,導致安全性較低。客戶端驗證協議的鏈下設計依賴於服務器或雲基礎設施,這可能因受損的服務器導致中心化或潛在的審查。客戶端驗證的鏈下設計也給區塊鏈基礎設施帶來了更多的復雜性,可能引起可擴展性問題。

2023年12月,ZeroSync項目負責人Robin Linus發表了題爲《BitVM:在比特幣上計算任何東西》一文,這引發了關於增強比特幣可編程性的大量思考。該論文提出了一種圖靈完備的比特幣合約解決方案,可以在比特幣上執行任何復雜的計算,而無需改變網路的共識規則或改變比特幣的基本原理。 BitVM 利用比特幣腳本和 Taproot 來實現樂觀 Rollups。它使用 Lamport 籤名(也稱爲比特承諾)在兩個比特幣 UTXO 之間建立連接,從而啓用有狀態的比特幣腳本。大型程序在 Taproot 地址內提交,運營商和驗證者進行廣泛的鏈下交互,在區塊鏈上留下最小的足跡。如果雙方合作,任何復雜的、有狀態的鏈下計算都可以執行,而不會在區塊鏈上留下任何痕跡。但如果雙方不配合,發生爭議時需要鏈上執行。因此,BitVM 大大擴展了比特幣的潛在用例,使其不僅可以作爲貨幣,還可以作爲各種去中心化應用和復雜計算任務的驗證平台。

然而,盡管BitVM技術在比特幣擴容方面具有優勢,但仍處於早期階段,並面臨一些效率和安全問題,例如:(1)質疑和響應過程需要多次交互,導致交易費用高、質疑週期長; (2) Lamport一次性籤名數據長度較長,需要減小數據大小;(3)哈希函數復雜度高,需要比特幣友好的哈希函數來降低成本;(4)現有的BitVM合約規模較大,而比特幣區塊容量有限,因此使用無腳本腳本可以幫助實現無腳本腳本BitVM,節省比特幣區塊空間並提高BitVM效率;(5)當前BitVM運行在許可模型上,質疑僅由聯盟成員發起,且僅限於兩方,應擴展到無許可的多方質疑模型,以進一步減少信任假設。針對這些問題,本文提出了幾種優化思路,以提高 BitVM 的效率和安全性。

2. BitVM原理

BitVM定位爲比特幣的鏈下合約系統,旨在推進比特幣的合約功能。目前,比特幣腳本是完全無狀態的,這意味着執行環境在每個腳本後都會重置。比特幣腳本中沒有本地方法可以確保腳本 1 和 2 具有相同的 X 值。然而,可以使用現有的操作碼和 Lamport 一次性籤名使比特幣腳本有狀態,從而強制使腳本 1 和腳本 2 中的 X 值相同。如果參與者籤署了相互衝突的值 X,他們可能會受到處罰。

BitVM 計算發生在鏈外,而這些計算的驗證發生在鏈上。鑑於比特幣區塊的1MB限制,當需要驗證復雜計算時,OP技術可以採用質疑-響應模式來支持更高復雜度的計算驗證。

與 Optimistic Rollup 和 MATT 提案(Merkelize All The Things)類似,BitVM 系統基於欺詐證明和挑戰響應協議,但不需要更改比特幣的共識規則。BitVM 的底層原語很簡單,主要基於哈希鎖、時間鎖和大型Taproot樹。

證明者逐字節地提交程序,但驗證鏈上的所有計算將非常昂貴。因此,驗證者進行一系列精心設計的質疑,以簡潔地反駁證明者的虛假主張。證明者和驗證者共同籤署一系列質疑和響應交易來解決爭議,從而允許對比特幣進行一般計算驗證。

BitVM 的主要組件包括:

  • 電路承諾:證明者和驗證者將程序編譯成大型二進制電路。證明者在 Taproot 地址中提交該電路,該地址下的每個葉腳本對應於電路中的每個邏輯門。核心是基於比特承諾來實現邏輯門承諾。
  • 挑戰與回應:證明者和驗證者預先籤署一系列交易來實現質疑-響應遊戲。理想情況下,這種交互發生在鏈外,但如果證明者不合作,也可以在鏈上執行。
  • 不明確的懲罰: 如果證明者提出任何不正確的主張,驗證者可以在成功挑戰後收取證明者的押金,並挫敗證明者的惡意行爲。

3. BitVM 優化

3.1 基於ZK減少OP交互次數

Rollups 主要有兩種類型:ZK Rollups 和 Optimistic Rollups(OP Rollups)。 ZK Rollups 依賴於零知識 (ZK) 證明的有效性驗證,零知識證明是正確執行的密碼學證明。它們的安全性取決於計算復雜性假設。樂觀匯總依賴於欺詐證明,假設所有提交的狀態都是正確的,並且通常設置大約 7 天的質疑期。它們的安全性前提是系統中至少有一個誠實的一方能夠檢測到不正確的狀態並提交防欺詐信息。

假設 BitVM 質疑程序的最大步數爲 2^{32},則需要大約 17GB 內存(2^{32}×4 字節)。在最壞的情況下,大約 40 輪質疑和響應可能需要大約六個月的時間,總腳本大小約爲 150KB。這種情況不會提供足夠的激勵,但在實踐中很少發生。

使用零知識證明來減少BitVM中的挑戰次數可以增強其效率。根據零知識證明理論,如果數據Data滿足算法F,則證明將滿足驗證算法Verify,輸出True。反之,如果Data不滿足F,則證明將不會滿足Verify,輸出False。在BitVM系統中,如果挑戰者不接受證明者的數據,則會發起挑戰。

對於算法F,採用二分搜索方法,假設需要2^n次迭代來找到錯誤點。如果算法的復雜度太高,n很大,完成需要很長時間。然而,零知識證明驗證算法Verify的復雜度是固定的。通過公開證明和驗證過程Verify,可以看到False的輸出。零知識證明的優勢在於,相比使用二分搜索打開原始算法F,驗證算法Verify需要更低的計算復雜度。因此,使用零知識證明,BitVM不再挑戰原始算法F,而是挑戰驗證算法Verify,減少了質疑輪次並縮短了質疑期。

盡管零知識證明和欺詐證明的有效性依賴於不同的安全假設,它們可以結合起來構建ZK欺詐證明,並實現按需ZK證明。與完整的ZK Rollup不同,按需模型僅在發起質疑時需要ZK證明,保持一種樂觀的設計,即生成的狀態在挑戰之前被假定爲有效。如果狀態沒有受到挑戰,則不需要ZK證明。但是,如果發起了質疑,則必須爲質疑塊中的所有交易的正確性生成ZK證明。未來,可能可以爲單個有爭議的指令生成ZK欺詐證明,避免持續生成ZK證明的計算成本。

3.2 對比特幣友好的一次性籤名

在比特幣網路中,遵循共識規則的交易被認爲是有效的,但除了這些規則之外,還有一個額外的標準概念。比特幣節點僅傳播和廣播標準交易,而將有效但非標準交易包含在區塊中的唯一方法是通過與礦工的直接合作。

根據共識規則,傳統(非隔離見證)交易的最大大小爲 1MB,可以填滿整個區塊。但是,遺留事務的標準限制設置爲 100kB。對於Segwit交易,共識規則允許的最大大小是4MB,稱爲權重限制,但其標準限制是400kB。

Lamport籤名是BitVM的基礎組件,減少籤名和公鑰的長度有助於減少交易數據大小,從而降低交易費用。Lamport一次性籤名需要一個哈希函數(如單向置換函數f)。在Lamport一次性籤名方案中,消息長度爲v位,公鑰和籤名長度都爲2v位。這些長籤名和公鑰消耗了大量的存儲Gas。因此,有必要探索可以減少籤名和公鑰長度的籤名方案。與Lamport一次性籤名相比,Winternitz一次性籤名大大減少了籤名和公鑰的長度,但增加了籤名和驗證的計算復雜性。

在Winternitz一次性籤名方案中,一個特殊函數P將一個v位消息映射到長度爲n的向量s,s的每個元素取值在{0,…,d}之間。Lamport一次性籤名方案是Winternitz方案的特殊情況,其中d=1。在Winternitz方案中,n、d和v之間的關係大約爲n≈v/log2(d+1)。當d=15時,n≈(v/4)+1。對於具有n個元素的Winternitz籤名,公鑰和籤名長度比Lamport一次性籤名方案短四倍,但驗證的復雜性增加了四倍。在BitVM中使用d=15,v=160,f=ripemd160(x)的Winternitz一次性籤名可以將位承諾大小減少50%,從而至少減少BitVM的交易費用50%。在未來,除了優化現有的Winternitz比特幣腳本實現外,還可以探索更緊湊的一次性籤名方案,這些方案可以在比特幣腳本中表達。

3.3 比特幣友好的哈希函數

根據共識規則,P2TR腳本的最大大小爲10kB,P2TR腳本見證人的最大大小與最大Segwit交易大小相同,均爲4MB。然而,P2TR 腳本見證的標準限制是 400kB。

目前,比特幣網路不支持OP_CAT,無法連接字符串進行默克爾路徑驗證。因此,需要使用現有的比特幣腳本,以腳本大小和腳本見證大小最有效的方式實現比特幣友好的哈希函數,以支持默克爾包含證明驗證。

BLAKE3是BLAKE2哈希函數的優化版本,並引入了Bao樹模式。與基於 BLAKE2s 的壓縮函數相比,其壓縮函數的輪數從 10 輪減少到 7 輪。BLAKE3 哈希函數將其輸入分成 1024 字節的塊,最後一個塊可能更短但不爲空。當只有一個塊時,它充當根節點和樹的唯一節點。這些塊被排列爲二叉樹的葉節點,並且每個塊被獨立壓縮。

當BitVM用於驗證默克爾包含證明時,哈希運算的輸入由兩個256位哈希值串聯而成,總共64字節。使用 BLAKE3 哈希函數,這64個字節可以放入單個塊中,這意味着 BLAKE3 哈希操作只需對該單個塊應用一次壓縮函數。在BLAKE3的壓縮函數中,需要七個輪函數和六個置換函數。

BitVM已經基於u32值實現了XOR、模加和右位移等基本操作,這讓使用比特幣腳本組裝BLAKE3哈希函數變得直觀。堆棧使用四個單獨的字節來表示u32字,便於進行BLAKE3所需的u32加法、u32按位異或和u32按位旋轉。比特幣腳本中的BLAKE3哈希函數目前約爲100kB,足以構建BitVM的玩具版本。

此外,通過拆分這些BLAKE3代碼,驗證者和證明者可以通過將執行分割成質疑-響應遊戲而不是完全執行來顯著減少鏈上數據需求。最後,在比特幣腳本中實現Keccak-256和Grøstl等哈希函數將確定最適合比特幣的哈希函數,並探索其他新的比特幣友好的哈希函數。

3.4 無腳本腳本 BitVM

無腳本腳本是一種使用 Schnorr 籤名在鏈外執行智能合約的方法。無腳本腳本的概念起源於 Mimblewimble,除了內核及其籤名之外,不存儲任何永久數據。

無腳本腳本的優點包括功能性、隱私性和效率:

  • 功能:無腳本腳本可以擴展智能合約的範圍和復雜性。比特幣腳本的功能受到網路上啓用的 OP_CODES 數量的限制。相比之下,無腳本腳本將智能合約的規範和執行轉移到鏈下,由合約方單獨討論,而無需等待比特幣網路分叉來啓用新的操作碼。
  • 隱私:將智能合約的規範和執行從鏈上轉移到鏈下可以增強隱私性。在鏈上,合約的許多細節都與整個網路共享,包括參與者數量、地址和轉帳金額。將智能合約移至鏈下意味着網路只知道參與者同意合約條款得到滿足並且相關交易有效。
  • 效率:無腳本腳本最大限度地減少了需要驗證和存儲在鏈上的數據量。通過將智能合約移至鏈下,可以降低全節點的管理成本,也可以降低用戶的交易費用。

無腳本腳本代表了一種在比特幣上設計加密協議的方法,可以避免執行顯式的智能合約。其核心思想是使用密碼算法來實現所需的功能,而不是使用腳本。適配器籤名和多重籤名是無腳本腳本的基礎構建塊。使用無腳本腳本,交易可以比傳統交易更小,從而降低交易費用。

無腳本腳本可用於在 BitVM 電路中實現邏輯門承諾,節省 BitVM 腳本空間並提高 BitVM 效率,使用 Schnorr 多重籤名和 Adapter 籤名,而不是像 BitVM 解決方案那樣提供哈希值和原像。盡管當前的無腳本腳本方案可以減少 BitVM 腳本空間,但它們需要證明者和質疑者之間進行廣泛的交互才能組合公鑰。未來的改進將旨在將無腳本腳本集成到特定的 BitVM 功能模塊中。

3.5 非許可的多方質疑

當前的 BitVM 質疑需要許可,因爲比特幣 UTXO 只能執行一次,從而導致惡意驗證者可以通過質疑誠實的證明者來“浪費”合約。BitVM 目前僅限於兩方質疑模型。惡意證明者可以利用他控制下的驗證者發起質疑並“浪費”合約,從而確保他的惡意行爲成功,而其他驗證者無法阻止這種行爲。因此,在比特幣之上,有必要研究一種非許可的多方OP質疑協議,可以將BitVM現有的1-of-n信任模型擴展爲1-of-N,其中N遠大於n。此外,解決質疑者和證明者之間的勾結問題或“浪費”合約的惡意挑戰問題也很重要,以實現更加信任最小化的 BitVM 協議。

非許可的多方挑戰允許任何人在沒有白名單的情況下參與,這意味着用戶可以在沒有任何可信第三方參與的情況下退出 L2。此外,任何想要參與OP挑戰協議的用戶都可以質疑並刪除無效提款。

將 BitVM 擴展爲非許可的多方質疑模型涉及解決以下攻擊:

  • 女巫攻擊: 即使攻擊者創建多個身分來參與爭議質疑,單個誠實的參與者仍然應該能夠贏得爭議。如果誠實的參與者捍衛正確結果的成本隨着攻擊者的數量線性增長,那麼誠實的參與者贏得爭議的成本就變得不切實際,並且在涉及大量攻擊者時容易受到 Sybil 攻擊。論文《未經許可的裁判錦標賽》提出了一種改變遊戲規則的爭議解決算法,其中單個誠實參與者贏得爭議的成本隨着對手的數量呈對數增長,而不是線性增長。
  • 延遲攻擊:個人或一羣惡意行爲者遵循某種策略來阻止或延遲 L1 上正確結果的確認(例如將資產提取到 L1),迫使誠實的證明者花費 L1 交易費用。爲了緩解這個問題,質疑者可能需要預先注資。如果質疑者發起延遲攻擊,他們的權益將被沒收。然而,如果攻擊者願意在一定程度上犧牲自己的權益來進行延遲攻擊,則應該制定策略來減少這些攻擊的影響。論文《BoLD:Rollup 質疑協議中的有限流動性延遲》中提出的算法確保攻擊者造成的最壞情況延遲受到限制,無論攻擊者願意損失多少權益都是如此。

在未來,將探索一種適合比特幣特性、抵御這些攻擊的BitVM非可多方挑戰模型。

4. 結語

對BitVM技術的探索才剛剛開始,在未來,將繼續探索和實踐更多優化措施,以實現比特幣的擴展並豐富比特幣生態系統。

聲明:

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

BitVM 及其優化考慮因素

中級4/8/2024, 3:35:02 AM
本文探討了 BitVM 用於增強比特幣生態系統可擴展性和豐富性的原理和優化策略。

1. 簡介

比特幣是一種去中心化、安全、值得信賴的數字資產。然而,它面臨着重大限制,無法成爲支付和其他應用程序的可擴展網路。比特幣的擴容問題自誕生以來一直備受關注。比特幣的 UTXO(未花費交易輸出)模型將每筆交易視爲獨立事件,導致無狀態系統在執行復雜的、依賴於狀態的計算時能力不足。因此,雖然比特幣可以執行簡單的腳本和多重籤名交易,但它很難促進有狀態區塊鏈平台上常見的復雜且動態的合約交互。這種限制極大地限制了可以在比特幣上構建的去中心化應用程式(dApp)和復雜金融工具的範圍,而有狀態平台模型爲部署和執行功能豐富的智能合約提供了更加多樣化的環境。

對於比特幣擴容,主要技術包括狀態通道、側鏈和客戶端驗證。狀態通道提供了安全且多樣化的支付解決方案,但驗證任意復雜計算的能力有限。這種限制降低了它們在需要復雜的條件邏輯和交互的各種場景中的適用性。側鏈支持廣泛的應用程序並提供超出比特幣功能的多樣性,但它們的安全性較低。這種安全差異源於側鏈使用獨立的共識機制,其穩健性遠不如比特幣的共識機制。客戶端驗證採用比特幣UTXO模型,可以處理更復雜的交易,但缺乏與比特幣的雙向檢查和約束,導致安全性較低。客戶端驗證協議的鏈下設計依賴於服務器或雲基礎設施,這可能因受損的服務器導致中心化或潛在的審查。客戶端驗證的鏈下設計也給區塊鏈基礎設施帶來了更多的復雜性,可能引起可擴展性問題。

2023年12月,ZeroSync項目負責人Robin Linus發表了題爲《BitVM:在比特幣上計算任何東西》一文,這引發了關於增強比特幣可編程性的大量思考。該論文提出了一種圖靈完備的比特幣合約解決方案,可以在比特幣上執行任何復雜的計算,而無需改變網路的共識規則或改變比特幣的基本原理。 BitVM 利用比特幣腳本和 Taproot 來實現樂觀 Rollups。它使用 Lamport 籤名(也稱爲比特承諾)在兩個比特幣 UTXO 之間建立連接,從而啓用有狀態的比特幣腳本。大型程序在 Taproot 地址內提交,運營商和驗證者進行廣泛的鏈下交互,在區塊鏈上留下最小的足跡。如果雙方合作,任何復雜的、有狀態的鏈下計算都可以執行,而不會在區塊鏈上留下任何痕跡。但如果雙方不配合,發生爭議時需要鏈上執行。因此,BitVM 大大擴展了比特幣的潛在用例,使其不僅可以作爲貨幣,還可以作爲各種去中心化應用和復雜計算任務的驗證平台。

然而,盡管BitVM技術在比特幣擴容方面具有優勢,但仍處於早期階段,並面臨一些效率和安全問題,例如:(1)質疑和響應過程需要多次交互,導致交易費用高、質疑週期長; (2) Lamport一次性籤名數據長度較長,需要減小數據大小;(3)哈希函數復雜度高,需要比特幣友好的哈希函數來降低成本;(4)現有的BitVM合約規模較大,而比特幣區塊容量有限,因此使用無腳本腳本可以幫助實現無腳本腳本BitVM,節省比特幣區塊空間並提高BitVM效率;(5)當前BitVM運行在許可模型上,質疑僅由聯盟成員發起,且僅限於兩方,應擴展到無許可的多方質疑模型,以進一步減少信任假設。針對這些問題,本文提出了幾種優化思路,以提高 BitVM 的效率和安全性。

2. BitVM原理

BitVM定位爲比特幣的鏈下合約系統,旨在推進比特幣的合約功能。目前,比特幣腳本是完全無狀態的,這意味着執行環境在每個腳本後都會重置。比特幣腳本中沒有本地方法可以確保腳本 1 和 2 具有相同的 X 值。然而,可以使用現有的操作碼和 Lamport 一次性籤名使比特幣腳本有狀態,從而強制使腳本 1 和腳本 2 中的 X 值相同。如果參與者籤署了相互衝突的值 X,他們可能會受到處罰。

BitVM 計算發生在鏈外,而這些計算的驗證發生在鏈上。鑑於比特幣區塊的1MB限制,當需要驗證復雜計算時,OP技術可以採用質疑-響應模式來支持更高復雜度的計算驗證。

與 Optimistic Rollup 和 MATT 提案(Merkelize All The Things)類似,BitVM 系統基於欺詐證明和挑戰響應協議,但不需要更改比特幣的共識規則。BitVM 的底層原語很簡單,主要基於哈希鎖、時間鎖和大型Taproot樹。

證明者逐字節地提交程序,但驗證鏈上的所有計算將非常昂貴。因此,驗證者進行一系列精心設計的質疑,以簡潔地反駁證明者的虛假主張。證明者和驗證者共同籤署一系列質疑和響應交易來解決爭議,從而允許對比特幣進行一般計算驗證。

BitVM 的主要組件包括:

  • 電路承諾:證明者和驗證者將程序編譯成大型二進制電路。證明者在 Taproot 地址中提交該電路,該地址下的每個葉腳本對應於電路中的每個邏輯門。核心是基於比特承諾來實現邏輯門承諾。
  • 挑戰與回應:證明者和驗證者預先籤署一系列交易來實現質疑-響應遊戲。理想情況下,這種交互發生在鏈外,但如果證明者不合作,也可以在鏈上執行。
  • 不明確的懲罰: 如果證明者提出任何不正確的主張,驗證者可以在成功挑戰後收取證明者的押金,並挫敗證明者的惡意行爲。

3. BitVM 優化

3.1 基於ZK減少OP交互次數

Rollups 主要有兩種類型:ZK Rollups 和 Optimistic Rollups(OP Rollups)。 ZK Rollups 依賴於零知識 (ZK) 證明的有效性驗證,零知識證明是正確執行的密碼學證明。它們的安全性取決於計算復雜性假設。樂觀匯總依賴於欺詐證明,假設所有提交的狀態都是正確的,並且通常設置大約 7 天的質疑期。它們的安全性前提是系統中至少有一個誠實的一方能夠檢測到不正確的狀態並提交防欺詐信息。

假設 BitVM 質疑程序的最大步數爲 2^{32},則需要大約 17GB 內存(2^{32}×4 字節)。在最壞的情況下,大約 40 輪質疑和響應可能需要大約六個月的時間,總腳本大小約爲 150KB。這種情況不會提供足夠的激勵,但在實踐中很少發生。

使用零知識證明來減少BitVM中的挑戰次數可以增強其效率。根據零知識證明理論,如果數據Data滿足算法F,則證明將滿足驗證算法Verify,輸出True。反之,如果Data不滿足F,則證明將不會滿足Verify,輸出False。在BitVM系統中,如果挑戰者不接受證明者的數據,則會發起挑戰。

對於算法F,採用二分搜索方法,假設需要2^n次迭代來找到錯誤點。如果算法的復雜度太高,n很大,完成需要很長時間。然而,零知識證明驗證算法Verify的復雜度是固定的。通過公開證明和驗證過程Verify,可以看到False的輸出。零知識證明的優勢在於,相比使用二分搜索打開原始算法F,驗證算法Verify需要更低的計算復雜度。因此,使用零知識證明,BitVM不再挑戰原始算法F,而是挑戰驗證算法Verify,減少了質疑輪次並縮短了質疑期。

盡管零知識證明和欺詐證明的有效性依賴於不同的安全假設,它們可以結合起來構建ZK欺詐證明,並實現按需ZK證明。與完整的ZK Rollup不同,按需模型僅在發起質疑時需要ZK證明,保持一種樂觀的設計,即生成的狀態在挑戰之前被假定爲有效。如果狀態沒有受到挑戰,則不需要ZK證明。但是,如果發起了質疑,則必須爲質疑塊中的所有交易的正確性生成ZK證明。未來,可能可以爲單個有爭議的指令生成ZK欺詐證明,避免持續生成ZK證明的計算成本。

3.2 對比特幣友好的一次性籤名

在比特幣網路中,遵循共識規則的交易被認爲是有效的,但除了這些規則之外,還有一個額外的標準概念。比特幣節點僅傳播和廣播標準交易,而將有效但非標準交易包含在區塊中的唯一方法是通過與礦工的直接合作。

根據共識規則,傳統(非隔離見證)交易的最大大小爲 1MB,可以填滿整個區塊。但是,遺留事務的標準限制設置爲 100kB。對於Segwit交易,共識規則允許的最大大小是4MB,稱爲權重限制,但其標準限制是400kB。

Lamport籤名是BitVM的基礎組件,減少籤名和公鑰的長度有助於減少交易數據大小,從而降低交易費用。Lamport一次性籤名需要一個哈希函數(如單向置換函數f)。在Lamport一次性籤名方案中,消息長度爲v位,公鑰和籤名長度都爲2v位。這些長籤名和公鑰消耗了大量的存儲Gas。因此,有必要探索可以減少籤名和公鑰長度的籤名方案。與Lamport一次性籤名相比,Winternitz一次性籤名大大減少了籤名和公鑰的長度,但增加了籤名和驗證的計算復雜性。

在Winternitz一次性籤名方案中,一個特殊函數P將一個v位消息映射到長度爲n的向量s,s的每個元素取值在{0,…,d}之間。Lamport一次性籤名方案是Winternitz方案的特殊情況,其中d=1。在Winternitz方案中,n、d和v之間的關係大約爲n≈v/log2(d+1)。當d=15時,n≈(v/4)+1。對於具有n個元素的Winternitz籤名,公鑰和籤名長度比Lamport一次性籤名方案短四倍,但驗證的復雜性增加了四倍。在BitVM中使用d=15,v=160,f=ripemd160(x)的Winternitz一次性籤名可以將位承諾大小減少50%,從而至少減少BitVM的交易費用50%。在未來,除了優化現有的Winternitz比特幣腳本實現外,還可以探索更緊湊的一次性籤名方案,這些方案可以在比特幣腳本中表達。

3.3 比特幣友好的哈希函數

根據共識規則,P2TR腳本的最大大小爲10kB,P2TR腳本見證人的最大大小與最大Segwit交易大小相同,均爲4MB。然而,P2TR 腳本見證的標準限制是 400kB。

目前,比特幣網路不支持OP_CAT,無法連接字符串進行默克爾路徑驗證。因此,需要使用現有的比特幣腳本,以腳本大小和腳本見證大小最有效的方式實現比特幣友好的哈希函數,以支持默克爾包含證明驗證。

BLAKE3是BLAKE2哈希函數的優化版本,並引入了Bao樹模式。與基於 BLAKE2s 的壓縮函數相比,其壓縮函數的輪數從 10 輪減少到 7 輪。BLAKE3 哈希函數將其輸入分成 1024 字節的塊,最後一個塊可能更短但不爲空。當只有一個塊時,它充當根節點和樹的唯一節點。這些塊被排列爲二叉樹的葉節點,並且每個塊被獨立壓縮。

當BitVM用於驗證默克爾包含證明時,哈希運算的輸入由兩個256位哈希值串聯而成,總共64字節。使用 BLAKE3 哈希函數,這64個字節可以放入單個塊中,這意味着 BLAKE3 哈希操作只需對該單個塊應用一次壓縮函數。在BLAKE3的壓縮函數中,需要七個輪函數和六個置換函數。

BitVM已經基於u32值實現了XOR、模加和右位移等基本操作,這讓使用比特幣腳本組裝BLAKE3哈希函數變得直觀。堆棧使用四個單獨的字節來表示u32字,便於進行BLAKE3所需的u32加法、u32按位異或和u32按位旋轉。比特幣腳本中的BLAKE3哈希函數目前約爲100kB,足以構建BitVM的玩具版本。

此外,通過拆分這些BLAKE3代碼,驗證者和證明者可以通過將執行分割成質疑-響應遊戲而不是完全執行來顯著減少鏈上數據需求。最後,在比特幣腳本中實現Keccak-256和Grøstl等哈希函數將確定最適合比特幣的哈希函數,並探索其他新的比特幣友好的哈希函數。

3.4 無腳本腳本 BitVM

無腳本腳本是一種使用 Schnorr 籤名在鏈外執行智能合約的方法。無腳本腳本的概念起源於 Mimblewimble,除了內核及其籤名之外,不存儲任何永久數據。

無腳本腳本的優點包括功能性、隱私性和效率:

  • 功能:無腳本腳本可以擴展智能合約的範圍和復雜性。比特幣腳本的功能受到網路上啓用的 OP_CODES 數量的限制。相比之下,無腳本腳本將智能合約的規範和執行轉移到鏈下,由合約方單獨討論,而無需等待比特幣網路分叉來啓用新的操作碼。
  • 隱私:將智能合約的規範和執行從鏈上轉移到鏈下可以增強隱私性。在鏈上,合約的許多細節都與整個網路共享,包括參與者數量、地址和轉帳金額。將智能合約移至鏈下意味着網路只知道參與者同意合約條款得到滿足並且相關交易有效。
  • 效率:無腳本腳本最大限度地減少了需要驗證和存儲在鏈上的數據量。通過將智能合約移至鏈下,可以降低全節點的管理成本,也可以降低用戶的交易費用。

無腳本腳本代表了一種在比特幣上設計加密協議的方法,可以避免執行顯式的智能合約。其核心思想是使用密碼算法來實現所需的功能,而不是使用腳本。適配器籤名和多重籤名是無腳本腳本的基礎構建塊。使用無腳本腳本,交易可以比傳統交易更小,從而降低交易費用。

無腳本腳本可用於在 BitVM 電路中實現邏輯門承諾,節省 BitVM 腳本空間並提高 BitVM 效率,使用 Schnorr 多重籤名和 Adapter 籤名,而不是像 BitVM 解決方案那樣提供哈希值和原像。盡管當前的無腳本腳本方案可以減少 BitVM 腳本空間,但它們需要證明者和質疑者之間進行廣泛的交互才能組合公鑰。未來的改進將旨在將無腳本腳本集成到特定的 BitVM 功能模塊中。

3.5 非許可的多方質疑

當前的 BitVM 質疑需要許可,因爲比特幣 UTXO 只能執行一次,從而導致惡意驗證者可以通過質疑誠實的證明者來“浪費”合約。BitVM 目前僅限於兩方質疑模型。惡意證明者可以利用他控制下的驗證者發起質疑並“浪費”合約,從而確保他的惡意行爲成功,而其他驗證者無法阻止這種行爲。因此,在比特幣之上,有必要研究一種非許可的多方OP質疑協議,可以將BitVM現有的1-of-n信任模型擴展爲1-of-N,其中N遠大於n。此外,解決質疑者和證明者之間的勾結問題或“浪費”合約的惡意挑戰問題也很重要,以實現更加信任最小化的 BitVM 協議。

非許可的多方挑戰允許任何人在沒有白名單的情況下參與,這意味着用戶可以在沒有任何可信第三方參與的情況下退出 L2。此外,任何想要參與OP挑戰協議的用戶都可以質疑並刪除無效提款。

將 BitVM 擴展爲非許可的多方質疑模型涉及解決以下攻擊:

  • 女巫攻擊: 即使攻擊者創建多個身分來參與爭議質疑,單個誠實的參與者仍然應該能夠贏得爭議。如果誠實的參與者捍衛正確結果的成本隨着攻擊者的數量線性增長,那麼誠實的參與者贏得爭議的成本就變得不切實際,並且在涉及大量攻擊者時容易受到 Sybil 攻擊。論文《未經許可的裁判錦標賽》提出了一種改變遊戲規則的爭議解決算法,其中單個誠實參與者贏得爭議的成本隨着對手的數量呈對數增長,而不是線性增長。
  • 延遲攻擊:個人或一羣惡意行爲者遵循某種策略來阻止或延遲 L1 上正確結果的確認(例如將資產提取到 L1),迫使誠實的證明者花費 L1 交易費用。爲了緩解這個問題,質疑者可能需要預先注資。如果質疑者發起延遲攻擊,他們的權益將被沒收。然而,如果攻擊者願意在一定程度上犧牲自己的權益來進行延遲攻擊,則應該制定策略來減少這些攻擊的影響。論文《BoLD:Rollup 質疑協議中的有限流動性延遲》中提出的算法確保攻擊者造成的最壞情況延遲受到限制,無論攻擊者願意損失多少權益都是如此。

在未來,將探索一種適合比特幣特性、抵御這些攻擊的BitVM非可多方挑戰模型。

4. 結語

對BitVM技術的探索才剛剛開始,在未來,將繼續探索和實踐更多優化措施,以實現比特幣的擴展並豐富比特幣生態系統。

聲明:

  1. 本文轉載自[@Bitlayer/bitvm-and-its-optimization-considerations-007da599d8ac">Bitlayer],著作權歸屬原作者[Lynndell and Mutourend],如對轉載有異議,請聯系Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得復制、傳播或抄襲經翻譯文章。
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!