通告 | 为什么我们相信 Wasm 可用作分布式应用开发的基础层

Ajian   |     |   2838 次阅读

最近有很多关于使用Wasm进行区块链开发的讨论,下面是一些讨论内容:

当前技术的问题

以太坊通过引入 EVM——以太坊智能合约运行环境——开创了分布式应用平台。虽然当时有充分的理由建立一个易于集成到区块链中的定制化 EVM,但是这种方法存在许多问题:例如,EVM 效率低下,因为它不支持小于 256 位的整数,任何 256 位的操作都必须由 CPU 通过 64 位或者 32 位的操作来执行。同时很有少人有能力扩展 EVM 及其所需工具。

WebAssembly:一种被广泛支持的、高性能的标准

我们相信 WebAssembly(Wasm),以及众多可以被编译成 Wasm 的语言是 EVM 的理想替代品,Wasm 是一种由 W3C 工作组开发的 web 浏览器标准,该工作组由来自 Google,Mozilla 以及其他浏览器的工作人员组成。它的目的是让代码可以被部署在任何浏览器,并得到相同的结果。Wasm 具有极高的性能——它在保持平台独立的同时被构建得尽可能接近原生机器码。它有助于小型二进制文件通过互联网传输到连接速度较慢的设备。无论是 Wasm 的编译团队还是标准化团队,都在这个项目上投入了很多年的工作。

你喜欢使用什么语言开发智能合约?

这可能是最重要的一点,wasm 拓展了智能合约开发者可用的编程语言,Rust,C/C++,C#,Typescript 以及 Kotlin 都可以用来开发智能合约。这意味着你可以使用任何你熟悉的编程语言开发智能合约,但是由于 Rust 运行时开销较小并具备固有安全属性,我们更偏向使用Rust。WebAssembly还具备如下优点:

  • 内存安全(Memory-safe),沙盒化(sandboxed)以及平台独立。
  • 支持 64 位以及 32 位整数操作,操作与 CPU 指令一一对应。
  • 通过移除浮点运算轻松实现确定性,这对于共识算法是必需的。
  • 被 LLVM 编译器基础结构项目支持,这意味着 Wasm 将受益于 LLVM 编译器十几年的优化。
  • 被谷歌,苹果,微软,Mozilla 和 Facebook 等大公司不断开发。

通向支持 Wasm 的道路

虽然 Wasm 自身受益于广泛的支持与集成,但是与 EVM 不同,它不是为了与区块链交互而构建的。Parity 以太坊客户端在 Wasmi 解释器中运行 Wasm 字节码,以保证 Wasm 代码能够访问区块链并与区块链进行交互。现在我们在 Kovan 测试网上测试 Wasm;在该测试网上,EVM 智能合约以及 Wasm 智能合约可以共存甚至互动。以太坊基金会还致力于在 Go 语言版本客户端的 geth 上实现 Wasm 支持,并研究 Wasm 在分片中的用途。

因为我们相信 Wasm 是分布式系统开发的基础,所以下一代区块链互操作性协议 Polkadot 正在从头开始构建支持 Wasm 的版本。Polkadot 智能合约将能够用可以被编译成 wasm 的任何语言进行开发。

我们期待安全智能合约开发变得更加容易的未来,在那时开发者可以使用他们知道的任何语言开发智能合约。

Wasm智能合约的其他资源


原文链接: https://www.parity.io/wasm-smart-contract-development/
作者: Alexandra Heller
翻译&校对: Aisling & 阿剑


你可能还会喜欢:

教程 | 智能合约灵活升级
教程 | Solidity 中 revert(), assert() 和 require() 的使用方法
干货 | Solidity 安全:已知攻击方法和常见防御模式综合列表,Part-1

 
0 人喜欢