Topics 深度技術解析

什麼是以太坊虛擬機 (EVM)? 新手指南

高級
深度技術解析
2022年7月17日

以太坊虛擬機 (EVM) 通常被稱為“以太坊的核心”,這正是它所代錶的。正如心髒為全身輸送氧氣和營養物質的血液泵血一樣,EVM 使開發者能夠使用 Solidity 編程語言創建智能閤約和 DApp。如今,DApp 的大部分創建都由其負責,這正是其與比特幣和其他分布式賬本的區彆所在。在本文中,我們將首先深入探討以太坊虛擬機,並分解它們是什麼,它們如何運作以及它們在 DApp 開發和 Web 3.0 發展中的作用。

什麼是 EVM?

以太坊虛擬機是一種軟件平台,即“虛擬計算機”,開發者使用它來創建去中心化應用程序 (DApp),以及在以太坊系統上執行和部署智能閤約。

無論您是對 DApp 感興趣的程序員,還是想要詳細瞭解 EVM 加密貨幣領域不斷發展的投資者,您都可能聽說過以太坊虛擬 machines.To 最能理解什麼是 EVM,首先瞭解一下 EVM 的曆史。

根據以太坊創始人 Vitalik Buterin 的說法,BitTorrent 是首個 DApp。Bram Cohen 於 2001 年發明瞭文件共享協議,盡管 BitTorrent 在銷毀該協議方麵做齣瞭幾項努力,但 BitTorrent 仍然非常活躍。

要真正停止 BitTorrent,全球每個傢庭的每颱計算機都必須關閉。這是一種不受物理約束的虛擬機。以太坊虛擬機也是如此。EVM 無需使用超級硬件,是初學者的理想平台。然而,在嘗試深入瞭解兼容 EVM 的代碼和以太坊虛擬機時,瞭解字節、堆棧和區塊鏈概念,如哈希函數和工作量證明,這很有幫助。

以太坊虛擬機的目的是確定以太坊區塊鏈中每個區塊的狀態。雖然 EVM 與其他基於區塊鏈的網絡類似,因為它們使用分布式賬本來維護交易數據庫,但由於其智能閤約功能,它們又增加瞭一層功能。許多人將此第二層稱為“分布式狀態機”。

EVM 的作用是什麼?

以太坊虛擬機是一個龐大的數據庫,用於持有以太坊的所有賬戶和餘額。同時,它也是一種機器狀態,能夠執行機器代碼,並隨著每個新區塊添加到區塊鏈分類賬中而改變。決定 EVM 將如何隨每個新區塊變化的具體規則實際上由 EVM 本身定義。

更簡單地說,以太坊虛擬機是一種處理引擎和軟件平台,功能類似於去中心化計算機。從 DeFi 和 EVM 加密貨幣應用程序到 OpenSea 等遊戲和市場,開發者使用以太坊虛擬機創建基於以太坊及其兼容 EVM 的編程語言 Solidity 的 DApp。

最重要的是,以太坊虛擬機是以太坊網絡的一部分,負責智能閤約的執行和部署。以太坊區塊鏈上的智能閤約和數百萬 DApp 將在此上綫,為用戶注入活力。

以太坊區塊鏈是不同節點的 P2P 結構。一個節點連接到下一個節點,使每個節點負責整個生態系統的安全性和穩定性。為瞭在整個以太坊區塊鏈中達成共識,每個節點都使用 EVM。

EVM 及其與 CPU 的相似之處

為瞭進一步闡明 EVM 的概念,不妨考慮一下計算機程序的運作方式,重新學習基礎知識。所有軟件均使用 Java 或 C++ 等編程語言編寫。但是,由於 CPU 無法讀取 Java 或 C++,因此代碼將被編譯並轉換為字節碼

以太坊不是 CPU,而是一個分布式全球網絡,擁有 100 個同時運行 EVM 的 CPU。但是,EVM 可作為虛擬 CPU 或虛擬“機器”運行在 Go 以太坊或“Geth”程序中。

與其他軟件程序類似,開發者創建 DApp 並使用編程語言編寫智能閤約。以太坊的語言稱為 Solidity,而不是 Java 或 C++。實心碼被編譯為字節碼,並分配給網絡中運行 Geth 的每颱計算機(節點)。

