原文标题:《知道创宇区块链安全实验室 |一文读懂 WebAssembly (WASM)智能合约》 智能合约开发语⾔已经被 Solidity 统治了很⻓一段时间,⽤于开发可以在以太坊虚拟机 EVM 上运⾏的智能合约。不过,Solidity 有⼀些严重的问题,包括算术溢出、类型错误以及曾经冻结了 3 亿美元的 delegatecall 漏洞。所有这些漏洞都是在开发语⾔层⾯存在的问题。换句话说,如果有⼀个更优越的开发语⾔,本应该创造出更安全的智能合约。因此, WebAssembly (WASM)智能合约应运而生,知道创宇区块链安全实验室从技术安全的角度,带你快速探析备受欢迎的 WebAssembly (WASM)智能合约 。 什么是 WebAssembly (WASM)智能合约?WebAssembly (简称 WASM )是⼀种为栈式虚拟机设计的⼆进制指令集。WASM 被设计为可供类似 C/C++/Rust 等⾼级语⾔的平台编译⽬标。最初设计⽬的是解决 JavaScript 的性能问题。WASM 是由 W3C 牵头正在推进的 Web 标准,并得到了⾕歌、微软和 Mozilla 等浏览器⼚商的⽀持。 WASM 具有运⾏⾼效、内存安全、⽆未定义⾏为和平台独⽴等特点,经过了编译器和标准化团队多年耕耘,⽬前已经有了成熟的社区。在区块链领域,包括本体在内,当前已经有⼀些公链项⽬正准备⽀持使⽤ WASM 来运⾏智能合约。 WebAssembly 简要来说有以下三个特点 :
当前的以太坊虚拟机按顺序处理交易。以太坊⽹络上的每个节点执⾏交易并将其存储在区块链上。为了允许通过分⽚进⾏ PoS 和并⾏交易处理 , 以太坊团队计划构建⼀个名为 eWASM 的新虚拟机。 根据 eWASM 的规范 :「要真正使以太坊作为世界计算机 , 我们需要有⼀个⾮常⾼性能的虚拟机。当前的虚拟机体系结构是原始性能的最⼤阻碍因素之⼀。WebAssembly 的⽬标是利⽤各种平台上可⽤的通⽤硬件功能 , 以接近本机速度执⾏。这将为需要性能 / 吞吐量的各种⽤途打开⼤⻔。」 值得注意的是,eWASM 不是⼀个智能合约开发语⾔,⽽是⼀个编译器的⽣成⽬标,它允许以太坊开发者使⽤其他语⾔(例如 Rust、C++ 等)开发智能合约并编译为以太坊接受的 WebAssembly。 (责任编辑:admin) |