ZKByte: 基於零知識證明和 BitVm 的比特幣 Layer2 拓展解決方案
作者:ZKBase
本設計的主要目標是為比特幣區塊鏈建立一個專門定制的 Layer2 網絡。比特幣 Layer2 網絡旨在滿足比特幣生態系統內日益增長的對更快速、更高效交易的需求。通過將某些交易處理任務從主網上釋放,旨在緩解比特幣主網的擁堵問題並大幅減少交易確認所需的時間。
鑑於比特幣虛擬機(VM)計算能力的固有限制,我們的設計使用了 BitVM,它展示了在兩層網絡之間執行智能合約的潛力。通過利用挑戰和響應方案,BitVM 展示了一種比特幣網絡可編程性的新方法,打破了傳統的限制。
為了增強比特幣 Layer2 網絡的安全性和完整性,該設計通過集成零知識證明(ZK)技術來實現狀態驗證。這些先進的加密技術允許比特幣主網可以有效驗證 Layer2 網絡的狀態,而不會損害底層交易的隱私和機密性。零知識證明能夠驗證信息而不泄露交易的具體細節,從而在保護隱私的同時確保 Layer2 網絡的完整性。
總體而言,該設計旨在通過 Layer2 網絡、採用 BitVM 進行智能合約執行以及集成零知識證明技術進行狀態驗證,提高比特幣網絡的可擴展性、速度和效率,同時保持底層交易的隱私和安全性。
0、架構
Layer2區塊鏈採用帳戶模型。整個區塊鏈的狀態是通過基於 Halo2 證明系統的 zkVM 來驗證的。Layer2 狀態與比特幣主網絡進行同步,並且所有 Layer2 狀態都由 BitVM 實現的零知識證明(ZKP)驗證器進行驗證。我們使用一個 UTXO 來追蹤所有的 Layer2 狀態。此外,我們還使用了一個可信的預言機來確保只有鎖定 / 解鎖腳本的輸入 / 輸出遵循 Layer2 協議。
1、Layer2委員會和可信預言機
由一組被選中的用戶組成的 Layer2 委員會負責監督 Layer2 網絡的整體運行狀況。在出現協議問題時,委員會可以介入並停止協議,保護所有用戶的資產。可信預言機對於驗證輸入 / 輸出 UTXO 和腳本的正確性非常重要。
2、第一層到第二層
在比特幣網絡上創建一個單一的 Taproot 地址來表示 Layer2 協議。當創建一個 UTXO 並將其轉移到 Taproot 地址時,相應的 UTXO 實際上是從比特幣主網「充值」到 Layer2。
協議或委員會帳戶專門處理所有「充值」到 Layer2 的 UTXO 資產的「轉移」權限。只有協議、可信預言機或委員會帳戶可以更改存入 UTXO 的所有權。可信預言機確保所有權轉移交易中包含正確的輸出 UTXO 腳本。
3、同步到比特幣主網的區塊
所有 Layer2 網絡的狀態以區塊的形式同步到比特幣主網。對於一個區塊,應提供以下信息:
- 一個特定區塊中的交易
- 應用這些交易後的新帳戶狀態
- 當前區塊狀態下的新 UTXO(即使協議被破壞,也始終準備好)
- 比特幣網絡的區塊信息
- 零知識證明(證明從上一個區塊到當前區塊的狀態轉換是正確的)所有這些比特幣主網的狀態都記錄在一個 UTXO 交易歷史中。
3.1 關於證明的更多信息
零知識證明被用來驗證 Layer2 的正確性。試圖證明以下內容:
- Layer2 的區塊交易被正確簽名。
- 所有帳戶的新狀態被正確處理。
- 在比特幣主網的某個特定區塊之前的所有充值交易被正確處理。
- 對於當前狀態,所有 UTXO 的分配都被正確創建。
3.2 區塊信息挑戰
為了確保比特幣主網中指定的區塊信息的正確性,我們使用了一個挑戰和響應方案。證明者可以通過指出在鎖定時間段內特定區塊之後還存在 N 個區塊來證明區塊信息的準確性。
3.3 ZKP 電路和 BitVM 增強
正如 BitVM 論文所示,ZKP 驗證可以表示為一個二進制電路,可以由兩個參與方進行挑戰。通過預簽名交易,可以發送挑戰以獲取電路的比特承諾。如果揭示 0 和 1,則挑戰成功。為了使用 BitVM 來驗證 ZKP,需要注意以下兩點:
相同的二進制電路承諾只能使用一次。也就是說,如果相同的電路承諾用於多個區塊,可能會揭示一個比特承諾的 0 和 1。
對於 ZKP 驗證,除了電路的滿足性外,還應檢查「公共輸入」。
為了處理這兩個缺點,對於 Layer2 的每個區塊,創建一個唯一的二進制電路,並且固定「公共輸入」。比特幣腳本用於處理公共輸入的哈希和檢查。正確的公共輸入比特承諾由可信的預言機進行檢查。就電路滿足性而言,委員會內的任何成員都有權利提出挑戰。
4、從 Layer2 到比特幣主網
資產可以通過兩種方式從 Layer2 移動到比特幣主網:提款(withdrawal)和強制提款(force-withdrawal)。提款交易是從 Layer2 觸發的,ZKP 電路確保交易按預期進行處理。強制提款交易是從比特幣網絡發起的。
4.1 提款和強制提款交易
從 Layer2 觸發的提款交易使用 ZKP 電路進行驗證,以確保正確處理交易。從比特幣網絡發起的強制提款交易必須包含在下一個區塊狀態更新中。
4.2 UTXO 分配
當一個區塊的狀態更新時,UTXO 分配會進行同步。在協議停止的情況下,可以應用所有 UTXO 以確保所有用戶資產的安全。在這些 UTXO 中,只有提款或強制提款的 UTXO 由協議簽名。
5、Layer2 退出
一旦 ZKP 未經驗證,委員會必須停止並退出協議。如果協議停止,委員會會為 Layer2 最新區塊狀態中指定的所有 UTXO 分配進行簽名。憑藉這些簽名,用戶可以從 Layer2 提款而不會有任何損失。
參考文獻:
- BitVM: https://bitvm.org/bitvm.pdf
- Bitcoin Whitepaper: https://bitcoin.org/bitcoin.pdf
- Halo2 explanation: https://electriccoin.co/blog/explaining-halo-2/