部署智能閤約時,每個節點都會收到一份副本,運行其字節碼,並將該代碼提供給任何需要部署的用戶,導致“狀態變化”。這意味著區塊鏈的當前狀態已經改變,隻有在每個節點達成共識後纔能完成。

因此,EVM 通常被稱為“分布式狀態機”。當區塊鏈隨著每筆交易的變化而變化時,它會跟蹤區塊鏈的狀態。

EVM 如何運作?

如果您曾從 BitTorrent 下載過歌麯、電影或軟件,那麼您就知道去中心化網絡可以做什麼。即使是世界上最強大的機構也無法將其移除,因為這樣做需要關閉與網絡綁定的每颱計算機。

去中心化網絡擴展的最佳方式之一就是使用虛擬機。作為機器與所執行的代碼之間的一層,虛擬機可以在世界各地的各種硬件和操作系統上運行。

像 EVM 這樣的虛擬機的功能與具有 CPU、內存和存儲的物理機器類似,但它們隻能作為代碼運行。理論上,任何人都可以運行虛擬機,使其具有去中心化網絡所需的靈活性和可移植性。

以太坊虛擬機使用去中心化節點網絡執行智能閤約。這是一個動態的沙盒虛擬堆棧,嵌入每個以太坊節點內,用於執行兼容 EVM 的智能閤約字節碼。

智能閤約、節點和 P2P

瞭解什麼是 EVM,以及在 DeFi 藉貸等情況下為加密貨幣做些什麼時,請記住智能閤約是用 Solidity 和其他更高級彆的語言編寫的,然後將其翻譯為字節碼並編譯為 EVM。這意味著機器代碼與主計算機的文件系統、流程和網絡隔離。

以太坊網絡中的每個節點必須同意下一個節點,纔能執行相同的指令。這使得以太坊虛擬機 Turing 完成 ,這意味著它可以為計算功能執行邏輯步驟。

對於 EVM 實施的每條指令,都會為其分配成本,以便系統跟蹤執行成本。EVM 加密貨幣交易和執行其他指令的成本以與 EVM 兼容的天然氣單位計算。

透過啓用基於已執行指令而非比特幣等已執行金融交易的手續費的經濟,Turing 全麵性得以實現。這意味著以太坊虛擬機是一款全球互聯的點對點計算機,能夠創建智能閤約、P2P 眾籌活動、文件共享經濟等。

與 20 世紀 90 年代初的互聯網不同,未來即將到來。

操作碼

目前,EVM 可以執行大約 150 個不同的操作碼。那麼,什麼是操作碼? 為什麼它們在理解 EVM 方麵很重要?

以太坊虛擬機之所以被稱為 Turing Complete,主要是因為其能夠執行稱為 opcode 的機器級指令。

兼容 EVM 的操作碼可幫助 EVM 完成與 EVM 加密貨幣交易或智能閤約相關的特定任務。然而,操作碼可用於多種操作,從算術和數據記錄到內存和區塊信息的檢索。

也就是說,操作碼不會直接寫入 EVM。由於能夠讓開發者輕鬆創建智能閤約並與之交互,EVM 以 Solidity 編程語言編寫。但是,這種母語必須轉換為操作碼,以便 EVM 解釋。

每個操作碼分配一個字節。這意味著最多可使用 256 個操作碼。

智能閤約

在嘗試瞭解什麼是 EVM 時,必須對智能閤約及其在 EVM 加密貨幣、DeFi 和其他區塊鏈功能中的作用有基本瞭解。

有時,智能閤約被稱為“EVM 應用程序”,是指與 EVM 兼容的代碼行,供各方在不使用第三方的情況下進行交易,或由中央當局進行乾預。

每個智能閤約中都有一個明確的操作列錶,當滿足某些鏈上或鏈下條件時,將執行這些操作。從資金劃轉至特定地址,到創建新智能閤約和現有閤約之間的通信,這些操作範圍不一而足。任何人都可以將資金發送到智能閤約地址來提示這些操作,而無需第三方。

以太坊采用比特幣概念,透過允許開發者在其區塊鏈之上構建智能閤約來增強比特幣概念。下一步是創造一個智能閤約可以生活並相互交互的環境。這就是以太坊虛擬機發揮作用的地方。

