Validity Rollups: EVM與Cairo VM之爭引領以太坊擴容新方向

Validity Rollups: 以太坊擴容的最佳解決方案?

Validity Rollups (VRs),也稱爲zk-rollups,被認爲是以安全和去中心化方式提升以太坊吞吐量的最具前景的方案。這種擴容解決方案的核心在於使用有效性證明進行可驗證計算。其工作原理如下:

運營商將交易執行轉移到鏈下環境(第2層)進行處理。處理大量交易後,第2層運營商將結果返回以應用於以太坊狀態,同時提供有效性證明以驗證鏈下執行的完整性。該證明確保批次中的所有交易均有效,並由鏈上驗證者合約自動驗證。這允許以太坊將結果應用到其狀態。

需要注意的是,Validity Rollups通常被誤稱爲零知識匯總,但這並不準確。大多數Validity Rollup並不使用ZKP,也不用於確保隱私。因此,"Validity Rollup"這一術語更爲準確。

爲什麼說Validity Rollups是以太坊最有希望的擴容方式?

鏈下虛擬機

虛擬機(VM)是一個可以運行程序的環境,類似於在Mac上運行Windows操作系統。它在對某些輸入執行計算後在狀態之間轉換。以太坊虛擬機(EVM)是運行以太坊智能合約的VM。

零知識虛擬機(zkVM)是一種程序執行環境,它能夠生成易於驗證的有效性證明,以證明程序已正確執行。"zkEVM"通常指利用以太坊虛擬機(EVM)並能夠證明EVM執行的匯總。這個術語可能有誤導性,因爲EVM本身並不生成這些證明;相反,證明是由一個單獨的證明機制生成的,該機制以EVM執行的結果爲起點。此外,這些證明關注的是有效性而非隱私,因此它們並非完全的零知識證明。

盡管所有Validity Rollups都旨在利用有效性證明來擴展以太坊,但它們在選擇VM來執行鏈下交易方面各有不同。許多Validity Rollups選擇復制EVM的設計(因此被稱爲"zkEVM rollups"),試圖在L2 rollup上復制以太坊。而另一種方案使用了專門設計的新型VM - Cairo VM (CVM),旨在優化有效性證明效率。

這兩種方法各有優缺點,但zkEVM以性能換取以太坊兼容性,而Cairo VM則將性能置於兼容性之上,優先考慮擴展能力。

zkEVM的方法

zkEVM旨在將以太坊體驗完整地引入Layer-2區塊鏈。它的目標是將以太坊開發環境復制爲匯總。借助zkEVM,開發人員在編寫智能合約或將智能合約移植到更具可擴展性的解決方案時,無需更改代碼或放棄其EVM工具(和智能合約)。

這種方法的一個主要缺點是降低了有效性證明的擴展潛力。由於zkEVM致力於與以太坊兼容,因此速度較慢且資源密集度更高。與CVM不同,EVM在設計時並未考慮證明效率。這限制了可以提高效率和可擴展性的優化的使用,最終影響系統的整體性能。

EVM的可證明性挑戰

zkEVM方法的核心挑戰源於EVM的原始設計 - 它並非爲在有效性證明環境中運行而設計。因此,反映其功能的努力無法充分發揮有效性證明的潛力,導致效率不佳。這種低效率最終會影響系統的整體性能。EVM與有效性證明的兼容性受到以下因素的制約:

  1. EVM採用基於堆棧的模型,而有效性證明更適合基於寄存器的模型。EVM的堆棧特性增加了證明其執行正確性的難度,也使得爲其原生工具鏈提供直接支持變得更加困難。

  2. 以太坊存儲布局嚴重依賴Keccak和大型Merkle Patricia Tree,這兩者都不利於有效性證明,並增加了大量證明負擔。例如,Keccak在x86架構上運行很快,但需要90k步來證明。相比之下,對zk友好的Pedersen哈希函數只需32個步驟。即使使用遞歸壓縮,在zkEVM中使用Keccak也意味着用戶需要承擔大量證明者資源成本。

因此,各種zkEVM方案爲以太坊工具提供了不同級別的支持 - zkEVM與以太坊的兼容性越高,性能就越差。

Cairo-VM的方法

與zkEVM投入大量開發時間來"讓EVM適應Validity Rollups"不同,Cairo-VM採用了全新的專用虛擬機設計,並在其之上添加對以太坊工具的支持作爲附加層。這是於2021年11月推出的無需許可的Validity Rollup - Starknet所採用的方法。Starknet是第一個在完全可組合的網路上提供通用智能合約平台的Validity Rollup。

