为什么我们相信 Wasm 可用作分布式应用开发的基础层
笨笨笨丫头2017
发表于 2022-11-30 16:39:04
93
0
0
###当前技术的问题
以太坊通过引入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的任何语言进行开发。
我们期待安全智能合约开发变得更加容易的未来,在那时开发者可以使用他们知道的任何语言开发智能合约。
成为第一个吐槽的人