虚拟机是联盟链必不可少的“组件”,PlatONE里的WASM有何优势?| 万向区块链小课堂

共 1768字,需浏览 4分钟

 ·

2021-05-12 04:37

在支持智能合约的区块链里,为保持智能合约运行结果的准确性以及安全性,智能合约的运行环境就显得至关重要,因此虚拟机成为了区块链里不可或缺的“组件”。在这篇小课堂中:区块链爱好者必学的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的技术解析,且听下回分解。


关联阅读:

未来已来,实现数据多方安全共享已成为数字经济时代的重中之重 | 万向区块链小课堂


End
※———点击下方名片 关注我们———※
长按识别下方二维码,加入万向区块链
多个核心岗位在招,薪资福利优厚
浏览 47
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报