Starknet使用Cairo-VM (CVM),這是一種同名的高級語言。Cairo-VM是專門爲高效生成程序執行的有效性證明而設計的VM。

使用Cairo(虛擬機和語言),我們獲得了:

  1. 優化的有效性證明 - 每條指令都有一個有效的代數表示
  2. 用於編寫可證明程序的類Rust語言
  3. 高級Cairo和Cairo匯編(VM指令)之間的中間表示(Sierra),允許高效執行Cairo代碼

開發新語言可以根據特定需求進行定制,並爲其配備滿足以前未滿足需求的功能。

Cairo和編碼多元化

Cairo語言最初旨在簡化生成有效性證明的過程,並使向StarkEx添加功能和復雜業務邏輯變得更容易。Cairo程序被編譯成代數機器代碼 - 一個數字序列 - 由固定的VM執行。有了Cairo,生成描述計算的數學約束的復雜性被抽象出來,並被固定的約束集(總共少於50個約束)捕獲。因此,開發人員可以利用有效性證明來擴展他們的應用程序,而無需了解底層數學和基礎設施,只需使用他們熟悉的語法編寫代碼即可。

Starknet注重創新,這體現在其多元化的代碼方法中。Cairo使用STARKs獲得最佳擴展的能力不僅限於那些直接用Cairo編寫合約的人。開發人員可以選擇最適合他們的方法:

  1. 在Cairo中直接編寫代碼:隨着Cairo 1.0的發布,開發人員現在可以使用符合人體工程學且安全的類Rust語言,這使得編寫程序邏輯變得更加容易且不易出錯。

  2. Solidity兼容性:Solidity開發人員可以編寫Cairo VM可使用的代碼。這種方法提供了與以太坊類似的開發體驗,並使Solidity智能合約可移植到Starknet。有兩種實現方式:

    • 轉譯:將一種編程語言的原始碼轉換爲另一種語言。某團隊創建了Warp轉譯器,用於將Solidity代碼轉譯到Cairo。Warp使Solidity智能合約可移植到Starknet,有效地使其成爲Type 4 zkEVM。它已被用於轉譯和部署某DEX合約,只需進行極小的改動。

    • Starknet上的zkEVM:Cairo VM可用於證明另一個VM的執行。Kakarot是一個用Cairo編寫的zkEVM,可用於在Starknet上運行以太坊智能合約。Cairo VM和zkEVM並非競爭方案,我們可以同時擁有Cairo VM和zkEVM!

盡管存在時間很短,但Cairo已成爲TVL排名第四的最受歡迎智能合約語言,並已獲得超過3.5億美元的資金支持。

總結

zkEVM旨在將以太坊環境復制爲rollup,並允許開發人員使用熟悉的以太坊工具。然而,這種方法限制了有效性證明的全部潛力,且可能資源密集。

Cairo VM專爲有效性證明系統設計,不受EVM限制。它由一種新的、安全且符合人體工程學的類Rust編程語言Cairo 1.0支持,形成了一個強大的工具,旨在通過使用STARK證明實現最大效率的以太坊擴展。

Cairo的持續進展,以及Kakarot zkEVM和Warp等多樣化開發選擇的增長,令人振奮。隨着基於Cairo的應用進入生產階段,展示了Cairo的強大功能,相信它將在未來用於更具雄心的項目。

得益於STARK擴展的多種途徑,以及未來幾個月內必將出現的其他途徑,開發人員現在對區塊鏈擴展擁有前所未有的控制能力。

爲什麼說Validity Rollups是以太坊最有希望的擴容方式?

ETH-4.03%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 7
  • 轉發
  • 分享
留言
0/400
RektRecoveryvip
· 08-13 08:25
唉...又一个等待被利用的攻击面,老实说
查看原文回復0
fomo_fightervip
· 08-13 03:30
L2要能跑这么快早就起飞了吧
回復0
just_here_for_vibesvip
· 08-12 17:26
2层能打得过老v吗?
回復0
ZkSnarkervip
· 08-11 05:15
实际上,rollups 只是花哨的批处理机制,老实说。
查看原文回復0
GateUser-7b078580vip
· 08-11 03:05
看gas费变化趋势 感觉又要等几年
回復0
Fren_Not_Foodvip
· 08-11 02:45
eth真的炒冷饭炒到上天了吧
回復0
钱包管理员vip
· 08-11 02:42
跑批次太慢了 合约风险顶不住
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)