以太坊將進行“心臟手術(shù)”,以太坊虛擬機(EVM)將被EWASM取代區(qū)塊鏈

                  coindesk 2018-09-18 16:52
                  分享到:
                  導(dǎo)讀

                  以太坊虛擬機(EVM)存儲在成千上萬個節(jié)點上,組成了以太坊平臺。EVM負責(zé)執(zhí)行數(shù)不清的代幣、dapp、DAO和數(shù)字小貓,這些都是以太坊區(qū)塊鏈的組成部分。

                  以太坊的心臟其實就是一臺虛擬電腦。

                  QQ截圖20180917163457

                  以太坊虛擬機(EVM)存儲在成千上萬個節(jié)點上,組成了以太坊平臺。EVM負責(zé)執(zhí)行數(shù)不清的代幣、dapp、DAO和數(shù)字小貓,這些都是以太坊區(qū)塊鏈的組成部分。

                  EVM就像是推動以太坊運行的引擎,它使用一種名為“EVM字節(jié)碼”的語言——一種原始的,256位的信息串,可以提供任何可以想到的方程(它在平臺自我設(shè)定的限制范圍內(nèi)提供)。

                  EVM聽起來很強大、很重要,是嗎?那么這就意味著EVM絕對不可以出現(xiàn)混亂?

                  然而,這個以太坊基礎(chǔ)設(shè)施的主要部分正在為徹底的重寫做準備。

                  以太坊開發(fā)者Lane Rettig告訴CoinDesk說,

                  “我想說的是,我們一開始并沒有大量的設(shè)計思考。這就有點像一個工具——瑞士軍刀—EVM做了很多事情,但做得不太好”。

                  因此,當(dāng)前的EVM將被一個稱為eWASM的新虛擬機所取代。

                  eWASM是WASM(WebAssembly)代碼的以太坊版本,WASM由負責(zé)維護和標準化Web的開發(fā)者團隊——萬維網(wǎng)聯(lián)盟(W3C)創(chuàng)建。

                  eWASM開發(fā)貢獻者Retting說,

                  “相比于EVM,許多高收入、非常有經(jīng)驗的工程師向WASM構(gòu)建集的概念投入了成千上萬的工作小時?!?/p>

                  實際上,eWASM將允許以太坊開發(fā)人員能夠使用多種編程語言來編寫代碼——而不僅僅目前所使用的以太坊專用的語言Solidity——據(jù)說eWASM還會帶來大量的性能增強。

                  由此,以太坊將加入幾個競爭對手的行列,包括EOS和Cardano,他們已經(jīng)各自部署(或計劃部署)專用的虛擬機,使用WASM代碼來處理去中心化計算。

                  對于以太坊來說,這次虛擬機切換被設(shè)定與其他一些以太坊網(wǎng)絡(luò)更新一起執(zhí)行,包括在未來幾年實施的分片(Sharding)擴容解決方案和Casper,因此現(xiàn)在被戲稱為“Shasper”。雖然這一切換的確切時間并不是固定的,但eWASM的開發(fā)正在迅速取得進展,并正準備在10月在布拉格舉行的以太坊開發(fā)者大會上推出測試網(wǎng)絡(luò)。

                  在談到更換現(xiàn)有虛擬機時,Retting總結(jié)說:

                  “以太坊正處于一種過渡階段,從一輛圍繞著農(nóng)場緩慢騎行的自行車轉(zhuǎn)向一臺能夠在高速公路行駛的真正賽車?!?/p>

                  一條“疣狀的”路

                  這種虛擬機切換背后存在著一種現(xiàn)實,那就是人們認識到,盡管EVM是一種創(chuàng)新技術(shù)——第一次提供了一種抗攻擊的去中心化計算解決方案——但現(xiàn)實情況是它并不像它所能做到的那樣干凈利索。

                  舉個例子,大多數(shù)dapps開發(fā)人員都在使用以太坊Solidity語言,這是一種高級編程語言,它可以自動編譯成EVM字節(jié)碼兼容的形式。

                  Rettig說,由于EVM依賴于“非常大的、廣泛的指令”,即使是最微小的計算,比如基本的算術(shù),也需要轉(zhuǎn)換成256位的字符串讓EVM來處理——這是一個復(fù)雜過程,即便是一次非常簡單的數(shù)學(xué)運算也需要完成這個過程。

                  這只是在系統(tǒng)代碼中內(nèi)置的幾個操作之一,還包括流行的哈希函數(shù)SHA-3,而Rettig認為這些操作不應(yīng)該存在。

                  由于這個原因,Retting將EVM描述為“疣狀的”。

                  以太坊的核心開發(fā)者尼克·約翰遜(Nick Johnson)也同意這一觀點,他告訴CoinDesk,當(dāng)他加入以太坊時,他馬上就意識到,EVM是由對計算機科學(xué)有深刻理解的開發(fā)人員建造的,而這些人員在構(gòu)建被廣泛使用的產(chǎn)品方面卻沒有多少經(jīng)驗。

                  Johnson強調(diào),作為一種工具,EVM“優(yōu)化了理論的純粹性,而不是實際應(yīng)用?!?/p>

                  他說,

                  “EVM擁有大量的寄存器,但它們都是一樣的東西,而且在內(nèi)部是一致的,但它不是為了現(xiàn)實世界的實現(xiàn)建立起來的?!?/p>

                  相比之下,WASM代碼是在考慮現(xiàn)實產(chǎn)品的情況下構(gòu)建的。

                  Rettig說,EVM“更貼近硬件”,這意味著它運行的代碼接近于實際的硬件指令,因此在翻譯不同的編碼邏輯上花費的工作更少。

                  “EVM指令非常接近實際的硬件指令,”Rettig繼續(xù)說道?!斑@些指令可以直接映射到實際設(shè)備運行的指令,因此,理論上,您可以獲得非常令人興奮的性能改進?!?/p>

                  例如,在以太坊上構(gòu)建的開發(fā)人員將能夠使用多種語言進行編碼——無論他們最喜歡哪一種——包括那些具有額外安全性優(yōu)勢的語言。

                  另一個關(guān)鍵優(yōu)勢——Rettig說,一些開發(fā)者認為這是“eWASM被選用背后的關(guān)鍵動機”——eWASM可能會消除所謂的“預(yù)編譯”。

                  由于EVM是由笨拙的代碼組成的,所以需要在系統(tǒng)內(nèi)部構(gòu)建某些操作——否則,操作將超過與之相關(guān)的gas成本。這被稱為預(yù)編譯,要使此類操作可用就需要一個系統(tǒng)范圍的升級或硬分叉;事實證明,這樣的升級是有風(fēng)險的,而且是復(fù)雜的。

                  然而,在eWASM中,開發(fā)人員認為這些操作可以簡單地編寫為智能合約然后進行部署,這就跳過了硬分叉場景。

                  Johnson說:

                  “通過eWASM,它在計算方面的效率非常高,以至于大多數(shù)預(yù)編譯的東西都可以被取消,取而代之的是eWASM合約?!?/p>

                  心碎

                  然而,與一個去中心化的生態(tài)系統(tǒng)中發(fā)生的任何其他重大更改一樣,放棄EVM的努力也并非沒有遭受批評。

                  首先,以太坊的核心開發(fā)者Greg Colvin一直致力于EVM的維護工作,他不愿意讓舊代碼消失。

                  Colvin一直在設(shè)計一個新改進的EVM代碼版本,名為EVM 1.5,最初的目的就是讓其成為以太虛擬機的未來。然而,在沒有任何警告的情況下,他的經(jīng)費被非盈利的以太坊基金會削減了。

                  “我很生氣,”Colvin說,他幫助成立了以太坊魔術(shù)師委員會,這是一個討論小組,致力于進一步提高以太坊的技術(shù)熟練程度,他告訴CoinDesk。

                  “你們連一小時8.4美元經(jīng)費都不愿意付給我,而把我的工作時間從35小時減少到20小時,那么我為什么要干活呢?而在接下來的一年里,我再也沒有時間進行這些志愿者工作了?!?/p>

                  然而,Colvin反對的原因不僅僅是自尊心。

                  根據(jù)他的說法,eWASM也存在技術(shù)問題。例如,由于eWASM允許多種語言,所以代碼很大程度上依賴于所謂的“編譯器”——Colvin認為這對于攻擊者來說可能是一種單點故障。

                  他也不相信eWASM智能合約可以取代預(yù)編譯。

                  此外,Colvin還有很多設(shè)計方面的批評,甚至連Rettig也同意這一點。根據(jù)這兩位開發(fā)者的說法,由于某些原因,效率較低的技術(shù)通常會勝出。以Javascript為例,它是最廣泛使用的編程語言之一,但它也是出了名的設(shè)計丑陋。

                  Rettig認為:

                  “在技術(shù)和計算機科學(xué)領(lǐng)域,似乎有一種模式,在這些領(lǐng)域,設(shè)計最好的東西,不僅不一定能贏,而且似乎運行的也不太好?!?/p>

                  更不用說,根據(jù)Colvin的說法,在WASM背后的所有開發(fā)工作中,代碼仍然沒有經(jīng)過測試。

                  Colvin告訴CoinDesk:

                  “我不明白為什么我們想要成為實驗的早期采用者,我們已經(jīng)是我們自己實驗的早期采用者?!?/p>

                  不可預(yù)見性

                  撇開沖突不談,eWASM正在吸引許多以太坊的開發(fā)者的關(guān)注。

                  實際上,正在進行的計劃是在11月以太坊開發(fā)者大會Devcon4之前部署測試網(wǎng)絡(luò)。

                  然而,這并不意味著新的虛擬機將在短時間內(nèi)被部署。

                  因為在替換EVM本身之前,eWASM將首先在一個分片或一個側(cè)鏈上被推出,eWASM的推出與Shasper升級密切相關(guān)。就時間而言,這意味著開發(fā)者需要關(guān)注那些支持這些變化的研究,然后再轉(zhuǎn)向eWASM。

                  不幸的是,這種研究的進展是不可預(yù)測的。

                  實際上,這類代碼升級所涉及的時間模糊性正在給該平臺上大量以太坊開發(fā)人員帶來困惑。

                  “如果你正在建立一個新客戶端,那就會有很多困惑:我應(yīng)該使用eWASM創(chuàng)建嗎?我應(yīng)該使用EVM創(chuàng)建嗎?還是我應(yīng)該同時基于兩者創(chuàng)建?我應(yīng)該做些別的什么,”Rettig告訴CoinDesk。

                  對Colvin來說,缺乏清晰度是一個關(guān)鍵的障礙,因為當(dāng)涉及到當(dāng)前的EVM時,有一些性能問題很容易改進,但這些問題的解決已經(jīng)被路線圖的突然轉(zhuǎn)變所阻礙。

                  “我在這一段時間感到沮喪,eWASM顯然即將來臨,但盡管沒有太多的資源,EVM1.5同樣已經(jīng)就在不遠處?,F(xiàn)在,它仍然是可行的,但卻被推掉了,整整一年都被浪費了。”Colvin告訴CoinDesk。

                  越多越好?

                  盡管如此,Rettig和Colvin都承認,這種不確定性是在沒有任何中央領(lǐng)導(dǎo)的情況下為開源項目做出貢獻的產(chǎn)物。

                  “社區(qū)層面是如此重要。如果以太坊是一家公司,那就我早就離職不干了,”Colvin對CoinDesk說。

                  Rettig爭辯說,當(dāng)談到以太坊的改進時,就沒有什么工作是浪費的。

                  事實上,他繼續(xù)說道,因為分片升級的性質(zhì)——將以太坊分割成更小、更易于管理的塊——以太坊最終可以支持多種虛擬機。

                  在以太坊經(jīng)過更新升級之后,Rettig說,

                  “沒有單一的以太坊,沒有單一的路線圖,沒有單一的權(quán)威,它是一個社區(qū),是一個技術(shù)家族,我不相信未來只有一條區(qū)塊鏈來統(tǒng)治這所有的一切。”

                  與此同時,eWASM也將開啟新層次的互操作性。首先,它是建立在一種已經(jīng)標準化的萬維網(wǎng)上的語言中,所以在瀏覽器中添加對以太坊的支持是輕而易舉的。

                  它還可以為不同區(qū)塊鏈之間未被發(fā)現(xiàn)的互操作性鋪平道路。

                  Rettig說:

                  “也許你將見到二次分片、Plasma等,也許它們在某些地方重疊,也許我們有一條與以太坊區(qū)塊鏈通信的Dfinity鏈,或者通過Cosmos和Polkadot與比特幣區(qū)塊鏈通信的以太坊區(qū)塊鏈。我們還不知道會出現(xiàn)什么,因此不要太沉迷于官方規(guī)范的發(fā)展路線圖,不管它是什么?!?/p>

                  EVM eWASM Rettig Colvin 代碼
                  分享到:

                  1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標注作者和來源;
                  2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
                  3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。