時間:2023-04-21|瀏覽:250
編譯 | Dali@iNFTnews.com
以太坊是僅次于比特幣的第二個重要區(qū)塊鏈,其成功得益于其原生Solidity編程語言和以太坊虛擬機(EVM)的支持。
堅持其靈活性、開發(fā)工具和龐大用戶群體,以太坊區(qū)塊鏈吸引了越來越多的去中心化應(yīng)用(DApp)開發(fā)人員加入。
EVM是程序執(zhí)行以太坊應(yīng)用代碼或智能合約的程序,并為它們提供在以太坊網(wǎng)絡(luò)上運行的環(huán)境。此外,EVM是圖靈完備的,可以運行所有編程語言編寫的程序,從而為開發(fā)人員創(chuàng)造可自定義的智能合約和DApp 提供便利。
EVM還可以訪問網(wǎng)絡(luò)中的所有節(jié)點,處理智能合約執(zhí)行并管理以太坊區(qū)塊鏈上的所有交易,成為當(dāng)今世界上最強大的虛擬機之一。
以太坊網(wǎng)絡(luò)的概念是程序員Vitalik Buterin在2013年提出的。作為DApp開發(fā)者的首選區(qū)塊鏈,以太坊的成功有賴于Gavin Wood在以太坊任職期間設(shè)計的以太坊虛擬機(EVM)。
EVM由C++編寫并使用LLVM項目編譯器,它是一個可以連續(xù)運行的特殊狀態(tài)機,決定著以太坊區(qū)塊鏈中每個區(qū)塊的狀態(tài)。
除了管理節(jié)點對分布式賬本的操作范圍,EVM還定義了在不同區(qū)塊之間改變狀態(tài)的具體規(guī)則。后一種功能是以太坊智能合約成功運行的基礎(chǔ)。
對于每一個輸入信息,EVM都會產(chǎn)生一個本質(zhì)上具有確定性輸出信息。EVM的運行方式類似于將瞬態(tài)值推入和推出下推棧的堆棧機器,其深度為1024個項,而每個項都是256位字。此外,它還以字節(jié)數(shù)組的形式維護臨時內(nèi)存。已編譯的智能合約代碼由EVM以140個標(biāo)準(zhǔn)操作碼集合執(zhí)行,其他區(qū)塊鏈堆棧操作也由它實現(xiàn)。
因此,EVM在處理交易過程中具有本質(zhì)上不穩(wěn)定的機器狀態(tài),同時它又具備全局或世界狀態(tài)以容納以太坊區(qū)塊鏈上的不同賬戶信息。
自2015年以太坊網(wǎng)絡(luò)推出以來,EVM代碼本身經(jīng)歷了多次迭代,這也使得目前存在多種EVM實現(xiàn)工具。EVM負(fù)責(zé)維護數(shù)千個以太坊節(jié)點和執(zhí)行代碼之間的抽象層級,以及在不向客戶端或節(jié)點泄露過多細(xì)節(jié)的情況下傳送一致信息。
EVM是運行較小可執(zhí)行程序(在以太坊中稱為智能合約)的首要程序,同時為開發(fā)人員提供用各種編程語言編寫這些智能合約的自由。由于EVM提供的這種靈活性,以太坊區(qū)塊鏈在DeFi和NFT領(lǐng)域催生了數(shù)千個DApp。
每一個DApp和組成它們的智能合約被轉(zhuǎn)換為字節(jié)碼,這些字節(jié)碼被傳送至EVM并分布在以太坊網(wǎng)絡(luò)的所有節(jié)點中。當(dāng)部署智能合約時,EVM負(fù)責(zé)與所有節(jié)點聯(lián)系,并在達(dá)成共識后進(jìn)行狀態(tài)更改。
然而,EVM并不完美,高額交易費或Gas成本是其中之一。這些費用需要用戶通過ETH進(jìn)行支付,并且會根據(jù)智能合約的復(fù)雜性和當(dāng)時網(wǎng)絡(luò)擁塞情況變化,需要開發(fā)者和企業(yè)家進(jìn)行相應(yīng)定價。
此外,Solidity是EVM上最受歡迎的編碼語言,這意味著開發(fā)人員需要有足夠的經(jīng)驗和一定的技術(shù)專長,才能利用Solidity創(chuàng)建高效的智能合約。任何額外的計算需求都將導(dǎo)致更高的Gas成本,不利于項目的成功。
EVM給區(qū)塊鏈生態(tài)系統(tǒng)帶來革命性變化,但許多區(qū)塊鏈項目也正在改進(jìn)這種用于讀取和執(zhí)行代碼的技術(shù)??珂溁ゲ僮餍院团cEVM兼容的區(qū)塊鏈正在發(fā)展起來,并且大多數(shù)提供比以太坊更低的費用和更快的交易速度。
以太坊的下一個目標(biāo)是完成從EVM到以太坊WebAssembly(eWASM)的范式轉(zhuǎn)變。它旨在將eWASM打造成一個高度模塊化并獨立于平臺的虛擬指令集體系結(jié)構(gòu)。eWASM被認(rèn)為是以太坊的下一個規(guī)則改變者,并可能為其他區(qū)塊鏈所使用。
總的來說,以太坊區(qū)塊鏈非常適合于DApp和智能合約的可持續(xù)擴展,EVM是Web3開發(fā)的首選平臺。