WASM VS EVM,波卡的选择预示了公链未来
波卡公链以原生支持 WASM 和兼容 EVM 的开发便利,吸引了广大开发者,其生态发展迅速,为用户带来了诸多优秀的产品和项目。而以太坊 2.0 的推出,向 PoS 共识机制的转变,从 EVM 到 EWASM 的升级,也让我们看到公链巨头应对了波卡为首的新兴公链的挑战,预示 WASM 将成为下一个如同 EVM 一样的虚拟机标准范式。
公链的尽头好像都朝着 PoS、跨链去迈进,实现路径各不一致,但我们却能从中窥得发展规律和方向的一致性。今天从 WASM、EVM、eWASM 出发,看看 WASM 的优势何在,为何是下一代 DApp 开发的首选基础层。而选择了 WASM 的波卡,早已做出了公链未来发展的先见之举。
什么是以太坊虚拟机 (EVM)?
“以太坊虚拟机是用于在以太坊网络上运行各种智能合约的轻量级虚拟机。EVM 的功能不同于 Windows 等传统操作系统,一次只能在一台机器上运行。EVM 是建立在本机操作系统上的高级抽象,用于模拟物理机器。通过使用 EVM,同一平台可以在许多不同的操作系统和硬件架构上运行。该特性使虚拟机适用于以太坊等网络,全球不同机器上的不同客户端均可访问。EVM 可以模拟在物理 CPU 上执行的功能,并负责以太坊网络上的大部分功能。”
EVM 作为最初的虚拟机范式,为一定时期一定阶段下的公链提供了有效方案。其局限性在于低扩展和低效率:EVM 效率低下,因为它不支持小于 256 位的整数;任何 256 位操作都必须由 CPU 执行多个 64 位或 32 位操作。同时其支持的语言有限,也很少有人能够和能够扩展 EVM 和所需的工具。
什么是 WebAssembly (WASM)?
“WebAssembly 是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的是为诸如 C、C++ 和 Rust 等 低级源语言提供一个高效的编译目标。为客户端 App 提供了一种在网络平台以接近本地速度的方式运行多种语言编写的代码的方式;WebAssembly 在获得巨大性能优势和新特性的同时,而且还能使得各种功能保持对网络开发者的易用性。”
作为 EVM 的理想替代品,WASM 的创建带来了快速、高效和便携的虚拟机解决方案。WASM 可以利用通用硬件功能以“接近本地速度”执行。同时有着非常高的可操作性,易于开发者阅读和调试,可以手动查看、编写和调试代码。且能通过增强主机浏览器的权限策略和保持向后兼容性保障其安全性。
什么是“eWASM”
如其名称所示,eWASM (Ethereum WebAssembly) 就是以太坊 2.0 版的 WebAssembly。
eWASM 将有助于创建一个快速、可扩展且灵活的生态系统,鼓励开发人员在以太坊 2.0 协议之上构建复杂的智能合约。
EVM VS WASM(eWASM)
以太坊在 2020 年的 2.0 升级,高光的创新之举之一是基于 WASM 产生的 eWASM。这意味着某种程度上,WASM 成为了虚拟机新范式,其优势点可以从几个角度来分析。
WASM 有更快的速度。WASM 能够直接转换为编译后的代码,这使其加载速度更快,同时增加了每个块处理的事务数量。更快的速度使交易吞吐量大幅提升,同时降低了成本,解决了以太坊上高 gas 的痛点。
WASM 降低了甚至会消除对预编译(预编译合约)的依赖。由于 WASM 非常高效,开发人员可以创建高效、快速的智能合约,而无需担心潜在的硬分叉。其实以太坊 2.0 的升级方式还是靠常规的硬分叉,而波卡使用 Wasm 元协议,无需硬分叉就可以进行链的升级。
WASM 有更高的灵活性和互操作性,支持更多语言,提供比 EVM 更广泛的工具集。 WASM 支持 Rust、C 和 C++ 等传统语言。原生 JavaScript 引擎也支持 WASM,例如 Google 的 V8 引擎(基于 Node.js 和 Chromium 的浏览器)、微软的 Chakra 引擎(Microsoft Edge)和 Mozilla 的 Spidermonkey 引擎(Thunderbird 和 Firefox)。
WASM 之于波卡
从以上的优势可看出,WASM 很好地弥补了 EVM 的缺陷,为公链方和开发者们带来了更好的虚拟机范式。以互操作性为主要特点的波卡从头开始构建了 Wasm 支持,波卡的智能合约将能够以编译为 Wasm 的任何语言开发。同时也兼容了 EVM,带来了更多的可组合性,顺应 WASM 和 EVM 将持续很长一段时间的双线并行。
也如前文所说,Wasm 使得波卡能进行无分叉升级,以低成本高效率进行技术升级和创新。通过在 Substrate 中使用 Wasm,可以支持波卡和其众多平行链如 Kusama,在不进行硬分叉的情况下升级其 runtime 逻辑,有效解决了硬分叉慢、效率低、容易出错的既有问题,无需将多个升级打包到一个事件中从而导致其复杂性。波卡的 WASM 部署带来的升级优势非常明显,即升级可以是小的、独立的、具体的,带来更高的可控性和可操作性。
结语
EVM 之于以太坊和其他 EVM 公链,是部署和承载智能合约的基础,是众多 EVM 公链的虚拟机范式,以统一的标准带来了区块链行业的快速发展,为开发者提供了部署 Dapp 的基础设置,为用户带来了众多功能和应用的体验。时过境迁,WASM 的发展和替代 EVM 是必然。
而波卡对于 WASM 的选择,也早已让我们看到了区块链的未来方向——智能合约开发更加容易更加低门槛,开发者能够用已掌握的语言开发智能合约,公链能够拥有更高的拓展性和更便利的升级方式,我们期待着友好开放、技术创新的未来。
参考文献:
“Polkadot and Ethereum 2.0.”
https://wiki.polkadot.network/docs/learn-comparisons-ethereum-2
“Ethereum Virtual Machine Explained.”
www.mycryptopedia.com/ethereum-v
“eWasm Design Overview and Specification.”
github.com/ewasm/desig
“Web Assembly Concepts.”
developer.mozilla.org/en-US/docs/
关于我们
One Block+ 是中国最大的 Substrate 技术开发者社区,也是 Parity 在亚洲唯一的运营合作伙伴,波卡生态早期项目的创始人、CTO、核心开发者大部分都来自 One Block+ 社区。
Twitter: https://twitter.com/OneBlock_
Medium: https://medium.com/@OneBlockplus
Telegram: https://t.me/oneblock_dev
Discord: https://discord.gg/z2XZZWEcaa
Bilibili: https://space.bilibili.com/1650224419
YouTube: https://www.youtube.com/channel/UCWo2r3wA6brw3ztr-JmzyXA
评论