# Validity Rollups: 以太坊擴容的最佳選擇Validity Rollups(又稱zk-rollups)被認爲是當前最有希望安全、去中心化地提升以太坊吞吐量的方案。這種擴容解決方案的核心在於使用有效性證明進行可驗證計算。其工作原理如下:運營商將交易執行卸載到鏈下環境(即第2層)進行處理。處理大量交易後,第2層運營商將結果返回以太坊主網,同時附上驗證鏈下執行完整性的有效性證明。這個證明能夠保證批次中的所有交易都是有效的,並由鏈上驗證者合約自動驗證。這使得以太坊能夠將結果應用到其狀態中。值得注意的是,Validity Rollups 通常被誤稱爲零知識匯總,但這並不準確。大多數 Validity Rollup 實際上並不使用零知識證明,也不用於隱私保護目的。因此,使用"Validity Rollup"這一術語更爲恰當。## 鏈下虛擬機在探討之前,我們需要先了解什麼是虛擬機(VM)。簡而言之,VM是一個可以運行程序的環境,就像在Mac上運行Windows操作系統一樣。它在執行某些輸入的計算後在不同狀態之間轉換。以太坊虛擬機(EVM)就是用於運行以太坊智能合約的VM。零知識虛擬機(zkVM)是一種特殊的程序執行環境,它不僅能執行程序,還能生成易於驗證的有效性證明,以證明程序已正確執行。"zkEVM"這個術語通常指的是能夠利用以太坊虛擬機(EVM)並證明EVM執行的rollup系統。這個術語可能會引起誤解,因爲EVM本身並不生成這些證明;相反,證明是由一個獨立的證明機制生成的,該機制以EVM執行的結果爲基礎。此外,這些證明主要關注有效性而非隱私,因此並不完全是零知識證明。盡管如此,爲了保持一致性,我們在本文中仍將使用傳統的"zkEVM"術語。雖然所有Validity Rollups都旨在利用有效性證明來擴展以太坊,但它們在選擇執行鏈下交易的VM方面存在差異。許多Validity Rollups選擇復制EVM的設計(因此被稱爲"zkEVM rollups"),試圖在L2 rollup上復制以太坊的功能。而Starknet則使用了一種新的VM——Cairo VM(CVM),專門設計用於優化有效性證明的效率。這兩種方法各有優缺點。zkEVM以性能爲代價換取了以太坊的兼容性,而Cairo VM則將性能置於兼容性之上,優先考慮擴展能力。## zkEVM的方法zkEVM是一種Validity Rollup,其目標是將完整的以太坊體驗帶到Layer-2區塊鏈上。它旨在爲rollup復制以太坊的開發人員環境。借助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解決方案不同,Starknet採用了另一種方法:使用全新的專用虛擬機,並在其上添加對以太坊工具的支持作爲附加層。Starknet於2021年11月推出,是第一個在完全可組合的網路上提供通用智能合約平台的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。有兩種方法可以實現這一點: - 轉譯:Nethermind團隊創建了Warp轉譯器,用於將Solidity代碼轉譯到Cairo。Warp使Solidity智能合約可移植到Starknet,有效地使其成爲Type 4 zkEVM。它已經被用於轉譯和部署Uniswap合約,只需進行極小的改動。 - Starknet上的zkEVM:Cairo VM可用於證明另一個VM的執行。Kakarot是一個用Cairo編寫的zkEVM,可用於在Starknet上運行以太坊智能合約。盡管存在時間較短,但Cairo已成爲TVL排名第四的最受歡迎的智能合約語言,並且已經獲得超過3.5億美元的資金支持。## 總結zkEVM旨在將以太坊環境復制爲rollup,並允許開發人員使用熟悉的以太坊工具。然而,這種方法限制了有效性證明的全部潛力,並且可能是資源密集型的。Cairo VM專爲有效性證明系統而設計,不受EVM的限制。它由一種新的、安全且符合人體工程學的Rust啓發的編程語言Cairo 1.0支持,形成了一個強大的工具,旨在通過使用STARK證明擴展以太坊來獲得最大效率。隨着Cairo不斷取得進展,以及Kakarot zkEVM和Warp等不同開發選擇的增長,未來發展令人期待。隨着Starknet dApp進入生產階段,展示了Cairo的強大功能,我們相信它將在未來用於更具雄心的項目。得益於STARK擴展的多種途徑,以及未來幾個月內可能出現的其他方案,開發人員現在對區塊鏈擴展擁有前所未有的控制權。
Validity Rollups: 揭祕以太坊擴容新趨勢
Validity Rollups: 以太坊擴容的最佳選擇
Validity Rollups(又稱zk-rollups)被認爲是當前最有希望安全、去中心化地提升以太坊吞吐量的方案。這種擴容解決方案的核心在於使用有效性證明進行可驗證計算。其工作原理如下:
運營商將交易執行卸載到鏈下環境(即第2層)進行處理。處理大量交易後,第2層運營商將結果返回以太坊主網,同時附上驗證鏈下執行完整性的有效性證明。這個證明能夠保證批次中的所有交易都是有效的,並由鏈上驗證者合約自動驗證。這使得以太坊能夠將結果應用到其狀態中。
值得注意的是,Validity Rollups 通常被誤稱爲零知識匯總,但這並不準確。大多數 Validity Rollup 實際上並不使用零知識證明,也不用於隱私保護目的。因此,使用"Validity Rollup"這一術語更爲恰當。
鏈下虛擬機
在探討之前,我們需要先了解什麼是虛擬機(VM)。簡而言之,VM是一個可以運行程序的環境,就像在Mac上運行Windows操作系統一樣。它在執行某些輸入的計算後在不同狀態之間轉換。以太坊虛擬機(EVM)就是用於運行以太坊智能合約的VM。
零知識虛擬機(zkVM)是一種特殊的程序執行環境,它不僅能執行程序,還能生成易於驗證的有效性證明,以證明程序已正確執行。"zkEVM"這個術語通常指的是能夠利用以太坊虛擬機(EVM)並證明EVM執行的rollup系統。這個術語可能會引起誤解,因爲EVM本身並不生成這些證明;相反,證明是由一個獨立的證明機制生成的,該機制以EVM執行的結果爲基礎。此外,這些證明主要關注有效性而非隱私,因此並不完全是零知識證明。盡管如此,爲了保持一致性,我們在本文中仍將使用傳統的"zkEVM"術語。
雖然所有Validity Rollups都旨在利用有效性證明來擴展以太坊,但它們在選擇執行鏈下交易的VM方面存在差異。許多Validity Rollups選擇復制EVM的設計(因此被稱爲"zkEVM rollups"),試圖在L2 rollup上復制以太坊的功能。而Starknet則使用了一種新的VM——Cairo VM(CVM),專門設計用於優化有效性證明的效率。
這兩種方法各有優缺點。zkEVM以性能爲代價換取了以太坊的兼容性,而Cairo VM則將性能置於兼容性之上,優先考慮擴展能力。
zkEVM的方法
zkEVM是一種Validity Rollup,其目標是將完整的以太坊體驗帶到Layer-2區塊鏈上。它旨在爲rollup復制以太坊的開發人員環境。借助zkEVM,開發人員在編寫智能合約或將智能合約移植到更具可擴展性的解決方案時,無需更改代碼或放棄其EVM工具(和智能合約)。
這種方法的一個主要缺點是它降低了有效性證明的擴展潛力。由於zkEVM致力於與以太坊兼容,因此速度較慢且資源消耗更大。與CVM不同,EVM在設計時並未考慮證明效率。這限制了可以提高效率和可擴展性的優化的使用,最終影響系統的整體性能。
EVM的可證明性
zkEVM方法的核心挑戰源於EVM的原始設計——它並非爲在有效性證明環境中運行而設計。因此,反映其功能的努力無法充分發揮有效性證明的潛力,導致效率不夠理想。這種低效率最終會拖累系統的整體性能。EVM與有效性證明的兼容性受到以下因素的阻礙:
EVM採用基於堆棧的模型,而有效性證明更適合基於寄存器的模型。EVM基於堆棧的特性使得證明其執行的正確性以及爲其本機工具鏈提供直接支持變得更加困難。
以太坊存儲布局嚴重依賴Keccak和大型Merkle Patricia Tree,這兩者都不利於有效性證明,並增加了大量證明負擔。例如,Keccak在x86架構上運行速度很快,但需要90k步來證明。相比之下,對zk友好的Pedersen哈希函數只需要32個步驟。即使使用遞歸壓縮,在zkEVM中使用Keccak也意味着用戶需要承擔大量證明者資源成本。
因此,各種zkEVM實現爲以太坊工具提供了不同程度的支持——zkEVM與以太坊的兼容性越高,性能就越差。
Cairo-VM的方法
與zkEVM解決方案不同,Starknet採用了另一種方法:使用全新的專用虛擬機,並在其上添加對以太坊工具的支持作爲附加層。Starknet於2021年11月推出,是第一個在完全可組合的網路上提供通用智能合約平台的Validity Rollup。
Starknet使用Cairo-VM(CVM),這是一種同名的高級語言。Cairo-VM是專門爲高效生成程序執行的有效性證明而設計的VM。
使用Cairo(虛擬機和語言),我們可以獲得:
開發一種新語言可以讓人們根據特定需求對其進行定制,並爲其配備能夠滿足以前未滿足需求的功能。
Cairo和編碼多樣性
Cairo語言最初旨在簡化創建計算有效性證明的過程,並使向StarkEx添加功能和復雜業務邏輯變得更容易。Cairo程序被編譯成代數機器代碼——一個數字序列——由一個固定的VM執行。有了Cairo,生成描述計算的數學約束的復雜性被抽象出來,並被固定的約束集(總共少於50個約束)捕獲。因此,開發人員可以利用有效性證明來擴展他們的應用程序,而無需了解底層數學和基礎設施,只需使用他們熟悉的語法編寫代碼即可。
Starknet注重創新,這體現在其多元化的代碼方法中。Cairo使用STARKs獲得最佳擴展的能力不僅限於那些在Cairo本地編寫合約的人。開發人員可以選擇最適合他們的方法:
在Cairo本地編寫代碼:隨着Cairo 1.0的發布,開發人員現在可以使用符合人體工程學且安全的Rust語言,這使得編寫程序邏輯變得更加容易且不易出錯。
Solidity兼容性:Solidity開發人員可以編寫可供Cairo VM使用的代碼。這種方法提供了與以太坊類似的開發人員體驗,並使Solidity智能合約可移植到Starknet。有兩種方法可以實現這一點:
轉譯:Nethermind團隊創建了Warp轉譯器,用於將Solidity代碼轉譯到Cairo。Warp使Solidity智能合約可移植到Starknet,有效地使其成爲Type 4 zkEVM。它已經被用於轉譯和部署Uniswap合約,只需進行極小的改動。
Starknet上的zkEVM:Cairo VM可用於證明另一個VM的執行。Kakarot是一個用Cairo編寫的zkEVM,可用於在Starknet上運行以太坊智能合約。
盡管存在時間較短,但Cairo已成爲TVL排名第四的最受歡迎的智能合約語言,並且已經獲得超過3.5億美元的資金支持。
總結
zkEVM旨在將以太坊環境復制爲rollup,並允許開發人員使用熟悉的以太坊工具。然而,這種方法限制了有效性證明的全部潛力,並且可能是資源密集型的。
Cairo VM專爲有效性證明系統而設計,不受EVM的限制。它由一種新的、安全且符合人體工程學的Rust啓發的編程語言Cairo 1.0支持,形成了一個強大的工具,旨在通過使用STARK證明擴展以太坊來獲得最大效率。
隨着Cairo不斷取得進展,以及Kakarot zkEVM和Warp等不同開發選擇的增長,未來發展令人期待。隨着Starknet dApp進入生產階段,展示了Cairo的強大功能,我們相信它將在未來用於更具雄心的項目。
得益於STARK擴展的多種途徑,以及未來幾個月內可能出現的其他方案,開發人員現在對區塊鏈擴展擁有前所未有的控制權。