EVM 不僅整閤瞭連接到以太坊網絡的一韆個 CPU 的資源。除瞭驗證交易外,它還將以 Solidity 編寫的智能閤約操作碼轉換為字節碼,以便閱讀指令並執行操作。最後一部分,您需要天然氣。

煤氣

Gas 是驅動以太坊虛擬機的燃料。無論您是轉移 EVM 加密貨幣還是投資 NFT,都需要為執行操作支付礦工費。Gas 是執行智能閤約所需的計算費。

每個操作碼都會分配一個礦工成本。操作碼越復雜,礦工費越高。目前,每筆交易的起步成本為 21,000 天然氣。

為確保交易信息有效,且 EVM 沒有異常或錯誤,系統會收取礦工費,以補償負責檢查的驗證者。

更重要的是,礦工費有助於防止 DDoS 攻擊,確保網絡安全。由於大規模部署復雜閤約需要耗時且昂貴的計算,因此我們不鼓勵攻擊者進行任何惡意嘗試。攻擊成本太高,無法運行。

什麼是兼容 EVM 的區塊鏈?

事實證明,區塊鏈之間的互操作性是一個重大問題。隨著以太坊的高礦工費和交易緩慢等問題持續存在,開發者開始基於其他無需許可的區塊鏈創建 DApp 和智能閤約,以提供更快的交易速度和更低的礦工費。不幸的是,其中許多區塊鏈受到嚴重限製,缺乏與其他區塊鏈的互操作性。

事實證明,兼容 EVM 的區塊鏈是解決這一問題的簡單方法。開發人員無需從頭開始,透過使用跨鏈橋創建類似於 EVM 的環境,而是可以復製以太坊網絡的某些部分,並創建 DApp,使用戶能夠在任何 EVM 網絡之間快速輕鬆地轉移資産。

透過這種互操作性,當今許多最常用的區塊鏈都遵循這種兼容 EVM 的模型。示例包括 EVM 加密貨幣領域的一些知名企業,例如:

幣安智能鏈

雪崩

Fantom

Cardano

多邊形

Tron

無論您齣於何種原因想要瞭解 EVM,請務必瞭解所有這些側鏈均兼容 EVM。  它們提供瞭以太坊區塊鏈的所有優勢和覆蓋麵,但速度更快,容量更高,交易成本更低。

最終,在討論兼容 EVM 的區塊鏈時,所有這一切都歸結為優化,創造最佳的去中心化用戶體驗。也就是說,還有其他好處。

以太坊生態系統互操作性

EVM 的最大優勢之一是其在以太坊生態系統內的互操作性。以太坊是全球使用最廣泛的區塊鏈。得益於以太坊虛擬機,基於以太坊區塊鏈的 DApp 能夠相互通信和交互,實現更快、更無縫的用戶體驗。

透過使用區塊鏈橋梁,可以實現區塊鏈之間的互操作性。用戶可在 EVM 網絡中將資産從一個 DApp 免費發送至下一個 DApp。

易於移植 Dapp

以太坊虛擬機可輕鬆將 DApp 遷移和擴展到新鏈,而無需重寫任何代碼。使用其他類型的虛擬機,如 Move-VM 或 Wasm,需要更多資源,使 DApp 移植變得更加睏難。

以太坊開發者入場門檻低

EVM 還為以太坊開發者提供瞭低門檻入場體驗。無需擔心 EVM 的性質,也無需擔心其代碼是否兼容 EVM。此外,開發者還可以使用 Waffle 和 MetaMask 等熟悉的以太坊工具,無需學習其他編程語言。

EVM 用例

現在,我們已經瞭解瞭什麼是 EVM 及其運作方式,下麵我們來瞭解一下 EVM 加密貨幣和其他基於以太坊的項目如何融閤在一起。

ERC-20 代幣

多個 DApp 和以太坊項目透過 ERC-20 代幣激勵用戶,ERC-20 代幣經過專門設計,可在地址之間輕鬆傳輸,在整個網絡中保持相同的價值。

ERC-20 代幣由智能閤約按照定義的數據結構創建。該數據結構負責代幣的命名、分發和監控。

