來源:Four Pillars;編譯:白水,金色財經
摘要
2023 年,zkRollups 從研究階段過渡到生產階段,Starknet、zkSync、Scroll、Polygon zkEVM 和 Linea 等項目推出了各自的解決方案。
隨着協處理器、證明器市場、共享證明器和 zk 聚合層等新概念的發展,zkRollup 生態系統變得更加高效和去中心化。
zkRollup 的運行涉及三個主要階段:執行、證明生成和證明驗證,各種項目都專注於優化 zkRollup 供應鏈中的每個組件。
zkSync、Starknet、Merlin 和 SNARKnado 等 zkRollups 正在开發其基礎設施,但它們仍處於優化供應鏈的早期階段。
2022 年,zkRollups 主要處於研究階段。2023 年標志着它們未來的开始。許多項目,包括 Starknet、zkSync、Scroll、Polygon zkEVM 和 Linea,都將其Rollup投入產品。其好處顯而易見,因爲與Optimistic rollups總相比,它具有更短的最終確定時間、更安全的互操作性和更低的運營成本。盡管取得了這些進步,但與Optimistic rollups相比,zkRollups 仍處於實驗階段,其技術路线圖經常發生變化。
那么,zkRollups 的未來會怎樣?許多項目中經常出現諸如協處理器、證明器市場、共享證明器和 zk 聚合層等新術語。zkRollup 正在以不同的方式开發,在 zkRollup 生態系統中,正在構建許多組件以使 zkRollups 更高效、更去中心化。如果我們考慮 zkRollups 的運作方式,該過程涉及三個階段:執行、執行的證明生成和證明驗證。每個階段都有相應的項目。簡要總結一下:
執行:zkVM、協處理器
證明生成:證明市場、證明聚合器
證明驗證:結算層
這些類別中的每一個都處於早期階段,但隨着這個供應鏈變得更加發達,zkRollup 生態系統將變得更加高效。在本文中,我們將首先探索 zk 的基礎知識,然後深入研究 zkRollup 供應鏈中正在構建的項目,以及以太坊和比特幣中的一些主要 zkRollup。
1. ZKP 和 zkRollup 基礎知識
本文標題提到的 zkRollup 是一種使用零知識證明(ZKP)的 rollup 方法。如果你在區塊鏈生態系統中遇到過零知識證明這個術語,那么你可能對它有所了解(如果沒有,也不用擔心;稍後會解釋)。但是,如果問爲什么以及如何將這項技術應用於 rollup,你可能會很難立即回答。
爲了找到這個問題的答案,在本章中,我們將探討什么是零知識證明和 zkRollup,它們如何運作,以及爲什么 ZKP 技術非常適合 rollup。
1.1 什么是ZKP?
1.1.1 ZKP概述
在深入研究 ZKP 的細節之前,讓我們先了解一下這個過程所涉及的組件。主要有兩個組件:
證明者:證明者持有他們想要在 ZKP 過程中向驗證者證明的陳述。
驗證者:驗證者參與 ZKP 過程,根據提供的證據確定證明者的陳述是否真實。
現在,讓我們詳細探討一下 ZKP。ZKP 是一種加密技術,其中證明者可以證明特定事實,而無需透露事實本身或任何相關信息。ZKP 具有三個主要特徵:完整性、可靠性和零知識:
完整性:如果證明者的陳述是真實的,則驗證者將確信該陳述是真實的。
可靠性:如果證明者的陳述是錯誤的,則證明者無法欺騙驗證者相信它是真實的。
零知識:在證明過程中,驗證者除了陳述的真實性或虛假性之外,不會獲得任何其他信息。
1.1.2 ZKP示例
單看定義可能不太容易理解,我們用一個衆所周知的例子“Ali Baba's Cave”(阿裏巴巴的洞穴)來解釋一下零知識證明。
考慮以下場景:在阿裏巴巴的洞穴中,有兩條路徑 A 和 B,它們在洞穴深處匯合,但被一扇祕密的門擋住了。證明者 (P) 聲稱擁有通過這扇祕密門的鑰匙,而驗證者 (V) 想要驗證 P 是否確實擁有鑰匙。
驗證過程遵循以下步驟:P 進入洞穴並選擇路徑 A 或 B。V 不知道 P 走了哪條路,但可以要求 P 通過特定的路徑出來。如果 P 有鑰匙,P 可以從任何路徑出來。在重復此過程幾次後,V 可以確信 P 擁有鑰匙。但是,V 不會了解有關鑰匙形狀或性質的任何信息。
將其應用於零知識證明的特徵:
完整性:如果 P 在多次重復中始終遵循 V 的指示,V 可以確信 P 擁有鑰匙。
可靠性:如果 P 實際上沒有鑰匙,但對此撒謊,那么不可避免地會出現 P 無法遵循 V 的指示的情況,從而證明 P 的說法是錯誤的。
零知識:V 通過多次迭代確信 P 擁有鑰匙,但對鑰匙的外觀或屬性一無所知。
1.2 那么 Rollup 和 zkRollup 是什么?
到目前爲止,我們已經探索了零知識證明的 A 到 Z。但是,必須記住的是,本文的重點是 zkRollups。現在,讓我們深入了解什么是 rollups 和 zkRollups。
1.2.1 Rollup 快速概覽
Rollup 是一種 Layer 2 擴展解決方案,它處理 Layer 2 區塊鏈上的交易,然後將Rollup狀態發布到 Layer 1 區塊鏈進行記錄和管理。
之前曾有過許多解決以太坊擴展性問題的提案。最早的是分片,即將以太坊網絡劃分爲幾個較小的“分片”,以顯著提高交易吞吐量。與多台計算機同時處理任務的方式類似,分片使以太坊網絡能夠快速高效地處理更多交易。
盡管有諸多好處,但以太坊的开發人員由於擔心潛在的中心化和技術挑战而放棄了直接分片,從而導致延遲。相反,他們採用了通過 Layer 2 解決方案進行間接分片的方法。在這種方法中,將交易數據批量傳輸到 Layer 1 的過程稱爲 rollup。目前,Optimistic Rollup 和 zkRollups 是引領該生態系統的兩種主要類型。
1.2.2 爲什么 ZK Proof 與 Rollup 是絕配
zkRollups 與 Optimistic rollups 的不同之處在於,它使用有效性證明而不是欺詐證明。zkRollups 使用 zk-SNARK 或 zk-STARK 將大量交易壓縮爲單個小證明,並在 Layer 1 區塊鏈上記錄和驗證。與 Optimistic rollups 不同,這種方法顯著提高了處理速度和效率,並且不需要爲錯誤結果設置爭議期。
零知識證明的非交互式特性對於 zkRollups 的效率和便利性至關重要。它允許 rollups 獨立管理 rollup 過程,通過根據自己的時間表將交易數據捆綁並發送到 Layer 1 來最大限度地提高效率。這種非交互式方法可以防止 Layer 1 和 rollup 之間更具交互性的過程可能產生的潛在延遲和低效率。
簡潔性是 zkRollups 有效性的另一個關鍵因素。 zk-SNARKs 和 zk-STARKs 能夠將大量數據壓縮爲小的證明,這確保了在將交易數據發送到更昂貴但更安全的 Layer 1 時的經濟效率。這種壓縮能力使 zkRollups 能夠將多筆交易作爲單個批次處理,大大增強了 Layer 1 的可擴展性,同時爲用戶在 rollup 環境中提供了更具成本效益的區塊鏈基礎設施。
1.2.3 zkRollup 的運行
讓我們進一步探索 zkRollup 的運作方式以及涉及哪些組件。zkRollup 主要由兩個組件操作:
Sequencer:sequencer 收集和處理第 2 層發生的交易,並將處理結果提交給第 1 層。雖然一些 rollup 項目有獨立的實體來排序和生成有效性證明,但爲了簡單起見,我們在這裏將它們視爲組合角色。
Rollup Contract:rollup contract 是第 1 層上的智能合約,用於確定 rollup 的狀態和交易。它接收、存儲和驗證由序列器提交的數據,確保在數據被驗證後進行適當的存儲和管理。
zkRollup 的運作流程如下:
[Sequencer <> L2] 交易批處理和狀態變化計算:將 Layer 2 上執行的多筆交易匯總爲一個批次,執行批次中的每一筆交易,並生成記錄新狀態變化的狀態根。
[Sequencer <> L2] 有效性證明生成:使用新的狀態根生成有效性證明來證明狀態根的正確性。此證明保證批次內的所有交易均已正確執行,而不會泄露每筆交易的詳細信息。
[Sequencer <> L2] 狀態根和有效性證明的提交:生成的有效性證明、狀態根和隱藏的交易數據提交給 Layer 1 Rollup 合約。Rollup 合約對提交的數據進行驗證。
[Sequencer <> Rollup Contract (L1)] 驗證和更新:Layer 1 Rollup 合約從序列器接收有效性證明、狀態根和驗證交易數據。它驗證數據,更新狀態根,如果沒有問題,則存儲驗證交易數據。如果發現問題,則不會執行驗證和存儲過程。
2. zkRollup 供應鏈概況
從鳥瞰視角來看,我們來看看 zkRollups 的整個供應鏈是如何運作的。zkRollups 涉及三個主要過程:執行、證明生成和驗證。
執行:這發生在鏈下,交易在單獨的 rollup 網絡上分批執行,從而更新 rollup 狀態。
證明生成:編譯交易批次和狀態根等輸入。證明路线處理交易,生成簡潔的 zk 證明,以加密方式證明狀態轉換的有效性,而無需透露數據。
證明驗證:zk 證明和相關數據提交給結算層(主要是以太坊)上的驗證者合約進行驗證。如果有效,rollup 合約將更新其狀態以反映新的後狀態,並在短暫的時間緩衝後完成更改。
有專門針對每個流程的項目,以使 zkRollups 更有效地運行。在下一節中,讓我們深入了解每個流程的內容以及哪些項目正在處理它們。
2.1 執行 - 在 ZK 路线中執行
執行與結算層是分开進行的,計算在單獨的機器上進行,執行的證明在zk路线中生成。這個執行環境可以分爲兩個部分:zkVM和Co-Processor。
2.1.1 zkVM
來源:Foresight Ventures:zk、zkVM、zkEVM 及其未來 | 作者:Foresight Ventures | Medium
zkVM(零知識虛擬機)是一種專門的虛擬機,旨在執行計算並生成零知識證明,以驗證這些計算的正確性,而無需透露底層數據。zkVM 有幾種類型,每種類型都針對特定的虛擬機和編程語言量身定制。以下是這些項目的一些分類:
zkEVM:它旨在復制 EVM 環境,同時結合零知識證明功能。這允許現有的以太坊智能合約和 dApp 無縫移植到基於 zkEVM 的Rollup。然而,由於爲 EVM 开發 zk 路线的復雜性及其頻繁升級,純 EVM 存在兼容性問題。
基於 RISC-V 和 MIPS 的通用 zkVM:zkRISC 是 RISC Zero 开發的 zkVM 的特定實現。它被設計爲一個通用的 zkVM,能夠執行任意計算並生成零知識證明。它允許部署 C、Python 和 Rust 等編程語言並生成執行證明。
CairoVM:Cairo VM 旨在優化程序執行有效性證明的生成。與專注於使 EVM 與有效性Rollup兼容的 zkEVM 解決方案不同,Cairo VM 從一开始就設計爲最大限度地提高 STARK 證明的效率。這種方法可以實現更好的性能和可擴展性,而不受 EVM 限制的限制。但是,由於开發人員需要學習一門新語言,因此構建 dapp 存在障礙。
2.1.2 協處理器
來源:Phala 的 2024 年路徑:區塊鏈的協處理器——AI、Hooks 和 DePin
協處理器是作爲鏈下處理器开發的,用於協助特定計算。例如,圖形處理單元 (GPU) 管理 3D 渲染所需的大量並行計算,使中央 CPU 能夠專注於通用處理。從這個意義上講,協處理器支持區塊鏈進行復雜的執行,這在區塊鏈上成本高昂。每種類型的協處理器都旨在最大限度地提高處理其專門工作負載的效率。
通過利用 ZKP,協處理器可以實現無需信任且可驗證的鏈下計算,確保結果的正確性和完整性,而不會泄露敏感數據。一些已知的項目包括:
Axiom:Axiom 正在开發一個“ZK 協處理器”系統,該系統允許智能合約查詢歷史區塊鏈數據並在鏈下執行復雜的計算,同時通過 ZKP 保持數據隱私和完整性。
Phat Contracts(Phala 網絡):Phat Contracts 是一種協同處理器,可增強可擴展性、實現無 gas 體驗、支持多鏈功能並爲 dApp 提供對鏈下數據的安全訪問。
2.2 證明生成——產生零知識證明
爲了證明狀態轉換的有效性,rollup 運算符(證明者)生成 ZKP。此證明確認新狀態根是從先前狀態正確計算出來的。由於生成 ZKP 需要大量計算資源,因此證明生成過程存在限制,尤其是對於大型交易批次或復雜的智能合約。這可能會限制 zkRollups 的吞吐量以及它們可以有效支持的應用程序類型。
此外,由於生成 zk 證明的實體需要該領域的專業知識,並且需要保持硬件最新,因此管理成本可能很高,更不用說集中化風險了。因此,該領域已經取得了一些進展,以使其更加高效。該方法分爲兩部分:建立證明生成市場以外包生成過程,並創建聚合層以使其更具成本效益。
2.2.1 證明生成市場
來源:Gevulot 介紹 | Gevulot
證明市場提供的關鍵功能包括去中心化證明生成、拍賣機制以及硬件利用率和成本效率。應用程序向網絡提交證明請求,證明者使用證明生成硬件進行響應,確保有效處理證明請求。拍賣機制將這些請求與證明者進行匹配,從而實現有競爭力的證明定價。此外,證明者使用專用硬件,降低了證明成本,去中心化市場允許聚合不同應用程序的證明請求,從而提高硬件利用率和成本效益。
證明市場還確保了審查阻力和快速終結性,並實施了質押機制。市場保證了短期審查阻力,因此證明者的出價不會被不公平地阻止或忽略。證明者需要與網絡進行質押,以防止惡意活動並確保網絡的可靠性和完整性。
最後,市場利用規模經濟。大規模協調 ZKP 生成可降低最終用戶的成本。聚合證明訂單流使證明者能夠投資和運營更高效的基礎設施。由於可以聚合證明以進行優化,因此應用程序還可以從降低的鏈上驗證成本中受益。一些項目包括:
Succinct Network:Succinct Labs 正在开發一個去中心化的證明者市場,作爲其 Succinct Network 的一部分,旨在爲 ZKP 創建統一協議。這個市場將允許應用程序將其證明生成外包給專門的證明者網絡,爲基於 ZKP 的系統提供更高效、更具成本效益的解決方案。證明者市場將通過拍賣機制運作,該機制將應用程序的證明請求與一組不同的證明者進行匹配。
=nil; Foundation:=nil; Foundation 已經开發了一個證明市場,這是一個去中心化的分布式系統,旨在作爲 ZKP 的現貨市場。這個市場允許證明請求者(例如應用程序)將 zkProof 的生成外包給專門的證明生產者。證明市場在 =nil; Foundation 的數據庫管理系統之上運行,功能更像是“Proof DEX”,而不是中心化服務。
Gevulot:Gevulot 不是傳統的證明者市場,而是模塊化堆棧的去中心化證明層。它是一個無需許可且可編程的第 1 層區塊鏈,專門設計用於將證明系統部署爲鏈上程序。與典型的證明者市場不同,Gevulot 允許用戶直接在區塊鏈上部署證明者和驗證者程序,類似於在以太坊上部署智能合約。這種方法使應用程序能夠從去中心化證明中受益,而無需引導其證明者網絡或依賴中心化解決方案。
2.2.2 證明聚合
資料來源:證明它:共享證明器、證明聚合和證明器市場 - Delphi Digital
ZKP 聚合是一種將多個 ZKP 合並爲一個證明的技術,可降低在鏈上驗證這些證明的總體成本。這對於嚴重依賴 ZKP 的Rollup尤其有益。一些值得注意的項目包括:
Polygon AggLayer:它旨在通過利用聚合 ZKP 和統一橋接合約 (LxLy Bridge) 實現 Polygon 生態系統中 L2 解決方案之間的順暢互操作性。聚合證明可確保依賴鏈狀態和捆綁包一致,防止無效Rollup狀態在以太坊上結算(如果它依賴於另一條鏈的無效狀態)。
Nebra:其產品通用證明聚合 (UPA) 是用於聚合 ZKP 的協議。Nebra 的 UPA 可以聚合來自不同路线、證明系統和各方的證明,從而將鏈上驗證的 gas 成本降低 10 倍以上。 Nebra 與 AltLayer 等項目合作,將 UPA 集成到他們的Rollup解決方案中,使 AltLayer 的用戶和 dApp 能夠從大幅降低成本中受益。
Electron Labs:Electron Labs 开發了 Quantum,這是一個聚合層,它利用 zk-recursion 將來自不同協議和各種證明方案的證明聚合成一個“超級證明”。然後在以太坊上驗證這個超級證明,分攤多個協議的驗證成本,並爲單個協議提供更便宜的驗證。
2.3 證明驗證
zkRollups 中的證明生成過程計算量很大。但是,在以太坊主網上驗證這些證明相對輕量,在保持底層區塊鏈的安全保障的同時實現了可擴展性。
以太坊中的 zk 驗證智能合約使用高效的加密算法來驗證有效性證明。如果證明有效,則提議的狀態轉換是正確的,並且新的狀態根被接受,從而更新主網上的 rollup 狀態。一些項目(如 Aligned Layer)通過利用以太坊中的驗證器提供更快、更便宜的驗證。
2.3.1 對齊層
資料來源:whitepaper.alignedlayer.com
Aligned Layer 是專爲以太坊設計的去中心化 ZKP 驗證和聚合層。作爲 EigenLayer 主動驗證服務 (AVS),它通過名爲“再質押”的過程利用以太坊的經濟安全性,確保 ZKP 在以太坊區塊鏈上得到准確驗證和結算。
Aligned Layer 提供兩種不同的操作模式來滿足不同的需求。快速模式針對最低驗證成本和低延遲進行了優化,使其成爲需要快速且經濟高效的證明驗證的應用程序的理想選擇。另一方面,慢速模式利用證明聚合來充分利用以太坊的安全保障,從而提供全面的安全性。這種雙模式方法使 Aligned Layer 能夠提供靈活的解決方案,可根據不同用例的特定要求在速度和安全性之間取得平衡。
3. zkRollups 分析
如第 2 節所述,各種項目都在優化 zkRollup 供應鏈。讓我們仔細看看生產中最值得注意的 zkRollup 項目,特別是與 EVM 兼容的項目 zkSync 和 Starknet,以及與比特幣兼容的項目 Merlin Chain 和 SNARKnado。
3.1 zkSync
zkSync 是 Matter Labs 开發的 zkRollup 解決方案,旨在解決以太坊網絡面臨的可擴展性挑战。雖然 zkSync 最初的重點是擴展以太坊,但它的野心遠不止於成爲 L2 解決方案。Matter Labs 將 zkSync 設想爲全面跨鏈生態系統的基礎,旨在無縫連接各種基於 zkSync 的匯總。爲了實現這一目標,zkSync 正在开發一個復雜但用戶友好的跨鏈環境,其中包含 zkRollup 技術、ZK Chain 和 Hyperbridge。讓我們來看看每個概念。
3.1.1 zkRollup——經濟效率優化
zkSync 採用基於 zk-SNARK 的 zkRollup 技術,zk-SNARK 的證明生成和驗證方法,證明體積小,驗證速度快。但隨着 zk-STARK 的量子抗性、大規模處理等優勢凸顯,zkSync 也在嘗試部分採用 zk-STARK,比如名爲“Boojum”的證明生成系統,就採用 zk-STARK 方法進行證明生成。
3.1.2 結構部件
Sequencer:zkSync 中的 Sequencer 按照特定的規則對交易進行排列和處理。Sequencer 包括 Prover,Prover 生成無法詳細查看的證明和交易數據並發送到 Layer 1。
Prover:zkSync 中的 Prover 使用 zk-SNARK 生成證明,證明生成過程中使用的數據包括無法詳細查看的交易數據和代表 L2 鏈狀態變化的前後狀態變化數據。生成的證明由 Layer 1 上的 Rollup 合約進行驗證。
Settlement:zkSync 使用 Layer 2 上生成的數據進行驗證,並在 Layer 1 智能合約中進行更新。如果出現驗證問題,則受影響批次中的交易不會更新。這個過程是模塊化的,下面將介紹每個 ZK Chain 連接一個或多個智能合約。
3.1.3 ZK Chain
ZK Chain 是一條超越 Layer 2 的區塊鏈,包含了 zkSync 提供的基礎設施。之所以被稱爲超越 Layer 2,是因爲 zkSync 採用了不受限制的分層結構,包括 L3 之類的分形結構。
目前最知名的 ZK Chain 是由 zkSync 構建的 zkSync Era。它兼容 EVM,允許部署簡單的 dapp。然而,對於 zkSync 最終的跨鏈生態系統目標而言,不同 ZK Chain 之間的關系至關重要。zkSync 專注於如何與其他未來的 ZK Chain 連接。
利用 ZK Chain 環境的一個例子是 Hyperbridge。通過 Hyperbridge,用戶可以方便地將來自連接鏈的所有資產發送到他們鏈特定的錢包中。當用戶需要使用他們鏈上的資產時,中繼器會促進資產的橋接、銷毀和發行。
例如,如果使用跨鏈 Uniswap,並且 era.zksync 鏈上的用戶想要將 1 ETH 兌換爲 10,000 DAI,則流程如下:
從 era.zksync 鏈錢包生成“1 ETH → 10,000 DAI”交易。
中繼器將 1 ETH 轉移到 uni.chain,將其兌換爲 10,000 DAI。
然後,中繼器將交換後的 10,000 DAI 轉移回 era.zksync 鏈。
這樣,用戶可以輕松使用 zkSync 的環境執行跨鏈交易,而無需了解有關其他鏈的詳細信息。
3.1.4 EVM兼容性
zkSync 目前聲稱與 Solidity 和 Vyper 的兼容性達到 99%。最初,zkSync 支持類似於 Rust 的語言 Zinc,以實現更合適、更高效的 zkEVM。然而,他們將重點轉移到 Solidity 兼容性上,自 2021 年 9 月起停止了 Zinc 的开發,以確保全面優化。
3.2 Starknet
Starknet 與 zkSync 類似,都是基於 zkRollup 的第 2 層解決方案,但其技術堆棧和內部技術有所不同。值得注意的是,它使用 zk-STARK 而不是 zk-SNARK,並使用自己的智能合約語言 Cairo。
3.2.1 zk Rollup - 專注於高容量 Rollup 處理
Starknet 使用 zk-STARK 生成和驗證與 Rollup 相關的證明。與 zkSync 類似,它僅使用前後狀態變化來更有效地在第 1 層管理 Rollup 數據。
此外,由於 Starknet 採用 zk-STARK,它受益於無信任環境和同時處理大量交易的能力。這使得 Starknet 成爲交易量大的 DeFi dApp 或遊戲 dApp 的首選。
3.2.2 結構特點
從結構上看,Starknet 採用與其他 zkRollup 類似的架構。但它的不同之處在於積極利用 zk-STARK 零知識證明模型,並通過其專有編程語言 Cairo 保持 EVM 兼容性。
來源:Starknet 架構:概述
Sequencer:Starknet 中的 Sequencer 在管理交易的驗證和執行以及提議區塊方面起着至關重要的作用。它的主要功能是批量處理交易。未通過驗證的交易受到 Sequencer 的限制,只有經過驗證的交易才會被納入區塊。Sequencer 還包括一個證明者,負責將完成的 rollup 數據發送到 Layer 1。
證明者:Starknet 中的證明者使用 zk-STARK 生成證明。在證明生成過程中,證明者保存每個交易執行步驟以創建 Execution Trace 並跟蹤 L2 鏈中的狀態變化,記錄 State Diff。證明生成過程需要大量的計算資源,並設計爲支持並行處理,允許多個證明者分工並同時執行任務。
結算:Layer 2 上生成的數據傳輸到 Layer 1(例如以太坊),其中組件接受交易並管理證明和狀態差異。這些組件由兩個智能合約處理:驗證者合約和 Starknet 核心合約。驗證者合約會分析從第 2 層收到的證明,如果發現任何問題,則對交易行使否決權。如果證明的有效性得到確認,則將其轉移到 Starknet 核心合約,該合約使用提供的狀態更改更新第 1 層鏈。此更新狀態將添加到第 1 層鏈塊中,一旦該塊通過第 1 層的流程,它就會受到第 1 層的影響。
3.2.3 EVM 兼容性
Starknet 正在通過 Cairo 語言开發自己獨特的 EVM 兼容性路徑。要在 Starknet 上部署智能合約,必須使用 Cairo。雖然 Cairo 尚不支持許多 Solidity 功能,盡管 Cairo 开發人員的數量正在增加,但在社區規模和採用率方面仍落後於 Solidity。
Starknet 的智能合約語言 Cairo 繼承了 Rust 的功能。它針對 zk-STARK 證明生成進行了優化,可以高效地執行和生成智能合約的證明。克服使用 Cairo 的障礙可以在更好的環境中部署和執行智能合約,並將數據安全地匯總到第 1 層。
下表概述了 Cairo 和 Solidity 之間的主要區別。
3.3 Merlin Chain
Merlin Chain 是 Bitmap Tech 开發的基於比特幣的第 2 層 zkRollup 解決方案,該公司主要專注於以太坊。Merlin Chain 基於 Polygon 的零知識證明技術,具有與 EVM 兼容的優勢,同時將Rollup數據安全地存儲到比特幣 L1。通過這種方式,Merlin Chain 旨在提高流動性並擴大比特幣網絡內的生態系統,包括 BTC,其口號是“讓比特幣再次變得有趣”。
3.3.1 zkRollup - 針對比特幣特性的混合方法
Merlin Chain 使用結合了 zk-SNARK 和 zk-STARK 的 zkRollup 技術。最初,由於比特幣網絡的結構特性爲圖靈不完備,無法在比特幣網絡上直接驗證 ZKP。然而,在 Taproot 升級後,部分驗證變得可行。Merlin Chain 利用 Taproot 將鏈下生成的Rollup數據和證明數據記錄到比特幣網絡上。
在 Merlin Chain 中,zkProver 負責驗證交易數據的有效性,並根據驗證的數據生成證明。這個過程的階段如下:
Merlin Chain 的序列節點將當前狀態信息存儲在數據庫中。
序列節點將交易發送給 zkProver。
zkProver 訪問數據庫以檢索交易驗證所需的數據。
一旦 zkProver 完成交易驗證,它就會生成證明並將其發送給序列節點。
該過程涉及幾個步驟。首先,使用 Polygon zkEVM 團隊开發的基於 zk 匯編語言 (zkASM) 的 zkEVM 驗證和處理交易。然後使用 zk-STARK 的高容量處理能力聚合生成的數據並進行壓縮以優化Rollup經濟效率。最後,使用 zk-SNARK 生成產生一致證明大小的證明。然後在去中心化的 Merlin Chain 預言機網絡環境中驗證生成的數據和證明,並通過 Taproot 上傳到比特幣網絡。
3.3.3 未來升級:鏈上欺詐證明
雖然 zkRollup 似乎可以很好地應用於以太坊生態系統的 L2 解決方案(如第 3.2.1 節所述),但它本身無法完美保證 rollup 內交易的有效性和准確性。爲了彌合比特幣網絡結構差異造成的差距,Merlin Chain 獨特地計劃引入類似於 optimistic rollup 的鏈上防欺詐機制。
鏈上防欺詐機制在 rollup 數據提議者和挑战者的關系中運作。如果挑战者認爲 rollup 數據不正確,他們可以挑战上傳到比特幣網絡的交易數據、ZK 狀態信息和 ZK 證明。大多數 L2 交易不需要在比特幣網絡(L1)上重新驗證,但如果對先前提出的 rollup 數據提出挑战,則必須重新執行和驗證數據和交易。如果發現某個角色有過錯,他們將受到懲罰。
3.3.4 EVM 兼容性
Merlin Chain 通過在其 zkProver 中使用基於 zkASM 的 zkEVM 實現 EVM 兼容性。這使得使用現有以太坊开發工具和基礎設施开發的智能合約可以在比特幣網絡上執行,從而提供了將以太坊的功能擴展到比特幣的優勢。
3.4 SNARKnado
SNARKnado 是 Alpen Labs 使用 zk-SNARK 實現的基於比特幣的第 2 層解決方案。Alpen Labs 旨在利用 SNARKnado 使區塊鏈更專注於驗證而不是計算,從而在比特幣生態系統中實現更高的可擴展性和效率。
3.4.1 zkRollup - BitVM 的繼任者
SNARKnado 是一種經過修改的模型,它針對 zk-SNARK 進行了進一步優化,該模型借鑑了 BitVM Optimism 方法中使用的證明者-挑战者結構。與 BitVM 相比,這使其性能提高了約八倍。但是,它仍然沒有達到 BitVM2 允許任何人發起挑战的優勢,因爲 SNARKnado 目前將挑战能力限制在允許的角色中。
3.4.2 結構特點
證明驗證方法 - 二分多項式
使用 zk-SNARK 允許 SNARKnado 以較小的證明大小管理比特幣上的Rollup數據和證明數據,但比特幣對復雜計算的限制需要對證明驗證進行優化。SNARKnado 通過使用二分多項式轉換證明數據來解決此問題。驗證過程通過 Taproot 升級啓用的鏈上計算進行。
當證明者收到挑战時,他們會披露挑战所需的一些數據,並與挑战者一起進行驗證過程。二分多項式方法用於驗證,確定哪個角色(證明者或挑战者)有錯。
3.4.3 SNARKnado 與 BitVM 或 BitVM2
SNARKnado 與 BitVM 有許多相似之處,特別是作爲 BitVM 和 BitVM2 之間的中點出現。那么,它們之間有什么區別呢?(由於 BitVM2 是比 BitVM 更先進的模型,因此比較將主要集中在 BitVM2 上。)
首先,考慮比特幣內部資源的使用情況。BitVM2 固有地顯示鏈上資源使用量的线性增加,而 SNARKnado 將這種增加降低到平方根級別,從而優化鏈上資源使用量。另一個區別在於能夠發出挑战的角色的可訪問性。雖然 SNARKnado 將挑战限制在允許的角色中,但 BitVM2 允許任何人在未經許可的情況下發出挑战。
3.4.4 EVM 兼容性
根據 Alpen Labs 的最新記錄,EVM 兼容性尚未得到官方支持,目前也沒有任何關於 EVM 兼容性的未來計劃。
4. 展望未來
回顧最近推出的 zkRollups 主網,我們看到了 2023 年 8 月推出的 zkSync Era 和 2023 年 12 月推出的 Polygon zkEVM。這些項目推出的時間並不長,因此大多數項目仍在積極开發中。此外,开發範圍已不僅限於 zkEVM。通用 zkVM、zkWasm 和鏈下協處理器也在執行部分开發中,其中使用自定義 zk 路线。
隨着基本執行和證明生成變得更加可靠,人們正在努力提高供應鏈效率。策略包括建立證明者市場、聚合多個證明以及創建驗證層以進行經濟高效的驗證。預計未來 zkRollups 的供應鏈將變得更加高效和實惠。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。