為了解決區塊鏈Layer1網絡的擴容問題,Rollup方案應運而生。結合ZK技術,ZKRollup成為Layer2賽道的新寵兒。然而,對于大多數人來說,ZK、Rollup和EVM等相關概念可能有一定的理解門檻。因此,本份研報的目標是以簡明易懂的語言為你系統梳理zkEVMRollup的一系列概念,深入分析zkEVMRollup技術的演變和發展現狀,并對其中的主要生態項目進行詳細解讀,以此旨在幫助你全面深入了解和判斷zkEVMRollup賽道發展趨勢。
理解ZK
ZK,全稱Zero-KnowledgeProof,即零知識證明,在密碼學中,零知識證明或零知識協議是一種方法,通過該方法,一方可以向另一方證明一個事實,而無需透露該事實的具體信息,也就是說一方無需透露任何該事實的「具體信息」,便能讓對方知道這個事實是否正確,因此ZK技術能夠在隱私保護領域為我們帶來諸多想象空間。
當然,ZK技術除了能夠帶來隱私保護的好處,在ZKRollup中,ZK技術更重要是解決「驗證難」的問題。「驗證」這個過程對于區塊鏈非常重要,Ethereum中絕大部分的計算過程都是為了滿足驗證的要求,而ZKRollup能大大整個節點網絡投入在驗證中的時間。舉例,如果一個區塊需要很長時間來驗證區塊生成時是否滿足整個網絡的規則,那么可以有一個證明者初次驗證它并生成有關這個區塊計算結果的「證明」,剩下的其他人可以通過快速驗證這個「證明」而不是計算量極大的原區塊,而達到驗證區塊的目的。
一個簡單的ZK協議分為以下幾個步驟,生成密鑰、證明和驗證,接下來我將逐一為你拆解。
生成密鑰,證明和驗證
在ZK中,我們需要首先將待驗證的問題轉化為數學表達式,進而轉化為多項式,并將其表示為算數電路的形式。當程序轉換為算術電路時,它被分解為由加法、減法等基本算術運算組成的單個步驟。如一個將作為輸出的函數,可以轉化為以下電路圖,見圖1。
圖1一個電路圖的示例,可以注意到在電路中所有的運算被拆分為最簡單的基本運算|圖源https://zhuanlan.zhihu.com/p/487866576
使用這個電路和一些隨機數作為輸入,我們可以生成一個證明密鑰和驗證密鑰,用于后續的驗證過程,示意圖見圖2。
圖2「公共參數」的生成
我們的證明系統還需要兩種類型的輸入——私有輸入和公開輸入,與證明密鑰一起生成證明。其中,私有輸入是我們想要隱藏的秘密,而公開輸入是可以公開的信息。例如,在等式X+Y*Z=OUT中,X和OUT是公開輸入,而Y和Z的值則是我們不想向驗證者公開的。雖然根據公開輸入可以推出Y*Z的值,但是Y和Z的具體取值仍然無法確定。
圖3ZK-SNARKs的證明過程和驗證過程
當驗證方接收到證明后,使用公開輸入、證明和驗證密鑰來驗證該證明,并返回驗證結果。
明白了上述流程之后,我們可以將這種技術運用到區塊的驗證當中,實現一個小小的ZK-SNARK,見圖3。實現零知識證明的協議和方式有很多,SNARK是相較比較容易理解的一種,也是現階段多數項目的選擇。在「從ZK-SNARKs到ZK-STARKs」這個段落中我們會談到SNARK的優勢和不足。
嘗試一個小小的SNARK
我們以一個記錄賬戶狀態的MerkleTree的零知識證明為例來練習。該MerkleTree記錄了賬戶的地址和余額。當有新的交易需要更新MerkleTree時,我們需要執行以下操作:
1)驗證交易的發送方和接收方是否在樹的葉子節點上。
2)驗證發送方的簽名。
zkEVM Scroll宣布更新Logo和文檔網站:金色財經報道,zkEVM Scroll宣布更新其Logo和文檔網站,每個頁面都進行了重大改進,增強了用戶對生態系統、貢獻者、核心信念信息的可訪問性,旨在增強用戶體驗,響應社區不斷變化的需求。[2023/8/25 10:40:31]
3)更新發送方和接收方的余額。
4)更新MerkleTree的根節點,并將其作為最終輸出。
在沒有零知識證明的情況下,驗證者需要重復這些步驟來確保計算的準確性。但是使用零知識證明后,情況就不同了。首先,我們需要確定兩種類型的輸入:
在該過程中,只有新的交易信息、原MerkleRoot和更新后的MerkleRoot是公開輸入。
MerkleTree本身作為witness,不需要被驗證者讀取或處理。
其次,我們需要生成密鑰和計算電路。我們將MerkleTree更新、輸入輸出地址驗證等計算過程構建成計算電路,以獲得證明密鑰和驗證密鑰。該電路與輸入的交易信息無關,也與現有的MerkleRoot無關,因為MerkleTree的計算方式是固定的。
在生成證明的階段,我們將前后兩個MerkleTree和交易信息作為輸入。在驗證者階段,驗證者可以不需要獲取到MerkleTree,也就是不了解賬戶信息的情況下,確保更新情況的可靠性。該電路類似于一個穩固的黑盒,只要輸入正確,就能獲得正確的輸出。
使用零知識證明,其他驗證者可以快速驗證MerkleTree的生成過程是可信的,從而減少了網絡上重復驗證的時間,同時MerkleTree的信息無需向驗證者披露。
從ZK-SNARKs到ZK-STARKs
上述講的證明協議是ZK-SNARKs。SNARK代表succinctnon-interactiveargumentsofknowledge,其中succinct指的是這種方式的簡潔性,non-interactive指的是相對于其他證明方式,SNARKs是非交互性質的證明,即驗證者只需使用由證明者生成的proof即可獲得驗證結果。但是,ZK-SNARKs存在一些問題。在密鑰生成階段,電路和隨機數相當于一組初始的公共參數,這個公共參數的生成過程存在不可避免的中心化問題。
ZK-STARKs在SNARK的基礎上另辟蹊徑,其中的「s」代表可擴展的,其證明生成時間和原始計算的耗時呈擬線性關系,而驗證耗時和原始計算呈對數關系,這意味著在大量數據集作為數據的情況下,驗證者所需的驗證時間被大大縮短。
同時,作為ZK-SNARKs的升級版,ZK-STARKs不僅僅可以提高驗證效率,而且不依賴橢圓曲線或可信設置,并且不需要生成初始公共參數的過程,這消除了對可信設置的中心化需求。一些開發者認為,ZK-STARK中的哈希函數有助于抵御量子攻擊。
然而,ZK-STARKs的推出時間較晚,目前技術還不夠成熟,并且依賴哈希函數,這限制了它的通用性,ZK-SNARKs仍然是通用的證明算法。基于STARK的算法的一些示例包括Fractal、SuperSonic等,相關項目方有StarkWare、PolygonMiden等。
理解Rollup
除了ZK,另一個我們需要了解的概念是Rollup,Rollup的意義在于解決一層網絡的擁堵問題。
以Ethereum為例,它當前存在著交易擁堵的問題。解決這個問題有兩種方法:一種是增加區塊鏈本身的交易能力,例如通過分片等技術來擴展區塊鏈的吞吐量。另一種方法是改變區塊鏈的使用方式,即在二層中執行大部分活動,而不是直接在鏈上執行。在這種情況下,鏈上往往會部署一個智能合約,它只負責處理存款和取款,并使用各種方法來讀取鏈下數據,以驗證鏈下發生的一切是否符合規則。這相當于在小路旁架設高速公路,即通過L2擴容來解決擁堵問題。
當前,L2擴容的三種主要類型或方案是state-channels、Plasma和Rollup。它們是三種不同的范式,各有優點和缺點。所有L2擴展大致都可以歸為這三個類別,其中,Rollup具有自己的優勢所在。
Rollup和數據可用性
Immutable:超過20家游戲公司已與Immutable合作,支持Immutable zkEVM發布:金色財經報道,Web3游戲平臺Immutable已開始與Polygon Labs合作對其Immutable zkEVM進行公開測試。Immutable宣布與Polygon Labs建立合作伙伴關系后,零知識以太坊虛擬機(zkEVM)網絡的工作于3月份開始。Polygon自己的“圣杯”以太坊擴展zkEVM于3月27日登陸主網。Immutable在8月14日的聲明中表示,其zkEVM將使游戲開發者能夠降低開發成本,并獲得以太坊生態系統帶來的安全性和網絡效應。
據Immutable稱,超過20家游戲公司已與Immutable合作支持此次發布,其中包括GameStop、TokenTrove市場、網絡游戲發行商Kongregate、游戲設計師iLogos等。[2023/8/15 21:23:44]
相比于其他擴容方案,Rollup具有一定的優越性,其中一個比較直觀的優勢是解決了Plasma數據可用性的問題,這里我也將做一定的補充。
數據在鏈上這一事實十分重要。在Plasma以及之前的Channel這兩種擴容方案中,數據和計算完全放到二層網絡中,當二層網絡和以太坊進行交互時,二層鏈上所有交易數據并不包含在內,從狀態機的視角來看,也就是沒有包含Plasma鏈每一次狀態變更的情況。這會導致以太坊如果脫離了Plasma等的二層網絡,就無法復原之前狀態變更的情況,因此以太坊數據可用性非常依賴對Plasma數據的保護。
Rollup的機制
為了保證數據可用性,因此市場選擇了Rollup,那么Rollup具體是如何工作的?
圖4L1合約中的StateRoot|圖源https://vitalik.ca/general/2021/01/05/rollup.html
在Rollup的設計中,主鏈上有一個Rollupcontract的合約,其中保存了一個狀態根。可以把這個狀態根看作是MerkleTree的Merkle根的升級版,它存儲了賬戶余額、合約代碼等信息,圖4展現了Rollupcontract中存儲的狀態根。
L2節點主要有三個功能:首先確定哪些交易應該優先被打包,其次需要對每個打包的數據給出證明,最后提交給L1上的Rollupcontract由該合約進行驗證。圖5展現了L2中定序器的作用。
圖5定序,證明和提交Batch是L2階段的主要功能|圖源https://foresightnews.pro/article/detail/20517
具體來說,L2可以將一批數據傳遞給L1,這些數據可以是高度壓縮的交易集合或合約運行后的狀態變化情況,同時還包括L1合約中存儲的狀態根以及經過L2處理數據后得到的新的后狀態根。合約根據這些數據來驗證后狀態根的正確性。一旦驗證通過,該批數據就會在L1層確認,完成了從L2到L1的上鏈過程。
后狀態根是根據原始數據計算得出的,為了確保提交的數據中的新后狀態根是正確的,最直接的方法是讓L1重新計算一次。然而,這樣做無疑會給L1帶來巨大的壓力。為了解決這個關鍵問題,存在兩種完全不同的優化方案,即OptimisticRollup和ZKRollup。
ZKRollup和OptimisticRollup
ZKRollup使用諸如ZK-SNARKs或ZK-STARKs等加密協議證明,通過這些證明來驗證執行該批次后狀態根的正確性。不論L2的計算量有多大,ZKRollup能夠快速在L1上鏈上進行驗證。
另一種證明方式是OptimisticRollup,它使用欺詐證明。這里有個形象的比喻,這就好比媽媽不經常檢查兒子的作業,但只要有一次作業沒有完成,就會嚴厲懲罰。在這種機制下,Rollup合約跟蹤狀態根的完整歷史和每個批次的哈希值。如果有人發現某個批次的后狀態根不正確,他們可以發布一個證明,證明該批次計算不正確。其他節點一起驗證該證明,并恢復該批次及其后續的所有批次。
Polygon:預計未來MATIC將用于Polygon zkEVM中的質押和治理:金色財經報道,Polygon在其官方文檔更新Polygon zkEVM主網相關事項。文中指出Polygon zkEVM主網將不會發行單獨的Token,ETH將用于支付網絡gas費,預計未來MATIC將用于Polygon zkEVM中的質押和治理。此外,由于Polygon zkEVM通過ERC-4337支持帳戶抽象,這將允許用戶使用任何Token支付費用。[2023/3/30 13:35:00]
圖6總結了OptimisticRollup和ZKRollup的優劣勢對比。在這里需要注意的是,ZKRollup在TPS方面表現出色,并且在退款周期方面具有顯著優勢。然而,它的劣勢在于EVM兼容性和L2層的計算消耗:
1)OptimisticRollup項目,如Optimism和Arbitrum,分別使用OVM和AVM,它們的虛擬環境與EVM基本相同,因此可以直接將L1層的合約遷移到L2上進行部署。然而,在ZKRollup中,將ZK-SNARK用于證明通用的EVM執行是相當困難的,因為EVM并不是按照ZK證明計算的數學需求來開發的,所以需要改造某一類的EVM客戶端,以利用ZK技術來驗證交易和合約運行。
2)同時,即使經過相應的轉化,ZK運算仍然需要大量的算力投入,因此在L2層的效率上ZKRollup不及OptimisticRollup。
3)ZKRollup提供了比OptimisticRollup更好的數據壓縮功能,因此能夠在L1上提交更小的數據。
4)由于ZK中的證明驗證過程更快捷,且具有更高的批處理密度,在L1層的計算消耗上ZKRollup較低。可以理解為L2上的節點付出大大減輕了對L1節點的要求,從而顯著提升了L1層的可擴展性。
圖6兩種rollup方式的比較|圖源:https://tokeninsight.medium.com/zksync-vs-starkware-whats-the-difference-between-the-top-two-zk-rollup-66d1a7d08ef3
ZKRollup還是zkEVMRollup?
雖然ZKRollup看起來很有吸引力,但在實際部署中存在諸多困難。目前,ZKRollup仍然具有相當大的局限性,而OptimisticRollup仍然是主流方案。大多數已實現的ZKRollup也都是為某些特定應用程序定制的。
如何理解定制化的ZKRollup?開發者為不同DApp構建專用電路,如Loopring、StarkExrollup和zkSync1.0,它們支持特定類型的支付、Token交換或者是NFT鑄造,然而,它們的電路設計需要高度的技術知識,這導致了開發者體驗的不佳。以特定類型的支付數據為例子,節點將交易數據提交給定序器,由定序器打包成batch交給提驗證的節點作為公開的輸入,證明過程和虛擬機上的合約執行過程無關,ZK只是負責將某個特定的執行結果的rollup計算、壓縮過程進行進行證明。
而zkEVMRollup又代表了將虛擬機運行結果Rollup的能力。當在L2層運行通用的智能合約,需要證明合約運行前后狀態轉換的有效性時,便需要有一個虛擬環境能夠支撐ZK算法的運行。因此,運行合約,輸出最終狀態,證明合約執行過程的有效性,并將交易記錄,賬戶記錄,狀態變化記錄數據一同rollup提交,這便是zkEVM的意義。而L1層只需要快速驗證證明,開銷較小,無需再次運行合約,圖7生動的說明了zkVM的作用。需要注意的是,zkEVM其實是運行在L2層的類EVM虛擬機器,因此更為精確的說法是ZeroKnowledgeVirtualMachine,zkVM,只不過大家強調其兼容以太坊而稱之為zkEVM。
圖7一圖說明zkVM|圖源https://mp.weixin.qq.com/s/i9O0vpHnkHFwVBPjNeqMUQ
ConsenSys zkEVM上線測試網并更名為Linea:金色財經報道,ConsenSys宣布將Layer 2解決方案ConsenSys zkEVM更名為Linea,目前向所有開發人員、用戶或協議開放測試。Linea使開發人員能夠不受限制地構建可擴展的DApp。
另外,通過MetaMask和Truffle等原生集成,Linea將零知識證明與EVM等效性相結合,為開發人員提供靈活性和可擴展性,而無需ZK技術專業知識。[2023/3/28 13:30:56]
現有項目也在考慮逐漸放棄了為特定應用程序做優化,而升級轉向支持運行通用合約即zkEVMRollup。因此,zkEVMRollup雖然作為ZKRollup的下位概念,在大部分情況下,提起ZKRollup時便指zkEVMrollup。
理解zkEVM
我們為了理解zkEVM,便必須對EVM的概念有一個初步的理解,從而才能明白當前zkEVM的局限性。
從EVM到zkEVM
還記得Ethereum社區經典的表述,EVM由數千臺運行以太坊客戶端,相互連接的計算機共同維護。以太坊協議本身的存在僅僅是為了保持這個獨一無二的狀態機的連續地、不間斷地和不可變地運行。EVM規定著如何在區塊不斷更迭的過程中去定義那個「標準」的狀態。EVM的行為更像一個數學函數:給定一個舊的有效狀態和一組新的有效交易T,以太坊狀態轉換函數產生一個新的有效狀態。在這個圖靈完備的狀態記上可以運行任何代碼。
EVM按照一定的規則執行交易。首先,EVM將人類可讀的編程語言編譯為面向機器的16進制的「低級」語言,稱為EVM字節碼,最終按照操作碼解析為順序指令列表。
所以zkEVM是一個至少在編程語言層面兼容EVM的zkVM。EVM的設計存在一定的局限性,與本份研報相關的是,EVM無法與ZK相應的協議兼容,需要對原有EVM進行一定的改造,這種改造是頗具有挑戰性的:
1.EVM對橢圓曲線的支持有限。
2.EVM基于256位整數運行,零知識證明則「天然」基于素域運行。
3.第三,EVM不同于傳統虛擬機,有許多特殊的操作碼。
4.第四,EVM是基于堆棧的虛擬機而不是更高級別的零知識證明友好型IR。
zkEVM兼容性:三種類型
在Vitalik的文章中對于改造程度和EVM兼容程度做了四個層面的劃分,本文對其做更為明晰的理解。
類型一,高級語言編譯等效:最低層級的「兼容」便是將流行的高級語言編譯為ZK-SNARK友好型語言。此時底層環境和虛擬機特性是完全不同于EVM的zkVM,最為直接的體現是在字節碼層面和EVM不兼容,開發者無法直接復制、修改EVMbytecode,且可能VM內部脫離以太坊的技術支持,缺乏一定的ERC標準,無法與EVM保持同步的安全性。
類型二,EVM等效:zkEVM和EVM在字節碼層兼容但在共識層不兼容,其將大部分EVMopcode轉化為電路。這個類型涵蓋現階段項目范圍最廣,在Vitalik的Blog中細分為三種類型,主要在gasfee,部分操作碼兼容性,哈希函數類型,少量的區塊、交易樹、狀態樹結構,證明時間等方面有一定的差異性。這些不同方面的不兼容會導致較高的證明/驗證開銷、較低的效率,或是對開發者合約部署、運行的有限的影響,但是和類型一類型三之間有本質性的區別。由于現階段處于zkEVM項目爆發期,項目迭代快,同時很難具體評估技術細節不同而導致的等效層級不同,因此筆者認為只需要關注項目和項目之間的技術大致差異性,而無需強求類型的限定。
類型三,Ethereum等效:zkEVM和EVM在共識層兼容,此時zkEVM在一定程度上可以完全融入L1,作為等效的p2p節點進行協議通信,zkVM和EVM可以等效。此時zkEVM在L1層便可以進行多個交易的證明,以加快其他節點區塊的驗證,這意味著L1層自身的擴容,無需圍繞zkEVM構建L2。該類EVM效率極低,仍處于「研究」領域,且大規模的部署可視作以太坊的升級。類似的存在另一種極端情況,公鏈運行zkVM,L1證明本身數據而拋棄Ethereum原有架構,以此減少生成證明時間。
以太坊Layer2網絡zkEVM已接入UniswapV2端口:10月13日消息,以太坊Layer2網絡zkEVM發文宣布已完成帶有額外的Layer2特定功能的Web3API的開發,并已在UniswapV2上展示了智能合約和前端端口。據官方介紹,這是首個EVM全兼容的zkRollup。用戶現在通過uni.zksync.io頁面鏈接錢包,領取部分測試token。UniSync是由MatterLabs推出的UniswapV2的一個端口的代碼和前端,并不是隸屬于UniswapLabs。[2021/10/13 20:24:35]
在筆者看來,所謂兼容性,是在有限的ZK協議證明能力,網絡協議設計難度,網絡算力下,運行效率、投入計算量和開發適配性的一個取舍。
運行效率針對鏈上用戶而言,最為直觀體現是交易速度,有關L1上驗證者效率,L2上證明者效率,zkEVM硬件加速程度等;
投入計算量體現L1、L2層網絡的gasfee;
在而開發適配性則從合約開發者角度,考慮合約兼容程度和基礎設施通用性等,和特殊操作碼,部分ERC協議是否適配等有關。
類型一的zkVM完全實現一個ZK友好型VM,在性能方面具有優勢,但DApp開發者有相當高的遷移成本,同時無法同步以太坊的最新特性和安全性。而在類型二中,往往證明者證明速度、計算量和基礎設施通用程度呈負相關。
當前ZK賽道梳理
圍繞著上文提到的zkEVM不同等效程度的優劣勢,ZK細分賽道也逐漸火熱,主要有以下幾個方面:
1.ZK以太坊兼容/電路編譯:解決的是最為核心的EVM兼容性問題,也是賽場的主角,各類其他生態圍繞其展開。
2.ZK公鏈,如MantaNetwork等,拋棄Ethereum,建立新的zkVM,重視L1層擴容問題的同時關注數據隱私問題。
3.ZK跨鏈橋/預言機:ZK賽道的基礎設施,在多條zkEVMRollup的L2之間進行資產遷移或是獲取鏈下數據。
4.ZK硬件加速:ZK賽道的基礎設施,解決生存證明計算量大問題。目前ZK硬件加速主要來自GPU,預計需要到2023年年底之后,才能夠出現支持zkEVM證明的專用硬件,以及相對成熟可用的產品。
5.ZK工具類:根據兼容程度提供不同的開發工具。
6.ZK應用:與本文關聯較小,更多的聚焦在ZK隱私性的優勢上。
zkEVMRollup項目概覽
2023年上半年各類zkEVM項目噴井式而出,筆者在關注這些項目的時候主要關注以下方面:
1.當前項目進展:包括當前項目階段,以及測試網、主網預計上線時間,是否和發展路線圖有一致性。
2.項目實際交互情況:通過與測試網的交互等,主觀感受網絡TPS,單筆交易確認時間等,對網絡性能有直觀感受。
3.zkEVM兼容性:這是最為核心的技術點也是最難評判的,即便部分項目開源,在VM層面的技術最為硬核,且涉及到較多的ZK協議。具體的,需要關注ZK協議、VM安全性、兼容程度等。
4.zkEVMRollup架構:相對于zkEVM,一般項目都會在白皮書等技術文檔中公開其Rollup架構,且總體差異性較少,但是要關注其整體去中心化程度。
5.生態運營:項目用戶數量、活躍程度、鏈上應用生態的運營和孵化情況以及開發者社區的維護等軟性反應項目運營的情況的指標。
6.投融資情況。
本文更多的從前四點角度來對項目進行考量,更多地從技術層面關注zkEVMRollup的整體架構。
Scroll
Scroll團隊創立于2021年,致力于開發EVM等效的ZKRollup用于擴展以太坊,近兩年來,Scroll一直致力于與PrivacyandScalingExplorations團隊以及其他開源貢獻者一起公開構建與字節碼兼容的zkEVM。2月底Scroll宣布其Alpha測試網現已在Goerli上線,任何用戶無需許可都能夠參與技術測試,測試網平均出塊時間為3秒,現已經有2千多萬筆交易,150多萬的區塊和400萬余的交互地址。同時Scroll也于4月11日開放了網站生態系統界面。
從近期信息披露來看,Scroll在類型二EVM等效的道路上不斷向前。近期,Scroll已經完成了所有EVM操作碼的兼容開發工作,正在進行審計工作,同時下個目標是兼容EIP2718交易。
技術架構上,Scroll的架構較為傳統,因此在這里詳細介紹。如圖8,主要分為兩個部分:核心部分是zkEVM,用于證明EVM在L2執行的正確性;但是要將zkEVM變成以太坊上完整的ZKRollup,還需要圍繞zkEVM構建一個完整的L2架構。具體的,現有的ScrollAlphatestnet由ScrollNode、BridgeContract和RollupContract組成:
圖8Scrollrollup整體架構|來源https://scroll.io/blog/architecture
1.ScrollNode:由Sequencer、Relayer和Coordinator組成。
a)Sequencer,也就是所謂的定序器,向用戶和應用開放JSON-RPC,讀取交易池中的交易并生成L2的區塊和狀態根。現階段Scroll的Sequencer節點是中心化的,在之后的升級中會逐漸去中心化。
b)Coordinator負責在Roller和ScrollNode之間進行通訊,當有新的區塊在Sequencer中生成的時候,隨機選擇池中的Roller進行證明生成。
c)Relayer監測Ethereum和Scroll鏈上的BridgeContract和RollupContract。RollupContract保證L2數據在L1層面的數據可用性,確保在L1層可以恢復L2區塊,一旦L2層提交的區塊經過L1層上RollupContract的有效性驗證,那么該區塊在L2才達成終局性的不可更改的狀態。BridgeContract在跨鏈時負責在雙鏈合約之間通信,雙向發送任意消息或是完成跨鏈時資產質押和提取操作。
圖92.RollerNetwork|來源https://scroll.io/blog/architecture
1.RollerNetwork:Roller內置zkEVM,在網絡中充當證明者,負責為ZKRollup生成有效性證明,見圖9。
a)Roller首先將從Coordinator接收到的executiontrace轉換為電路的witnesses。
b)它為每個zkEVM電路生成證明,最后聚合這些來自多個ZK電路的證明。
StarkWare
StarkWare提供了一種基于STARK的擴展解決方案,以確保L2的安全性、快速性和無縫用戶體驗。他們支持多種數據可用性模式。StarkNet是他們的L2網絡,而StarkEx則是面向企業用戶的Rollup驗證服務,DApp可以構建在StarkEx服務之上。然而,目前只能針對特定的DApp進行定制化的電路編寫,而不是通用的zkEVMRollup。StarkEx支持一系列即插即用的服務,包括NFT鑄造和交易、衍生品交易等。在生態方面,去中心化期貨合約交易平臺DYDX是StarkWare的忠實用戶。
StarkNet,嚴格來講是zkVM,它沒有針對以太坊操作碼做ZK電路,而是自己做了一套更加ZK友好的匯編語言、AIR以及高級語言Cairo。盡管StarkNet本身不兼容EVM,但仍然可以通過包括Kakarot等其他方式兼容以太坊。根據個人理解,StarkNet相對來說還是一個中心化的項目,其中一點是其無法隨著以太坊的安全性升級而同步,因此需要集中研發人員補足安全性上的短板,并跟隨ETH開發適配新的協議。
StarkNet使用的STARK作為其證明系統,相對于SNARK,STARK具有更多創新。它不需要和SNARK那樣依賴「可信設置」。并且,它還帶有更簡單的密碼學假設,避免了對橢圓曲線、配對和指數知識假設的需要,純粹依賴哈希和信息論,因此更能抵御量子攻擊。總體而言,STARK比SNARK更安全。在拓展能力方面,STARK邊際效應顯著,證明越大,總成本越低。
然而,在架構方面,目前系統中只有一個Sequencer,由StarkWare控制,并且只有一個Prover,它不僅為StarkNet生成證明,還為運行在他們自己的StarkExrollup上的所有其他應用程序生成證明。
ZKRollup的變體:Validiums和Volitions
Validium也是一種L2級別擴展解決方案,它使用諸如ZKRollup之類的計算證明來強制執行交易過程的完整性。和ZKRollup不同的是,Validium不會將交易數據存儲在以太坊主網上。犧牲鏈上數據可用性是一種權衡取舍,它可以帶來可擴展性的巨大改進,最直接的點便是Validiums每秒可以處理約9000筆交易。
但是在筆者眼中Validium不能算嚴格的ZKRollup。這個方案和Plasma類似,都沒有做到L1層的數據可用性,因此都不能算作Rollup。和Plasma的區別在于Plasma在L2層中設置了類似于OPRollup的「七天退出機制」,而Validium利用了和ZK手段來縮短L2層對數據的驗證時間且不把數據同步到L1中。
Volition由StarkWare率先推出,可讓用戶輕松地在ZKRollup和Validium之間切換。例如一些應用程序,比如去中心化衍生品交易所可能更適合Validium,同時仍希望與ZKRollup上的應用程序可互操作,那么Volition便提供了這種可切換性。
zkSync
與StarkNet類似,zkSync一直堅持選擇高級語言等效的zkVM,并且備受矚目,擁有相當高的熱度和鎖倉量。zkSync1.0于2020年6月15日在以太坊主網上啟動,實現了約300TPS的交易吞吐量,但不兼容EVM。而zkSync2.0于2023年3月24日啟動。
zkSyncEra的目標是通過使用他們自定義的VM進行優化,而不是追求EVM等效性,從而更快地生成證明。它通過強大的LLVM編譯器支持Solidity、Vyper、Yul和Zinc,以此來實現大部分智能合約功能。由于采用了自研VM,zkSyncEra支持原生賬號抽象,使得任何賬戶都可以用任何Token支付費用。
此外,通過zkPorter協議的應用,結合了ZKRollups和分片技術,網絡吞吐量得到了指數級增長,達到20,000+TPS。
總體而言,zkSync是一個生態豐富的L2項目,備受開發者和投資者關注。盡管近期出現了一些zkSync上徹底失敗的項目案例,但仍然存在一個問題,即開發者是否能在高級語言等效的zkVM上獲得良好的開發和遷移體驗。目前缺乏開發者層面的確切使用報告,如果開發者有良好的體驗,那么其他類型的努力貼近EVM的zkVM又有何意義呢?我們還需要更多時間來觀察。
PolygonzkEVM
Polygon于3月27日啟動zkEVMRollup主網絡的Beta版,也是以太坊等效的虛擬機,并開源所有zkEVM代碼。相較于zkSync,polygonzkEVM的鎖倉量就小很多,但是在生態中也有很多比較有趣且有活力的項目。
在Rollup設計方面,Polygon與Scroll不同之處在于使用了效率證明模型來激勵排序器和聚合器,以解決去中心化和無許可驗證器的一些挑戰。在無需許可的排序器–聚合器兩步模型中,任何排序器都可以提出打包批次的申請,以獲得打包費用,但需要支付L1層的Gas費用并存入一定數量的Token;同時,聚合器需要設定自己的目標,以最大化保證每次證明生成的利潤。此外,Polygon與Volition模式還具有深度兼容的數據可用性模型,來為用戶提供不同層次的服務。
另外,Polygon在ZK協議方面也投入了相當的工作量,效果也是顯著的,在文檔中他們總結自己的技術優勢,主要包括以下幾點:
1)更加兼容:Polygon始終堅持采用EVM等效的zkVM,以降低開發者遷移dApp的成本。同時,盡管PolygonMiden采用了ZK-STARK協議,但仍支持運行Solidity合約。
2)更容易的驗證:ZKRollup經常受到批評的原因是生成有效性證明需要昂貴的專用硬件,廠商運行這些硬件并將成本轉嫁給用戶。PolygonZKRollup旨在簡化證明方案,使得更低級的設備可以參與其中,例如,在消費級PC上進行的Plonky2證明生成測試。
3)更快的證明生成和驗證過程:PolygonZero可以在170毫秒內生成一個45kb的證明。
理論技術和現實項目之鴻溝
本份研報主要進行了ZK技術的科普,Rollup機制的介紹,重點強調了數據可用性的重要性,并在ZK還是zkEVMRollup的問題上做了一定的界別。此外,在區分zkVM和zkEVM的基礎上,同時還詳細梳理了zkEVM三種類型的區別以及圍繞著不同類型以及相關的ZK賽道。最后,結合幾名優勢項目,對各自的技術框架、現有生態等進行了回顧。
然而,在具體項目方面,選擇高級語言等效的項目反而占據市場主流地位,部分StarkWare這類中心化較為嚴重的產品也能博得市場的青睞。即便在理論研究中談到的第一類VM有很強的局限性,但是在有限的市場客戶下,「通用性」似乎是一種累贅,我們無法分辨出「高效拓展」突破了哪些問題并實現了超越理論的效果。當然實際上很多人也不關注技術特征,因此這顯得不太Web3,又很Web3。
Rollup技術的目的是進一步挖掘區塊鏈的價值,但往往因為迫切成為市場上的「創新性概念」,而產生「開倒車」的現象,回歸到中心化。這是當前市場存在的問題。
區塊鏈的價值很容易被看到,誰不希望擁有一個永恒的計算機?但核心問題是,當這臺計算機的運行能力遠遠低于我們身邊任何一臺服務器,并需要大量資源投入時,即使使用價值遠低于我們的投入成本,作為一個「公共產品」,它還能吸引每個人加入使用嗎?
當我們已經擁有了相當多國家、社會甚至個人的產品時,在什么情況下,我們愿意忽視高昂的使用成本,追求「永遠在線,永遠正確」的結果呢?我認為這是當今區塊鏈行業需要思考的問題。Rollup技術在技術上可以改善這個問題,但還有一大部分問題需要留給浮躁的市場去解決。
1.Centrifuge官網:https://centrifuge.io電報:https://t.me/centrifuge_chat推特:https://twitter.
1900/1/1 0:00:00加密貨幣是一種數字貨幣,使用加密技術保護其安全性和匿名性。它們不受任何政府或金融機構的控制,而是依賴于去中心化的區塊鏈技術進行交易記錄和管理.
1900/1/1 0:00:00核財經app編譯人們正在見證數字貨幣、人工智能(AI)和區塊鏈技術在全球范圍內的應用推進。這些新技術需要非常高的電能消耗,目前電能是用對環境有不利影響的煤和石油燃料生產的.
1900/1/1 0:00:00如果以過去的沖動走勢為參考,比特幣大約還有四個月的時間才能突破69,000美元的峰值。 在6月22日的Twitter更新中,CredibleCrypto認為,未來四個月應該會帶來BTC價格上漲勢.
1900/1/1 0:00:00創世區塊的內容 創世區塊是比特幣區塊鏈的第一個區塊,也是比特幣系統的一部分。它是比特幣系統的一個起點,由比特幣系統的發起者SatoshiNakamoto在2009年1月3日創建的.
1900/1/1 0:00:00DOGE是一種基于區塊鏈技術的加密貨幣,它最初是作為一種幽默和社交媒體趣味而創建的,但后來逐漸在加密貨幣市場上獲得了關注.
1900/1/1 0:00:00