市場出現了「並行EVM」的新敘事,於layer2就非常有意思了,可實現一種「精細化」Rollup新範式,誇張點可達成Solana成為以太坊新layer2的魔改效果。在我看來,並行EVM只是Rollup高度「模組化」的顯學,是DA被第三方侵襲之後,VM執行層的再度淪陷,未來layer2會重新定義。 Why?接下來,以科普視角分析下:
理解這個主題,得先釐清「EVM」的單執行緒執行模型。
該模型規定了交易必須按順序一個接一個地被處理和確認,這直接影響了交易處理速度、出塊時間、以及交易吞吐量等,是以太坊主網Gas高且擁堵的主要原因。而且,之所以設計成單線程,有一定歷史限制存在。由於以太坊上的交易由分佈的獨立節點驗證和執行完成,且要確保所有地址的數據,例如餘額、智能合約程式碼等保持不同節點間的狀態一致,同時也得保證不會有同一資產雙重支付的可能性出現。
這就使得交易得依序排隊處理。如果出現並行交易,就可能導致節點之間的資料同步出錯,關鍵在於還會出現嚴重的雙花交易。通俗解釋:銀行只有一個服務窗口,客戶取款要按順序排隊,無論是存款取款以及貸款等業務,一個客戶完成業務後才能開始下一個,優點是,銀行的帳戶系統的每項操作都會精準記錄,但客戶排隊時間會比較長;
若銀行開放多個服務窗口,客戶可選擇窗口辦理不同業務,就會出現有兩個窗口同時嘗試從一個帳戶中扣款,若窗口間帳戶系統對帳不及時就會導致雙花,顯然這樣做明顯提升了效率,但複雜的記帳邏輯會對帳務系統帶來壓力。在layer1獨立鏈場景下,如果鏈底層支援並行處理問題就迎刃而解了,Solana由於計算和存儲狀態分離,因此其VM在收到用戶的多筆交易後,節點會對這些交易進行排序,然後調用獨立的儲存系統狀態資料偵測這些交易是否有狀態衝突,若無衝突就將交易打包到一個區塊中,若衝突則將衝突的交易排除到本次區塊外。
相較之下,以太坊的儲存狀態是即時計算出來的,每個交易必須等待前一筆交易完成才能更新狀態,故而就無法做到在等待打包前的交易篩選工作,限制了其並行處理的可能性。在layer2 Rollup鏈場景下,要實現並行處理,遠離也類似。你可以把Solana在等待POH時間戳的交易計算和儲存狀態偵測視為Rollup鏈在Sequener處理交易然後向主網Batch的過程。
現在layer2在Batch交易前Sequener會先按時間順序給交易排nonce,然後按順序Batch到主網,如何才能做到多執行緒呢?
1)可基於AA帳戶抽像模型,從帳戶狀態上實現了可以同時發起多筆交易,例如,若同時執行兩筆Transfer,AA智能合約會賦予其nonce,需要按順序執行,若一筆是Transfer,一筆是Approve則可以不受nonce限制更有彈性的平行處理。在AA帳戶模型中,每個帳戶可以自訂交易處理邏輯,進而配合nonce實現高並發。
2)可對Sequencer中的交易進行「精細化」的加工處理,例如當layer2的交易被提交到Sequencer中,Sequencer可以快速的檢測這些交易邏輯,並進行精細化排序和篩檢工作,例如若同一帳戶發動了兩筆Transfer,就要把後一筆排除在外,等待下一次Batch,若同一帳戶發起兩筆性質不同的操作,就可以同時Batch到一個區塊中。
聽起來很簡單?但事實情況絕非如此,僅以DeFi場景為例,Sequencer要實現交易的精細化管理,有兩大挑戰:
1)要即時解析交易數據,了解傳入數據的智能合約調用方法及參數,以DeFi常見的Staking為例,一次Staking操作,涉及代幣轉移、狀態更新、質押期限、以及潛在獎勵計算等。若同時有大量用戶傳入一些質押交易,若其中還參雜質押後再Transfer的交易,再加上複雜的Oralce價格因素等等,若Sequener無法解析處理到位,一步出現錯誤都可能導致嚴重事故。
2)Sequencer得確保去中心化,當前layer2 Sequener只是Batch交易的前提下,權利都已經過大了,若Sequencer去中心化問題解決不了,再來做“精細化”Rollup,等於又賦予Sequencer更多的權限。若Sequencer在中作惡塞假交易,明目張膽搞MEV夾子,甚至惡意操控Oracle清算等等都會滋生。
最近,Metis受追捧,表面上看來只是Sequencer實現了去中心化,深層看則是為未來Sequencer做精細化Rollup建構了基本的共識前提。當然,靠Sequencer做到高度精細化的Rollup交易匯聚和處理,目前還只是一種設想,好在,AA賬戶抽象,區塊鏈整體的模組化組合開放思想給這一設想落到實處提供了先決條件。
以上。
況且如前文所言,現在layer2整體日趨模組化,在OP Stack的框架上嵌入ZK技術來實現隱私擴展;把原先的以太坊DA轉化成Celestia這類第三方DA來降低成本;逐漸把ETH作為Gas費的傳統也改變掉了,給予layer2代幣更大的實用性賦能;甚至,layer2完全也可以Batch好交易後提交給不同的VM執行環境,交易分到Solana和以太坊上處理等等。
到時候,一個全新的範式出現了,現在的layer2不再單單是以太坊的layer2,Solana也可以做以太坊的layer2,甚至layer2的定義也會被魔改。
大膽設想,現在layer2變成了一個整合高並發交易處理能力的入口級“layer1”,而以太坊、Solana這些曾經的layer1變成一個做資產結算和安全性保障的新“layer2”。 layer2從來都不是一個死板的概念,layer2平台們要解決交易大規模並發處理,吸引增量用戶市場群體的使命一直存在。
若使命達成,在模組化思想下,不僅以太坊layer1的正統性會被打破,整個全鏈的DA數據可用性、VM執行層甚至interoperability通信交互都會成為layer2們實現Mass Adoption的infra。屆時,layer2不再只是layer1的補充,而成為一個功能強大的綜合型交易匯聚和分發處理平台,試問,誰是誰的layer2?