以太坊虛擬機 (EVM) 是什麼? 新手指南:
以太坊虛擬機 (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 Ethereum 或「Geth」程序中。
與其他軟件程序類似,開發者創建 DApp 並使用編程語言編寫智能合約。以太坊的語言稱爲 Solidity,而不是 Java 或 C++。實心碼被編譯爲字節碼,並分配給網絡中運行 Geth 的每臺計算機(節點)。
部署智能合約時,每個節點都會收到一份副本,運行其字節碼,並將該代碼提供給任何需要部署的用戶,從而導致「狀態變化」。這意味着區塊鏈的當前狀態已經改變,只有在每個節點達成共識後才能完成。
因此,EVM 通常被稱爲「分佈式狀態機」。當區塊鏈隨着每筆交易的變化而變化時,它會跟蹤區塊鏈的狀態。
EVM 如何運作?
如果您從 BitTorrent 下載過歌曲、電影或軟件,那麼您就知道去中心化網絡可以做什麼。即使是世界上最強大的機構也無法將其刪除,因爲這樣做需要關閉與網絡綁定的每臺計算機。
去中心化網絡擴展的最佳方式之一就是使用虛擬機。作爲機器與所執行的代碼之間的一層,虛擬機可以在世界各地的各種硬件和操作系統上運行。
EVM 等虛擬機的功能與具有 CPU、內存和存儲的物理機器類似,但它們僅作爲代碼運行。從理論上講,任何人都可以運行虛擬機,使其具有去中心化網絡所需的靈活性和可移植性。
以太坊虛擬機使用去中心化節點網絡來執行智能合約。這是一個動態的沙盒虛擬堆棧,嵌入每個以太坊節點內,用於執行兼容 EVM 的智能合約字節碼。
智能合約、節點和 P2P
瞭解 DeFi 借貸等加密貨幣的 EVM 及其用途時,請記住智能合約是用 Solidity 和其他更高級別的語言編寫的,然後將其翻譯爲字節碼並編譯爲 EVM。這意味着機器代碼與主計算機的文件系統、流程和網絡隔離開來。
以太坊網絡中的每個節點必須同意下一個節點,才能執行相同的指令。這使得以太坊虛擬機 Turing 得以完成,這意味着它可以爲計算功能執行邏輯步驟。
對於 EVM 實施的每條指令,都會爲其分配成本,以便系統跟蹤執行成本。EVM 加密貨幣交易和執行其他指令的成本以與 EVM 兼容的天然氣單位衡量。
透過啓用基於已執行指令而非比特幣等已執行金融交易費用的經濟,Turing 全面性得以實現。這意味着以太坊虛擬機是一款全球互聯的點對點計算機,能夠創建智能合約、P2P 衆籌活動、文件共享經濟等。
與 20 世紀 90 年代初的互聯網不同,未來也即將到來。
操作碼
目前,EVM 可以執行大約 150 個不同的操作碼。那麼,什麼是操作碼? 爲什麼它們對理解 EVM 至關重要?
以太坊虛擬機之所以被稱爲 Turing Complete,主要是因爲其能夠執行稱爲操作碼的機器級指令。
兼容 EVM 的操作碼可幫助 EVM 完成與 EVM 加密貨幣交易或智能合約相關的特定任務。然而,操作碼可用於多種操作,從算術和數據記錄到內存和區塊信息的檢索。
也就是說,操作碼不會直接寫入 EVM。由於能夠讓開發者輕鬆創建智能合約並與之交互,EVM 採用 Solidity 編程語言編寫。但是,這種母語必須轉換爲操作碼,以便 EVM 解釋。
每個操作碼分配一個字節。這意味着最多可使用 256 個操作碼。
智能合约
在嘗試瞭解什麼是 EVM 時,需要對智能合約及其在 EVM 加密貨幣、DeFi 和其他區塊鏈功能中的作用有基本瞭解。
有時,智能合約被稱爲「EVM 應用程序」,是雙方在不使用第三方或中央機構干擾的情況下相互交易的兼容 EVM 的代碼行。
每個智能合約中都有一個明確的操作列表,當滿足某些鏈上或鏈下條件時,將執行這些操作。從資金劃轉至特定地址,到創建新智能合約和現有合約之間的通信,這些操作範圍不一。任何人都可以將資金髮送到智能合約地址來提示這些操作,而無需第三方。
以太坊採用比特幣概念,透過允許開發者在其區塊鏈之上構建智能合約來增強比特幣概念。下一步是創造一個智能合約可以生活並相互交互的環境。這就是以太坊虛擬機發揮作用的地方。
EVM 不僅整合了連接到以太坊網絡的一千個 CPU 的資源。除了驗證交易外,它還將以 Solidity 編寫的智能合約操作碼轉換爲字節碼,以便閱讀指令並執行操作。最後一部分需要煤氣。
煤氣
每個操作碼都會分配一個礦工成本。操作碼越複雜,礦工費越高。目前,每筆交易的起步成本爲 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 Unchained 和 Axie Infinity 等遊戲項目也將這些代幣用於遊戲內物品和收藏品。
DeFi 借貸
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 並深入探索未來去中心化世界的用戶來說至關重要。