時(shí)間:2021-12-04|瀏覽:480
以太坊虛擬機(jī)是在以太坊網(wǎng)絡(luò)上運(yùn)行各種智能合同的輕量級(jí)虛擬機(jī)。EVM不同于W的功能indows等待傳統(tǒng)操作系統(tǒng),后者一次只能在機(jī)器上運(yùn)行。EVM 模擬物理機(jī)是本機(jī)操作系統(tǒng)中構(gòu)建的高級(jí)抽象。
通過使用EVM,同一個(gè)平臺(tái)可以在許多不同的操作系統(tǒng)和硬件架構(gòu)上運(yùn)行。該功能使虛擬機(jī)適用于以太坊和其他網(wǎng)絡(luò),可以通過分布在世界各地的不同機(jī)器上的不同客戶訪問這些網(wǎng)絡(luò)。EVM物理C可以模擬PU對(duì)以太坊網(wǎng)絡(luò)上的大部分功能負(fù)責(zé)。
EVM具有以下特點(diǎn):
確定性
確定性程序?yàn)橄嗤妮斎爰峁┫嗤妮敵?,與其執(zhí)行相同代碼的次數(shù)無關(guān)。在以太坊,dApp每次處理數(shù)百萬美元,各種用戶都需要知道代碼在執(zhí)行的每個(gè)階段是如何反應(yīng)的。
可隔離
智能合約需要在完全隔離的環(huán)境中運(yùn)行。這確保了如果黑客或b在智能合約中發(fā)生ug,它不會(huì)影響底層協(xié)議的其他部分。
可終止
以太坊智能合同是圖靈完整的。因此,只要有足夠的時(shí)間和資源,他們就應(yīng)該能夠解決任何問題。智能合同應(yīng)有終止機(jī)制,因?yàn)楹茈y確定合同是否會(huì)在規(guī)定的期限內(nèi)完成所有操作。以太坊使用gas限制終止超出執(zhí)行限制的智能合同。
EVM 的功能
它是以太坊網(wǎng)絡(luò)的去中心化處理單元。這里只能發(fā)生每一個(gè)交互、交易和智能合行。
獲取并執(zhí)行指令,然后通過給定的指令分配器解碼操作數(shù)。
負(fù)責(zé)操作數(shù)、數(shù)據(jù)處理和指令等所有數(shù)據(jù)結(jié)構(gòu)。
跟蹤存儲(chǔ)狀態(tài)、區(qū)塊信息和世界狀態(tài)等網(wǎng)絡(luò)組件。
負(fù)責(zé)為以太坊網(wǎng)絡(luò)上的不同智能合約創(chuàng)造運(yùn)行環(huán)境。
EVM 的挑戰(zhàn)
EVM處理這么多不同的操作并不快,但其操作代碼規(guī)范還沒有發(fā)展到處理變化的需要。
未進(jìn)化意味著語言也有局限性。
什么是WebAssembly (WASM)?
WebAssembly (WASM)是一種可以在現(xiàn)代瀏覽器上有效執(zhí)行的新代碼。這個(gè)新代碼由萬維網(wǎng)聯(lián)盟(W3C)創(chuàng)建和定義。WASM來自谷歌、Mozilla和蘋果的工程師在一起。本質(zhì)上,WASM通常被稱為E通常被稱為Ethereum 2.0,它具有EVM所有功能,并附加額外功能。
專門為網(wǎng)絡(luò)打造網(wǎng)絡(luò)
谷歌、微軟、蘋果等大型技術(shù)公司的工程師都是開發(fā)團(tuán)隊(duì)的一部分。因此,這些工程師必須確保WASM兼容他們的引擎和協(xié)議。
在設(shè)計(jì)中考慮了一組特定的目標(biāo)
創(chuàng)建WASM快速、高效、便攜。WASM以接近本地速度執(zhí)行常用硬件能力。
易于閱讀和調(diào)試。它具有人類可讀的文本格式,代碼可以手動(dòng)查看、編寫和調(diào)試。
確保安全。這是通過增強(qiáng)主機(jī)瀏覽器的權(quán)限策略和保持向后兼容性來實(shí)現(xiàn)的。
EVM 與 WASM
速度
簡單地說,EVM是萬事通,卻什么都不懂。EVM如何處理編譯就是這一點(diǎn)的一個(gè)很好的例子。本試圖找到執(zhí)行某些操作的最佳路徑,最終影響EVM總吞吐量。
EVM只能處理256位字節(jié)碼,這意味著小于256位的字節(jié)碼必須轉(zhuǎn)換為256位格式,然后才能發(fā)送給EVM。EVM可擴(kuò)展性問題很明顯,因?yàn)樗棵胫惶幚?5筆交易。
WASM直接轉(zhuǎn)換為編譯代碼,可以更快地加載,增加每個(gè)塊處理的交易量。
預(yù)編譯
EVM依靠預(yù)編譯(預(yù)編譯合同)。發(fā)出預(yù)編譯調(diào)用時(shí),EVM將執(zhí)行預(yù)定義的本機(jī)代碼,然后顯示結(jié)果。這些特定的預(yù)編譯協(xié)議用于基本操作,如簽名方案和哈希。
雖然預(yù)編譯不消耗大量gas在這種情況下,加密計(jì)算變得高效,但它們也帶來了問題。引入新的預(yù)編譯器通常要求網(wǎng)絡(luò)在系統(tǒng)范圍內(nèi)經(jīng)歷硬分叉。
WASM消除了以太坊對(duì)預(yù)編譯合同的依賴。ASM非常高效,開發(fā)人員可以在不擔(dān)心潛在硬分叉的情況下創(chuàng)建高效、快速的智能合同。
靈活性和互操作性
WASM支持更多的語言,并提供比E更多的語言VM更廣泛的工具集。WASM支持R等傳統(tǒng)語言u(píng)st、C和c 。WASM也被本地JavaScript例如,發(fā)動(dòng)機(jī)支持 Google 的 V8 引擎(基于 Node.js 和 Chromium 瀏覽器),微軟的 Chakra 引擎(Microsoft Edge)和 Mozilla 的 Spidermonkey 引擎(Thunderbird 和 Firefox)。
熱點(diǎn):以太坊 智能合約 數(shù)據(jù) pi 以太