WebAssembly和區塊鏈計算的未來區塊鏈
WebAssembly和區塊鏈計算的未來
2013年提出的以太坊的概念成為了區塊鏈技術的一個主要擴展,將其從一個P2P資金的去中心化結算層,轉變為一個程序執行的無信任層,為應用程序和可編程資產開創了一個全新的世界。
把自己概念化為一個“全球計算機”,以太坊的核心思想是很簡單易懂的:把區塊鏈技術的信任最小化的天然屬性應用到計算機程序輸出的共識上。也就是說,開發者可以部署被稱為“智能合約”的代碼,它是完全確定性的,輸出可以被所有和它進行交互的角色所信任。
各種各樣非常好的想法在一開始就被提了出來,包括使用以太坊智能合約創建公平拍賣或者樂透彩票,創建預測市場,去中心化交易所等等。這些用例中最廣為人知的是創建以太坊可編程token,這是各類公司通過首次代幣發行籌集資金的一種流行的方式。
以太坊內核實現了一個圖靈完備的虛擬機,即以太坊虛擬機(簡稱EVM)。它定義了一套通用的、確定性的指令,程序可以被編譯成這些指令,并且可以在全世界任何一臺計算機上運行。在EVM上執行的每一個操作和程序需要被以太坊網絡中的每一個全節點運行,意味著這臺“世界計算機”需要有一種內建的機制來制止惡意占用(spam)攻擊。為解決這個問題,EVM實現了gas(油費)的概念,可以理解為在這臺全球計算機上運行每個基本操作需要消耗的“燃料”,這是需要預付的。
區塊鏈計算機是確定性的
圖靈完備意味著你可以在以太坊虛擬機上編寫和運行任何你能想到的程序,只要你能為它的所有執行步驟支付足夠的gas。昂貴的操作,例如訓練機器學習算法,由于它的固有限制,在EVM上是完全不可行的。EVM中的每一條指令,被稱為OPCODE,都有一個特定的固定費用。每個OPCODE都是確定的,對每個程序的輸出達成一致意見是在以太坊上達成全局共識的必要條件。
(以太坊從區塊創建到交易執行的完整系統,引用自StackExchange)
通過為opcode設置固定費用,節點就可以確定執行某個特定程序時用戶需要預付多少費用。在這種情況下,gas的概念不僅僅被用于阻止惡意占用攻擊,還是一種確定性的指標。例如,一個消耗gas X的程序總是會消耗X,不管是網絡中的哪個節點在執行它。gas的單價依賴于整個平臺的供求關系,經常會隨著以太坊網絡的交易負載量而發生變化。
EVM是如何設計的?為什么它是低效的?
l 架構尺寸過大
傳統計算機包含的指令集只接受32位或者64位的輸入。EVM與此不同并且很特殊,它是一臺256位的計算機,故意設計成這樣是為了更易于處理以太坊的哈希算法,它會明確產生256位的輸出。
然而,實際運行EVM程序的計算機則需要把256位的字拆分成它們的本地架構來執行智能合約,從而使得整個系統變得非常低效和不實用。
另外,如果你想在以太坊上用它的基本OPCODES實現一個類似于SHA256的復雜算法,那你就自祈多福吧!為了解決通過指令集運行復雜程序產生的高額gas問題,以太坊引入了預編譯的概念,把程序編譯進EVM并且消耗固定的gas。一個值得關注的預編譯是以太坊哈希算法,因為如果在虛擬機中實現該算法,合約在調用時將會產生極其昂貴的費用。
l 臃腫的預編譯
預編譯帶來的問題是它會不斷增加虛擬機的臃腫度和復雜度,而不能解決核心問題:當前指令集和規范的低效而粗劣的設計。
如果我們能夠定義一種新的規范和指令集,不需要預編譯這些復雜程序,而只需要通過基本指令就可以高效實現呢?
走進WebAssembly
WebAssembly是由W3C開發的一個高效輕量級指令集標準,被譽為網絡和高性能的顛覆者,支持跨瀏覽器執行。這意味著我們可以把包括C/C , Go, Rust等在內的不同編程語言編譯成統一的標準格式,并將其作為JavaScript的替代品以近乎原生代碼的效率在瀏覽器中運行。WebAssembly,或者簡稱為WASM,是內存安全、平臺獨立的,可以完美高效地映射到所有類型的CPU架構上。
這和區塊鏈有什么關系?
不依賴于EVM,現在我們有了一套優秀并且高效的指令集,可以編譯各種類型的語言,并且有信心它們可以在不同類型的平臺上執行且具有同等的性能 - 這對于去中心化應用來說是非常理想的!更進一步,通過去除浮點運算指令,WASM指令集可以很容易地變成確定性指令集,從而很適合作為EVM的替代品。
EWASM團隊已經著手在以太坊上集成WebAssembly,從而保證以太坊2.0的執行層更加高效、簡單,適合作為完全的去中心化計算平臺。https://github.com/ewasm
WASM已經被許多其他項目接納為標準,包括Dfinity和EOS都使用它來強化它們的執行層。
Web的性能和智能合約平臺執行層的未來一片光明。不僅dApp會具有更高的性能,集成WASM也可以讓那些熟悉Rust和Go之類的主流語言的魯棒性的人更容易進行智能合約的開發,而不是需要學習solidity的各種細節才能在以太坊上開發有用的應用程序。
------
風險警示:藍狐筆記所有文章都不構成投資推薦,投資有風險,投資應該考慮個人風險承受能力,建議對項目進行深入考察,慎重做好自己的投資決策。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。