WASM 在 Web3 領域應用的難點在哪裡,為何以太坊最終選擇了 EVM?
原文標題:《The History of Wasm in Blockchain》
原文作者:krinza.eth \& Dino,Fluent Labs
編譯:登鏈翻譯小組
Wasm 的起源
自 1989 年以來,Web 已經發展了很長一段時間。從最初的簡單靜態頁面到支持數十億用戶的完整應用程序的世界。
因為 Web"應用程序"需要與 HTML 文件中的元素進行動態交互,所以引入了JavaScript。它廣受歡迎,並且一度是瀏覽器中唯一使用的編程語言。
JavaScript 作為一種標準語言很有用,但也有局限性。如果有些開發人員不懂 JavaScript 怎麼辦?如果 JavaScript 不是某些用例的最佳語言怎麼辦?
於是誕生了WebAssembly:一種低級、可移植、二進制格式和高級編程語言的編譯目標。它高效、安全且靈活。
引入 WebAssembly(Wasm)意味著 JavaScript 不再需要成為 Web 的唯一語言。開發人員可以使用如 Rust、Go、C、C++等語言編寫高性能代碼,並將其編譯為 Wasm 模塊在瀏覽器中執行。這為高性能 Web 應用程序(如 3D 圖形、視頻編輯、遊戲等)打開了新的可能性。
Wasm 在 Web2 中的流行程度
Wasm 的故事並沒有在瀏覽器中結束。隨著時間的推移,它擺脫了最初目標,並開始為世界上最複雜的分佈式應用程序提供動力。
以下是 Wasm 的一些應用方式:
電子商務和後端優化:
- Shopify :使用 Wasm 來優化後端操作以提高速度和效率。
設計和協作工具:
- Figma :從 asm.js 轉向 WebAssembly,使性能提升了三倍。
- AutoCAD 的遷移:與 Figma 類似,AutoCAD 采用了 Wasm 來解決複雜的 Windows 操作系統依賴性問題。
多媒體和娛樂:
- Netflix:采用 Wasm 技術創建沉浸式視頻互動,提升用戶參與度和娛樂體驗。
軟件開發和工具:
- Adobe:大力投資於 WebAssembly,拓展了在瀏覽器環境下的軟件開發可能性。
- Microsoft:將 Wasm 整合到 Azure Functions、Visual Studio Code 和 Edge 中,塑造了現代化的開發工具。
遊戲和互動體驗:
- Unity:使用 Wasm 技術打造跨平台的高性能遊戲。
- Pinterest:利用 Wasm 技術打造動態用戶體驗。
基礎設施和金融科技:
- Fastly/Cloudflare:采用 Wasm 技術提升網絡性能,優化內容傳輸。
- Visa:使用 Wasm 技術保障支付處理和保護敏感用戶數據的安全。
Wasm 技術在許多領域推動了創新。在電子商務、娛樂、軟件開發、遊戲、網絡和關鍵系統之間,Wasm 的影響力無疑是革命性的。
Wasm 在 Web3 中的受歡迎程度
快進到 Web3,Wasm 也變得非常受歡迎。在過去五年中,它已成為許多頂級區塊鏈項目的執行環境。以下是一些值得注意的示例:
Wasm 在 Web3 中的受歡迎程度與 Web2 並沒有太大差異。高效性、標準化、安全性以及編程語言的靈活性是其受歡迎的原因。以下是 Dfinity 技術負責人(當時)Andreas Rossberg(也是 Wasm 的共同創造者)在 Internet Computer 的願景 中的表述。
"我們的願景是,開發者可以使用任何他們喜歡的語言在互聯網計算機上進行編程。"
對通用編程語言的支持不僅為 Web3 原生開發者提供了更直觀的體驗,還可以讓數百萬新開發者構建鏈上應用。上述項目(以及其他一些項目,如 Tezos、EOS 等)都認為 Wasm 執行是一個強大的想法。
Web3 中的 Wasm 挑戰
但為什麼沒有數百萬開發者在鏈上構建應用?為什麼我們還沒有實現大規模採用?等一下 - 先不談大規模採用 - 為什麼 Wasm 在我們這個仍然非常小眾的 Web3 世界中甚至都不是最受歡迎的執行環境?
沒有誰比EigenLayer 的 Sreeram Kannan更好地闡述了問題的關鍵所在。從歷史上看,要在執行環境(以及任何其他核心基礎設施)上進行創新,你必須啟動一個去中心化的信任網絡。你必須獲得一組驗證者,並且你必須獲得一大筆資金的承諾。
這是非常難以持續做到的。啟動一個真正去中心化和無許可的信任網絡(不靠風險投資或補貼貪圖輕鬆獲利者)就像發動一場革命,這需要與工程分佈式系統非常不同的技能。
"創建一個去中心化的信任網絡就像找到獨角獸一樣。" --- Sreeram Kannan
事實是,很少有區塊鏈項目 - 即使是具有令人印象深刻的技術創新的項目 - 能夠啟動可持續的信任網絡。可以說,迄今為止只有兩個區塊鏈做到了這一點:比特幣和以太坊。這使得像 Wasm 這樣的新執行環境很難達到逃逸速度。
以太坊的 Wasm 實驗
一個自然的問題是:"如果 Wasm 執行如此令人嚮往,為什麼比特幣和以太坊沒有採用它呢?"
對於比特幣來說,答案很簡單。比特幣的信任網絡提供了幾個關鍵承諾,其中之一是"沒有硬分叉"。這就立即排除了用更可編程的 Wasm 環境替換比特幣有限的腳本環境。
對於以太坊,我們需要回顧一下歷史。
以太坊風味的 Wasm(Ewasm)最初在 2015 年提出,並考慮了多年。明確地說,Ewasm 是"以太坊合約中使用的一種受限制的 Wasm 子集"。
Ewasm 項目的目標包括 EVM 轉譯器、虛擬機實現、嵌入的計量器等。要更好地了解 Ewasm 背後的思想,請查看以下資源:
那麼,Ewasm 在哪裡?
以太坊基金會最終決定不採用 Ewasm,而是繼續使用 EVM 執行。雖然在向後兼容性和執行分片方面確實存在挑戰,但這個決定是更廣泛戰略轉變的一部分。這個轉變由Vitalik Buterin和Casey Detrio探討過,後來正式制定為"以 Rollup 為中心的以太坊路線圖"。
一個無需許可的未來
為什麼要轉變?
當時以太坊社區沒有這樣表達,但他們已經認識到模塊化區塊鏈架構的力量,以及它如何在技術棧的更高層面上實現了無需許可的創新。他們知道這是一種更好的方法。
回到現在。以太坊正在全力推進以 Rollup 為中心的路線圖,以實現可信的中立性、可驗證性、安全性和數據吞吐量,同時成千上萬個(Rollup)花朵盛開。
與其進行一次執行分片實驗,不如讓世界上的任何人都可以根據自己的需求自定義一個 Rollup,無論是任何用例。有些 Rollup 將使用 EVM,而其他一些將使用 Wasm。有些 Rollup 將使用欺詐證明,而其他一些將使用零知識證明。有些將成功,有些將失敗。但它們都將是無需許可的嘗試。
在哪裡適用 Fluent ?
在 Fluent 中,我們的使命是將 Wasm 執行引入以太坊。
我們認為 Wasm 團隊已經找到了一些方法,並且我們與以太坊的價值觀高度一致。我們認為 ZK 技術為解決問題開啟了一種新的方式,並且需要提供更好的開發者體驗,以解鎖對安全區塊空間的訪問。