以太坊將進(jìn)行“心臟手術(shù)”,以太坊虛擬機(jī)(EVM)將被EWASM取代區(qū)塊鏈
以太坊虛擬機(jī)(EVM)存儲(chǔ)在成千上萬(wàn)個(gè)節(jié)點(diǎn)上,組成了以太坊平臺(tái)。EVM負(fù)責(zé)執(zhí)行數(shù)不清的代幣、dapp、DAO和數(shù)字小貓,這些都是以太坊區(qū)塊鏈的組成部分。
以太坊的心臟其實(shí)就是一臺(tái)虛擬電腦。
以太坊虛擬機(jī)(EVM)存儲(chǔ)在成千上萬(wàn)個(gè)節(jié)點(diǎn)上,組成了以太坊平臺(tái)。EVM負(fù)責(zé)執(zhí)行數(shù)不清的代幣、dapp、DAO和數(shù)字小貓,這些都是以太坊區(qū)塊鏈的組成部分。
EVM就像是推動(dòng)以太坊運(yùn)行的引擎,它使用一種名為“EVM字節(jié)碼”的語(yǔ)言——一種原始的,256位的信息串,可以提供任何可以想到的方程(它在平臺(tái)自我設(shè)定的限制范圍內(nèi)提供)。
EVM聽(tīng)起來(lái)很強(qiáng)大、很重要,是嗎?那么這就意味著EVM絕對(duì)不可以出現(xiàn)混亂?
然而,這個(gè)以太坊基礎(chǔ)設(shè)施的主要部分正在為徹底的重寫做準(zhǔn)備。
以太坊開(kāi)發(fā)者Lane Rettig告訴CoinDesk說(shuō),
“我想說(shuō)的是,我們一開(kāi)始并沒(méi)有大量的設(shè)計(jì)思考。這就有點(diǎn)像一個(gè)工具——瑞士軍刀—EVM做了很多事情,但做得不太好”。
因此,當(dāng)前的EVM將被一個(gè)稱為eWASM的新虛擬機(jī)所取代。
eWASM是WASM(WebAssembly)代碼的以太坊版本,WASM由負(fù)責(zé)維護(hù)和標(biāo)準(zhǔn)化Web的開(kāi)發(fā)者團(tuán)隊(duì)——萬(wàn)維網(wǎng)聯(lián)盟(W3C)創(chuàng)建。
eWASM開(kāi)發(fā)貢獻(xiàn)者Retting說(shuō),
“相比于EVM,許多高收入、非常有經(jīng)驗(yàn)的工程師向WASM構(gòu)建集的概念投入了成千上萬(wàn)的工作小時(shí)?!?/p>
實(shí)際上,eWASM將允許以太坊開(kāi)發(fā)人員能夠使用多種編程語(yǔ)言來(lái)編寫代碼——而不僅僅目前所使用的以太坊專用的語(yǔ)言Solidity——據(jù)說(shuō)eWASM還會(huì)帶來(lái)大量的性能增強(qiáng)。
由此,以太坊將加入幾個(gè)競(jìng)爭(zhēng)對(duì)手的行列,包括EOS和Cardano,他們已經(jīng)各自部署(或計(jì)劃部署)專用的虛擬機(jī),使用WASM代碼來(lái)處理去中心化計(jì)算。
對(duì)于以太坊來(lái)說(shuō),這次虛擬機(jī)切換被設(shè)定與其他一些以太坊網(wǎng)絡(luò)更新一起執(zhí)行,包括在未來(lái)幾年實(shí)施的分片(Sharding)擴(kuò)容解決方案和Casper,因此現(xiàn)在被戲稱為“Shasper”。雖然這一切換的確切時(shí)間并不是固定的,但eWASM的開(kāi)發(fā)正在迅速取得進(jìn)展,并正準(zhǔn)備在10月在布拉格舉行的以太坊開(kāi)發(fā)者大會(huì)上推出測(cè)試網(wǎng)絡(luò)。
在談到更換現(xiàn)有虛擬機(jī)時(shí),Retting總結(jié)說(shuō):
“以太坊正處于一種過(guò)渡階段,從一輛圍繞著農(nóng)場(chǎng)緩慢騎行的自行車轉(zhuǎn)向一臺(tái)能夠在高速公路行駛的真正賽車?!?/p>
一條“疣狀的”路
這種虛擬機(jī)切換背后存在著一種現(xiàn)實(shí),那就是人們認(rèn)識(shí)到,盡管EVM是一種創(chuàng)新技術(shù)——第一次提供了一種抗攻擊的去中心化計(jì)算解決方案——但現(xiàn)實(shí)情況是它并不像它所能做到的那樣干凈利索。
舉個(gè)例子,大多數(shù)dapps開(kāi)發(fā)人員都在使用以太坊Solidity語(yǔ)言,這是一種高級(jí)編程語(yǔ)言,它可以自動(dòng)編譯成EVM字節(jié)碼兼容的形式。
Rettig說(shuō),由于EVM依賴于“非常大的、廣泛的指令”,即使是最微小的計(jì)算,比如基本的算術(shù),也需要轉(zhuǎn)換成256位的字符串讓EVM來(lái)處理——這是一個(gè)復(fù)雜過(guò)程,即便是一次非常簡(jiǎn)單的數(shù)學(xué)運(yùn)算也需要完成這個(gè)過(guò)程。
這只是在系統(tǒng)代碼中內(nèi)置的幾個(gè)操作之一,還包括流行的哈希函數(shù)SHA-3,而Rettig認(rèn)為這些操作不應(yīng)該存在。
由于這個(gè)原因,Retting將EVM描述為“疣狀的”。
以太坊的核心開(kāi)發(fā)者尼克·約翰遜(Nick Johnson)也同意這一觀點(diǎn),他告訴CoinDesk,當(dāng)他加入以太坊時(shí),他馬上就意識(shí)到,EVM是由對(duì)計(jì)算機(jī)科學(xué)有深刻理解的開(kāi)發(fā)人員建造的,而這些人員在構(gòu)建被廣泛使用的產(chǎn)品方面卻沒(méi)有多少經(jīng)驗(yàn)。
Johnson強(qiáng)調(diào),作為一種工具,EVM“優(yōu)化了理論的純粹性,而不是實(shí)際應(yīng)用?!?/p>
他說(shuō),
“EVM擁有大量的寄存器,但它們都是一樣的東西,而且在內(nèi)部是一致的,但它不是為了現(xiàn)實(shí)世界的實(shí)現(xiàn)建立起來(lái)的。”
相比之下,WASM代碼是在考慮現(xiàn)實(shí)產(chǎn)品的情況下構(gòu)建的。
Rettig說(shuō),EVM“更貼近硬件”,這意味著它運(yùn)行的代碼接近于實(shí)際的硬件指令,因此在翻譯不同的編碼邏輯上花費(fèi)的工作更少。
“EVM指令非常接近實(shí)際的硬件指令,”Rettig繼續(xù)說(shuō)道?!斑@些指令可以直接映射到實(shí)際設(shè)備運(yùn)行的指令,因此,理論上,您可以獲得非常令人興奮的性能改進(jìn)。”
例如,在以太坊上構(gòu)建的開(kāi)發(fā)人員將能夠使用多種語(yǔ)言進(jìn)行編碼——無(wú)論他們最喜歡哪一種——包括那些具有額外安全性優(yōu)勢(shì)的語(yǔ)言。
另一個(gè)關(guān)鍵優(yōu)勢(shì)——Rettig說(shuō),一些開(kāi)發(fā)者認(rèn)為這是“eWASM被選用背后的關(guān)鍵動(dòng)機(jī)”——eWASM可能會(huì)消除所謂的“預(yù)編譯”。
由于EVM是由笨拙的代碼組成的,所以需要在系統(tǒng)內(nèi)部構(gòu)建某些操作——否則,操作將超過(guò)與之相關(guān)的gas成本。這被稱為預(yù)編譯,要使此類操作可用就需要一個(gè)系統(tǒng)范圍的升級(jí)或硬分叉;事實(shí)證明,這樣的升級(jí)是有風(fēng)險(xiǎn)的,而且是復(fù)雜的。
然而,在eWASM中,開(kāi)發(fā)人員認(rèn)為這些操作可以簡(jiǎn)單地編寫為智能合約然后進(jìn)行部署,這就跳過(guò)了硬分叉場(chǎng)景。
Johnson說(shuō):
“通過(guò)eWASM,它在計(jì)算方面的效率非常高,以至于大多數(shù)預(yù)編譯的東西都可以被取消,取而代之的是eWASM合約?!?/p>
心碎
然而,與一個(gè)去中心化的生態(tài)系統(tǒng)中發(fā)生的任何其他重大更改一樣,放棄EVM的努力也并非沒(méi)有遭受批評(píng)。
首先,以太坊的核心開(kāi)發(fā)者Greg Colvin一直致力于EVM的維護(hù)工作,他不愿意讓舊代碼消失。
Colvin一直在設(shè)計(jì)一個(gè)新改進(jìn)的EVM代碼版本,名為EVM 1.5,最初的目的就是讓其成為以太虛擬機(jī)的未來(lái)。然而,在沒(méi)有任何警告的情況下,他的經(jīng)費(fèi)被非盈利的以太坊基金會(huì)削減了。
“我很生氣,”Colvin說(shuō),他幫助成立了以太坊魔術(shù)師委員會(huì),這是一個(gè)討論小組,致力于進(jìn)一步提高以太坊的技術(shù)熟練程度,他告訴CoinDesk。
“你們連一小時(shí)8.4美元經(jīng)費(fèi)都不愿意付給我,而把我的工作時(shí)間從35小時(shí)減少到20小時(shí),那么我為什么要干活呢?而在接下來(lái)的一年里,我再也沒(méi)有時(shí)間進(jìn)行這些志愿者工作了。”
然而,Colvin反對(duì)的原因不僅僅是自尊心。
根據(jù)他的說(shuō)法,eWASM也存在技術(shù)問(wèn)題。例如,由于eWASM允許多種語(yǔ)言,所以代碼很大程度上依賴于所謂的“編譯器”——Colvin認(rèn)為這對(duì)于攻擊者來(lái)說(shuō)可能是一種單點(diǎn)故障。
他也不相信eWASM智能合約可以取代預(yù)編譯。
此外,Colvin還有很多設(shè)計(jì)方面的批評(píng),甚至連Rettig也同意這一點(diǎn)。根據(jù)這兩位開(kāi)發(fā)者的說(shuō)法,由于某些原因,效率較低的技術(shù)通常會(huì)勝出。以Javascript為例,它是最廣泛使用的編程語(yǔ)言之一,但它也是出了名的設(shè)計(jì)丑陋。
Rettig認(rèn)為:
“在技術(shù)和計(jì)算機(jī)科學(xué)領(lǐng)域,似乎有一種模式,在這些領(lǐng)域,設(shè)計(jì)最好的東西,不僅不一定能贏,而且似乎運(yùn)行的也不太好?!?/p>
更不用說(shuō),根據(jù)Colvin的說(shuō)法,在WASM背后的所有開(kāi)發(fā)工作中,代碼仍然沒(méi)有經(jīng)過(guò)測(cè)試。
Colvin告訴CoinDesk:
“我不明白為什么我們想要成為實(shí)驗(yàn)的早期采用者,我們已經(jīng)是我們自己實(shí)驗(yàn)的早期采用者?!?/p>
不可預(yù)見(jiàn)性
撇開(kāi)沖突不談,eWASM正在吸引許多以太坊的開(kāi)發(fā)者的關(guān)注。
實(shí)際上,正在進(jìn)行的計(jì)劃是在11月以太坊開(kāi)發(fā)者大會(huì)Devcon4之前部署測(cè)試網(wǎng)絡(luò)。
然而,這并不意味著新的虛擬機(jī)將在短時(shí)間內(nèi)被部署。
因?yàn)樵谔鎿QEVM本身之前,eWASM將首先在一個(gè)分片或一個(gè)側(cè)鏈上被推出,eWASM的推出與Shasper升級(jí)密切相關(guān)。就時(shí)間而言,這意味著開(kāi)發(fā)者需要關(guān)注那些支持這些變化的研究,然后再轉(zhuǎn)向eWASM。
不幸的是,這種研究的進(jìn)展是不可預(yù)測(cè)的。
實(shí)際上,這類代碼升級(jí)所涉及的時(shí)間模糊性正在給該平臺(tái)上大量以太坊開(kāi)發(fā)人員帶來(lái)困惑。
“如果你正在建立一個(gè)新客戶端,那就會(huì)有很多困惑:我應(yīng)該使用eWASM創(chuàng)建嗎?我應(yīng)該使用EVM創(chuàng)建嗎?還是我應(yīng)該同時(shí)基于兩者創(chuàng)建?我應(yīng)該做些別的什么,”Rettig告訴CoinDesk。
對(duì)Colvin來(lái)說(shuō),缺乏清晰度是一個(gè)關(guān)鍵的障礙,因?yàn)楫?dāng)涉及到當(dāng)前的EVM時(shí),有一些性能問(wèn)題很容易改進(jìn),但這些問(wèn)題的解決已經(jīng)被路線圖的突然轉(zhuǎn)變所阻礙。
“我在這一段時(shí)間感到沮喪,eWASM顯然即將來(lái)臨,但盡管沒(méi)有太多的資源,EVM1.5同樣已經(jīng)就在不遠(yuǎn)處。現(xiàn)在,它仍然是可行的,但卻被推掉了,整整一年都被浪費(fèi)了?!盋olvin告訴CoinDesk。
越多越好?
盡管如此,Rettig和Colvin都承認(rèn),這種不確定性是在沒(méi)有任何中央領(lǐng)導(dǎo)的情況下為開(kāi)源項(xiàng)目做出貢獻(xiàn)的產(chǎn)物。
“社區(qū)層面是如此重要。如果以太坊是一家公司,那就我早就離職不干了,”Colvin對(duì)CoinDesk說(shuō)。
Rettig爭(zhēng)辯說(shuō),當(dāng)談到以太坊的改進(jìn)時(shí),就沒(méi)有什么工作是浪費(fèi)的。
事實(shí)上,他繼續(xù)說(shuō)道,因?yàn)榉制?jí)的性質(zhì)——將以太坊分割成更小、更易于管理的塊——以太坊最終可以支持多種虛擬機(jī)。
在以太坊經(jīng)過(guò)更新升級(jí)之后,Rettig說(shuō),
“沒(méi)有單一的以太坊,沒(méi)有單一的路線圖,沒(méi)有單一的權(quán)威,它是一個(gè)社區(qū),是一個(gè)技術(shù)家族,我不相信未來(lái)只有一條區(qū)塊鏈來(lái)統(tǒng)治這所有的一切?!?/p>
與此同時(shí),eWASM也將開(kāi)啟新層次的互操作性。首先,它是建立在一種已經(jīng)標(biāo)準(zhǔn)化的萬(wàn)維網(wǎng)上的語(yǔ)言中,所以在瀏覽器中添加對(duì)以太坊的支持是輕而易舉的。
它還可以為不同區(qū)塊鏈之間未被發(fā)現(xiàn)的互操作性鋪平道路。
Rettig說(shuō):
“也許你將見(jiàn)到二次分片、Plasma等,也許它們?cè)谀承┑胤街丿B,也許我們有一條與以太坊區(qū)塊鏈通信的Dfinity鏈,或者通過(guò)Cosmos和Polkadot與比特幣區(qū)塊鏈通信的以太坊區(qū)塊鏈。我們還不知道會(huì)出現(xiàn)什么,因此不要太沉迷于官方規(guī)范的發(fā)展路線圖,不管它是什么?!?/p>
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。