如果關注區塊鏈發展趨勢的同學,應該經常看到EVM,就是 Ethereum Virtual Machine(以太坊虛擬機)。那麼什麼是EVM呢?簡單來說,它就是在以太坊(Ethereum)公鏈的主網框架下用來處理智能合約(Smart Contract)的部署和執行的計算引擎。在共識算法的規則約束下,EVM執行程式並在去中心化網路的任何一個節點(Node)上更新以太坊的狀態。
目前在區塊鏈的世界裡,EVM無疑是去中心化應用程式(DApp)部署和執行的首選。比如知名的DeFi協議Aave、Uniswap,元宇宙龍頭Sandbox,藍籌NFT無聊猿等,都是優先部署在EVM上。
主要原因是,第一、以太坊是第一個實際引入智能合約執行的區塊鏈網路。當初為了部署和執行智能合約,以太坊的團隊還開發了全新的編程語言“Solidify”。這種語言可以簡化EVM上智能合約的編寫,對DApp的程序開發人員來說是一種非常好用的工具。直到目前為止,雖然已經有多種為了編寫DApp而設計的語言,但Solidify的使用率仍然是最普遍、接受度最高的編程語言。
而為了吸引那些已經用 Solidity 開發好智能合約的項目,開發者會帶項目來,投資人、用戶也會來。一但用戶增加,鏈上活動隨之增加,對於原生代幣的需求便會提升,gas fee也隨之增加,那麼這條鏈就有業務收入了。
隨著以太坊的流行,越來越多協助DApp部署和執行的工具出現。比如大家比較熟悉的Truffle,OpenZeppelin,Infura等,這些開發工具出現之後,讓生成一款DApp變得更容易,也更快普及了以太坊(以及EVM)的市場滲透率。直到今日,即便出現了不少所謂的“Etherium Killer(以太坊殺手)”,這些新公鏈或許比以太坊更快、處理智能合約所需要的手續費更便宜,但仍然不足以撼動目前的市場狀態。即是,以太坊上的應用(DApp)以及用戶數量仍然位居第一。
以上是EVM成為區塊鏈上智能合約在運行時的實際標準(de-facto runtime)的主要原因。而以目前以太坊的用戶量以及部署的DApp數量來看,短期內這個標準也不會改變。因此對於多數新的區塊鏈網路來說,要想吸引用戶和編碼人才,以某種方式支持EVM就變得非常重要。
以目前市場上的解決方案來說,支持EVM的策略主要有兩種 - EVM兼容(EVM Compatible) 和 EVM等效(EVM Equivalent)。這裡不深入技術層面,以非常淺顯的方式帶大家了解它們的區別。未來大家在看文章時,就更有概念了!
EVM 兼容
如果新的鏈在處理智能合約這個層面(應用層),創造了一個類似EVM的執行環境,這個就被稱作具有EVM兼容性(EVM Compatibility)。而一旦成為EVM兼容,新鏈上的程序開發人員就可以更簡單快速的部署智能合約到這條鏈上。不需要為了這條新鏈再重寫一遍執行和部署智能合約的代碼。
我們熟知的幣安智能鏈(BSC,Binance Smart Chain)、以側鏈發家的Polygon的Layer2,雪崩Avalanche的合約鏈等,都是“EVM兼容”公鏈裡的佼佼者。它們在設計時就以與EVM兼容為目標,因此在發展初期能較容易的獲得鏈上流量和編碼人才,取得快速增長的成績。
EVM 等效
而“EVM等效性 (EVM Equivalence)”指的是區塊鏈必須完全符合以太坊黃皮書*的規範,是區塊鏈協議的正式定義。根據定義,Layer1以太坊必須符合黃皮書的規範,現有的以太坊的資料結構(就是堆疊Stack)可與Layer2系統集成。換言之,EVM的等效性將以太坊的屬性擴展到了Layer2網路,等效性模糊了以太坊Layer1和Layer2 Rollup之間的界線。
在以太坊擴容解決方案中,完美複製以太坊的Optimism Rollups就屬於EVM等效。它不僅共享以太坊的安全性,而且還可以共享以太坊的網路效益,比如流量、技術開發等。V神寫過一片關於EVM等效性的文章,其中探討了關於EVM等效性的不同類型以及優缺點介紹。對於這個主題有興趣的同學,可以到這裡看 https://vitalik.ca/general/2022/08/29/zkevm_zhTW.html
當然,除了EVM兼容和等效外,隨著區塊鏈的發展,也有越來愈多不依賴EVM來部署智能合約的區塊鏈,比如Solana。改天有空再來聊吧!
*比特幣白皮書問世的五年之後,以太坊的創造者 Vitalik Buterin(又稱V神)在2013年11月時發表了以太坊白皮書(Ethereum White Paper)。不過以太坊白皮書比較像是項目行銷的融資計畫。除了長度較為精簡,也沒有過多關於以太坊演算法和技術架構的解釋。但黃皮書不一樣。它更多探討技術層面,除了提及了以太坊被創立的背景,也嚴謹地解釋了以太坊的運作機制。