什麼是以太坊虛擬機? [EVM]


EVM 是一個圖靈完備的機器,它允許代碼以預期的方式執行。這是每個智能合約的執行環境。

以太坊虛擬機是一種計算引擎,其工作方式類似於計算機,但去中心化,允許執行數千或數百萬個項目。

該虛擬機是以太坊運行結構的基石。被認為是運行和部署智能合約的區塊鏈的一部分。

EVM 的作用是在區塊鏈中提供一系列額外的功能,以確保用戶能夠面對傳統區塊鏈的限制。

以太坊網絡上的每個節點都在EVM 上運行,以維持整個網絡的共識,從而使它們能夠分析和執行智能合約,這些智能合約是在以太坊之上運行的代碼。

每個虛擬機都是隔離的,這意味著其中的代碼無法訪問網絡、文件系統和其他進程。

以太坊虛擬機簡介

當我們談論以太坊虛擬機(EVM)時,理解一系列概念很重要,例如:

智能合約。完整的圖靈機。虛擬機。

通過這種方式,你將能夠了解所有這些如何在去中心化的環境中正常工作。

由於這些強大而復雜的區塊鏈使用了這一新發展,行業正在發生轉變。這要歸功於所謂的Web3 和去中心化網絡的到來。

因此,如果你想了解整個生態系統在以太坊上的運作方式,你應該繼續閱讀。

你如何使用智能合約?

我們知道智能合約是在區塊鏈上運行的代碼片段,作為兩方之間的協議工作。更簡單地說,它們是在塊鏈上運行的程序。

但是如果你想知道EVM 和合約是如何相關的,答案很簡單。就以太坊區塊鏈而言,兩者密切相關,不能沒有彼此存在。

這些合約通常用Solidity 等高級語言(易於人類理解)編寫,然後編譯為稱為字節碼的低級語言。

以太坊虛擬機無法直接執行Solidity 代碼,因此它被編譯為稱為操作碼的低級機器指令。

你必須繼續閱讀以了解這一切是如何形成的,以了解此區塊鍊和加密的基本部分的操作。

什麼是虛擬機?

虛擬機在機器和正在運行的代碼之間添加了一層抽象。除了提高軟件的可移植性外,還可以確保應用程序彼此分離並與主機分離。

與Windows 或iOS 等操作系統不同,虛擬機(簡稱MV)是在操作系統之上創建的,其工作方式與物理計算機類似。

換句話說,虛擬機嘗試使用虛擬架構複製物理機的計算能力。這使它們可以在不同的系統和硬件上運行,非常適合構建去中心化生態系統的引擎。

通過虛擬機,網絡中參與者的資源,無論他們身在何處,都可以用來構建、處理和執行我們想要的任何東西。

從這個意義上說,以太坊虛擬機充當全球處理器或計算機,將其增持的計算能力提供給開發人員。反過來,開發人員使用此資源來創建智能合約和去中心化應用程序。

可以通過參與的以太坊節點從世界任何地方訪問虛擬機。

向網絡借出算力是自願的,並受各種激勵措施的約束。鑑於虛擬機的所有屬性,以及通過自願網絡處理所有數據的需要,以太坊選擇這種類型的架構是有意義的。

但在我們最終深入了解這一以太坊開發的運作之前,還有一個概念需要了解。

EVM 圖靈完備嗎?

它是圖靈完備的特性,是它運行這個區塊鏈的虛擬機的基礎理論。

由於圖靈完備,EVM 的工作方式假設它體現了非人類或機器思維的概念。

這個思維過程運行在一個算法上。它們由沒有預定義順序的符號和函數字符串組成,它們可以向前或向後。這與不允許循環等的其他代碼類型(不是圖靈完備的)有很大區別。

這種運動沒有限制,可以假設是無限的,僅受物理限制的限制。

這允許開發人員創建一個幾乎可以執行任何計算的算法,僅受氣體限制,我們將在稍後討論。

EVM 是如何工作的?

以太坊虛擬機為區塊鏈中的每個區塊確定該區塊鏈的一般狀態。

因此,EVM 允許任何人在一個去信任的生態系統中執行代碼,在這個生態系統中,執行的結果可以得到保證並且是完全可預測的。

當交易被執行時,它會導致智能合約被執行。因此,EVM 會改變以太坊的狀態以滿足合約調用的需要。

這賦予了以太坊巨大的潛力,因為它可以解釋和執行具有復雜功能的智能合約,這與比特幣等其他更簡單的區塊鏈不同。

