虚拟机是联盟链必不可少的“组件”,PlatONE里的WASM有何优势?| 万向区块链小课堂
在支持智能合约的区块链里,为保持智能合约运行结果的准确性以及安全性,智能合约的运行环境就显得至关重要,因此虚拟机成为了区块链里不可或缺的“组件”。在这篇小课堂中:区块链爱好者必学的EVM,一文理解 | 万向区块链小课堂,我们了解了以太坊虚拟机EVM。
和以太坊不同的是,支持隐私计算的新一代联盟链PlatONE使用的是“WASM虚拟机”,其快速、安全、可移植等特点使开发者在编写智能合约的过程中更简单、更高效。
WASM虚拟机
WASM是⼀种基于堆栈式虚拟机的⼆进制指令格式,被设计为可以使用高级语⾔(例如:C/C++/Rust)直接编译成WASM中间字节码。WASM虚拟机已经被Google,Facebook,Microsoft等世界顶级互联网公司同时支持,同时也可以在所有流行的浏览器中运行。WASM虚拟机一开始设计的目的是用于解决Web程序日益严峻的性能问题,因其有以下优越的特性,被越来越多的非Web项目所采用。
WASM虚拟机的优势
1、快速、高效、可移植:通过利用常见的硬件能力,WASM代码在不同平台上能够以接近本地速度运行。
2、可读、可调试:WASM是一门低阶语言,但是它有一种人类可读的文本格式,这允许通过人工来写代码、看代码以及调试代码。
3、保持安全:WASM被限制运行在一个安全的沙箱执行环境中。像其他网络代码一样,它遵循浏览器的同源策略和授权策略。
4、不破坏网络:WASM的设计原则是与其他网络技术和谐共处并保持向后兼容。
PlatONE联盟链平台支持WASM虚拟机意味着开发智能合约不再局限于Solidity一门语言,同时可以使用多种高级语⾔,例如:C/C++/Rust等来编写智能合约,最后编译成WASM字节码就可以在PlatONE上运行,极大地降低了入门门槛和开发成本,同时也提高了智能合约的安全性。
且PlatONE联盟链平台同时支持WASM虚拟机与EVM虚拟机,充分降低开发者学习成本,其中WASM合约支持多种高级语⾔开发,编译成「.WASM」格式文件执行。触发WASM合约的交易由共识节点打包,全网节点重复执行验证。WASM合约的状态保存在公共账本中。
可验证合约的开发和发布跟WASM合约没有区别,最终也是编译成「 .WASM」格式文件执行。可验证合约的状态转换在链下由计算节点异步执行,计算完成后新的状态和状态转换证明提交到链上,全网节点可快速验证正确性并将新的状态更新到公共账本中。可验证合约可支持复杂、繁重的计算逻辑而不影响整条链的性能。
隐私合约同样支持高级语言开发,编译成「llvm ir」中间语言执行。隐私合约的输入数据保存在数据节点本地,由数据节点在链下以安全多方计算方式进行隐私计算,并提交计算结果到链上。
PlatONE-WASM虚拟机的创新与优化
WASM虚拟机在⼀开始的设计中其目标平台是浏览器,为了使WASM虚拟机更加适应区块链系统,PlatONE联盟链平台做了以下创新和优化:
1、改造原生WASM中浮点数导致计算非确定性的设计,确保计算的确定性;
2、扩展对address、hash等数据类型的支持;
3、通过import的方式以支持标准库的方法和提供区块链的功能方法;
4、通过import的方式提供区块链接口给智能合约使用,从而完成智能合约和区块链的交互;
5、增加Gas机制,解决了智能合约中的恶意的死循环攻击问题;
6、提供沙箱运行环境,实现资源隔离,使智能合约自身的崩溃不会影响到其他智能合约的运行和底层安全;
7、提供编写智能合约所需的各种语言的类库;
8、提供合约调试功能接口。
除WASM外,PlatONE还支持高度优化的BFT共识算法、支持使用多种主流高级编程语言开发合约、提供丰富的企业级部署工具等。更多PlatONE的技术解析,且听下回分解。
关联阅读:
未来已来,实现数据多方安全共享已成为数字经济时代的重中之重 | 万向区块链小课堂