這些代幣不僅可用於 EVM 加密貨幣。Nexus Mutual 提供智能閤約保險,利用 NXM ERC-20 代幣為用戶提供索賠和購買保障。 另一個例子是 Livepeer。雖然這並不是討論 EVM 時最熱門的例子,但這個去中心化視頻流網絡采用 Livepeer ERC-20 代幣來激勵用戶為網絡提供資源。這些隻是處理 ERC-20 代幣的眾多 DApp 中的兩個。

AMM 和 DEX

去中心化交易所 (DEX) 透過智能閤約的部署實現 ERC-20 代幣的交換。這些智能閤約使用戶能夠輕鬆利用代幣流動性池,不受第三方乾擾,成為自動做市商 (AMM) 的稱號。SushiSwap Uniswap 和其他幾傢熱門交易所實際上是這種去中心化 AMM 模型的應用。

NFT 挖礦

另一個廣受歡迎的代幣是非真菌 ERC-721。使用這種代幣的智能閤約通常用於鑄造非真菌代幣 (NFT),NFT 是整個以太坊區塊鏈中具有獨特價值的代幣。

幾年前,一段代碼現在能夠實現藝術市場的虛擬訪問民主化。Gods UnchainedAxie Infinity 等遊戲項目也將這些代幣用於遊戲內物品和收藏品。

DeFi 藉貸

AdaSwap 是一家基於 Cardano 的去中心化交易所,擁有 AMM。最近,它宣布與Milkomeda閤作。使用 Layer 2 解決方案實現側鏈,Milkomeda 實現瞭 Cardano EVM 等非 EVM 區塊鏈兼容性。透過此側鏈,用戶可以在以太坊上劃轉資産並運行 Cardano DApp,反之亦然。

AdaSwap 和 Milkomeda 正在透過此次閤作將以太坊虛擬機整閤到 Cardano 生態系統中。Cardano 領導下還有其他幾個 DeFi 平台。

DAO

以太坊虛擬機由去中心化自治組織或 DAO 管理。DAO 是一個缺乏中心權限的社區實體。這為社區提供瞭對網絡的控制權。

DAO 不僅完全自主,而且透明。智能閤約概述瞭規則,並根據代碼編寫的指示執行決策,但可以隨時透過共識投票和提案。即使代碼本身也可以公開審計。

最終,DAO 完全由共同就項目做齣關鍵決策的個人成員管理。DAO 規則由核心社區成員製定,並透過智能閤約實施。由於這些協議是可見的、可驗證的,並且對公眾審計開放,因此 DAO 的每個成員都可以瞭解協議在每一步中的運作方式。

EVM 限製

在嘗試瞭解什麼是 EVM 時,必須同時考慮其利弊。盡管 EVM 技術具有諸多優勢,但也存在一定的局限性。首先,使用以太坊虛擬機需要一定程度的技術經驗。必須瞭解 Solidity、Java 和其他編程語言。

其次,EVM 因其高昂的礦工費而聲名遠播。無論 EVM 有多聰明,它都無法避免自身的受歡迎程度和隨之而來的數據擁堵,因此與其他鏈相比,交易費用更高。

最後,以太坊虛擬機並非完全去中心化。事實上,約 25% 的以太坊節點實際上都在 Amazon Web Services 上運行。如果 AWS 遭遇重大中斷或停止服務,EVM 及其所支持的 DApp 將受到顯著影響。

EVM 的未來

在以太坊區塊鏈和 EVM 方麵,我們一開始就處於領先地位。在不久的將來,以太坊虛擬機的速度、復雜性和能力隻會增加,就像 20 世紀 90 年代的 PC 演變為當今使用的處理強國一樣。

也就是說,EVM 並不完美。網絡吞吐量和交易速度方麵的挑戰仍然睏擾著系統。目前,這些問題是以太坊開發社區的重點,解決這些問題是以太坊持續使用和成功的路綫圖。

如果以太坊要兌現其對彼此互動和交易方式進行變革的承諾,那麼這將是 EVM 改進的結果。

結語

在本文中,我們介紹瞭以太坊虛擬機,探索瞭智能閤約的執行,並研究瞭 EVM 如何執行字節碼。我們還討論瞭 EVM 的會計機製 gGas,並討論瞭 gGas 如何促進交易並保護以太坊免受 DDoS 攻擊。最終,EVM 是智能閤約部署和執行的核心和靈魂。深入瞭解以太坊虛擬機對於希望開發 DApp 並深入探索未來去中心化世界的用戶來說至關重要。