EVM 工作以響應來自智能合約的數據逐個塊地將自身更新到新的有效狀態。

反過來,以太坊虛擬機跟踪合約的執行成本,這是在EVM 中實現的每條指令以氣體單位計算的成本。

氣體與EVM 有什麼關係?

為了在EVM 上運行DApp 和智能合約,用戶需要以gas 的形式使用資源。這會產生激勵,因為這些算法不能無限期地運行,因為它們遲早會失去這種資源。

即便如此,它允許創建一個世界計算機,任何人都可以加入網絡來執行他們的代碼,而無需信任節點,但允許合約具有確定性特徵,即它們有一個終點。

這樣,節點就不會被阻止嘗試處理永無止境的算法,這可以用作網絡的攻擊向量。

相反,他們運行代碼,直到氣體耗盡並且執行失敗。使用戶失去他們的資源,因為使用的氣體沒有被退回。

以太坊虛擬機的特點

雖然比特幣和其他區塊鏈必須處理交易等更簡單的事情,但以太坊及其虛擬機還有其他問題。

這要求EVM 具有允許其運行的某些特性。

1.確定性

當一個程序將相同的輸出返回給一系列輸入時,它是確定性的。我們運行代碼多少次並不重要。

這對以太坊很重要,我們發現智能合約和涉及大量資金的金融交易。

如果我們無法確定代碼在每個執行階段將如何反應,那麼它就不是這些任務的可靠生態系統。

因此,確定性對於以太坊虛擬機的基礎至關重要。

2.隔離

智能合約的另一個重要特徵是它們在孤立的環境中工作。這要歸功於兩個系統:

虛擬機碼頭集裝箱

由於Docker 中的合約設計不是確定性的,以太坊選擇了虛擬機來實現這個功能。

這種隔離很重要,因為合約代碼可能包含黑客或錯誤。這可以隔離問題並且不會影響網絡的其餘部分。

3. 可完成

我們知道EVM 是圖靈完備的,這意味著它執行的代碼可以解決任何問題,至少是假設性的。

但是沒有辦法知道智能合約何時可以結束,因為根據某些信息,它可以在對其代碼行進行幾次評估後繼續運行或結束。

這就是為什麼設置了一種機制來限制其執行,即氣體。一種資源,也用於鼓勵網絡機制,因為它的數量決定了哪些功能應該被優先考慮。

在執行之前,會確定gas 限制,當達到該值時會導致虛擬機停止運行。

以太坊虛擬機的優缺點

如你所見,所有這些操作對於那些尋求執行某些功能而不需要控制整個事物的中央實體的人來說具有很大的優勢。

但它也有一些問題需要我們理解才能完全理解這個複雜的話題。

優點

以下是以太坊虛擬機的一些好處,這解釋了為什麼這對加密貨幣生態系統和整個社會來說是一個非常重要的發展:

該虛擬機允許你開發去中心化應用程序,這些應用程序的限制比它們的中心化姐妹要少。他們使創建NFT 成為可能。一個近年來一直在增長和發展的空間。多虧了EVM,這是一個很好的用例示例。借助在EVM 之上運行的智能合約,可以創建許多有趣的東西。我們已經看到了文件共享項目、新市場、各方之間的去信任交互,甚至是整個去中心化金融生態系統。

缺點

以太坊虛擬機已被證明是這個網絡中非常重要的一部分,但也不是沒有一些負面的方面:

人們認為它是完全去中心化的,但事實並非如此。這是因為絕大多數節點,或者至少有很大一部分,都在亞馬遜服務器上運行,這些服務器是中心化服務。如果明天供應商出於某種原因決定不喜歡以太坊,它可能會關閉節點,導致網絡崩盤。這家公司和社交網絡過去曾發生過這種情況。 EVM 編程需要一些技術知識,並且僅限於具有編程技能的人員。在電網擁塞期間,在EVM 上運行的成本(gas)使其無法使用。也許對於那些發送大量價值的人來說,這不是一個非常嚴重的問題,但對於那些資金較少的人來說,他們會暫時脫離網絡。隨著這個解決方案變得越來越流行,這個問題也會增加。採用智能合約和DApp 的人越多,gas 的運營成本就越高。

資訊來源:由0x資訊編譯自CRIPTOTARIO。版權歸作者Criptotario所有,未經許可,不得轉載

Total
0
Shares
Related Posts