矩阵元 |【技术矩阵】PlatONE联盟链平台——WASM虚拟机详解

本文转载自微信公众号 :矩阵元

原创:矩阵元

区块链系统为我们提供了分布式的可信存储,而智能合约的出现为我们提供了分布式的可信计算能力,让区块链商用落地进一步推进,虚拟机则成为了联盟链平台不可或缺的组成模块。WASM虚拟机是PlatONE联盟链平台运用的新型虚拟机模块,其快速、安全、可移植等特点使开发者在编写智能合约的过程中更简单、更高效。

| PlatONE WASM虚拟机 |

WASM是⼀种基于堆栈式虚拟机的⼆进制指令格式,被设计为可以使用高级语⾔(例如:C/C++/Rust)直接编译成WASM中间字节码。WASM虚拟机已经被Google,Facebook,Microsoft等世界顶级互联网公司同时支持,同时也可以在所有流行的浏览器中运行。WASM虚拟机一开始设计的目的是用于解决Web程序日益严峻的性能问题,因其有以下优越的特性,被越来越多的非Web项目所采用。

WASM虚拟机具有以下优势:

  • 快速、高效、可移植:通过利用常见的硬件能力,WASM代码在不同平台上能够以接近本地速度运行。 
  • 可读、可调试:WASM是一门低阶语言,但是它有一种人类可读的文本格式,这允许通过人工来写代码、看代码以及调试代码。
  • 保持安全:WASM被限制运行在一个安全的沙箱执行环境中。像其他网络代码一样,它遵循浏览器的同源策略和授权策略。 
  • 不破坏网络:WASM的设计原则是与其他网络技术和谐共处并保持向后兼容。

PlatONE联盟链平台支持WASM虚拟机意味着开发智能合约不再局限于Solidity一门语言,同时可以使用多种高级语⾔,例如:C/C++/Rust等来编写智能合约,最后编译成WASM字节码就可以在PlatONE上运行,极大地降低了入门门槛和开发成本,同时也提高了智能合约的安全性。

且PlatONE联盟链平台同时支持WASM虚拟机与EVM虚拟机,充分降低开发者学习成本,其中WASM合约支持多种高级语⾔开发,编译成「.WASM」格式文件执行。触发WASM合约的交易由共识节点打包,全网节点重复执行验证。WASM合约的状态保存在公共账本中。

可验证合约的开发和发布跟WASM合约没有区别,最终也是编译成「 .WASM」格式文件执行。可验证合约的状态转换在链下由计算节点异步执行,计算完成后新的状态和状态转换证明提交到链上,全网节点可快速验证正确性并将新的状态更新到公共账本中。可验证合约可支持复杂、繁重的计算逻辑而不影响整条链的性能。

隐私合约同样支持高级语言开发,编译成「llvm ir」中间语言执行。隐私合约的输入数据保存在数据节点本地,由数据节点在链下以安全多方计算方式进行隐私计算,并提交计算结果到链上。

| WASM虚拟机的创新与优化 |

WASM虚拟机在⼀开始的设计中其目标平台是浏览器,为了使WASM虚拟机更加适应区块链系统,PlatONE联盟链平台做了以下创新和优化:

  • 改造原生WASM中浮点数导致计算非确定性的设计,确保计算的确定性; 
  • 扩展对address、hash等数据类型的支持; 
  • 通过import的方式以支持标准库的方法和提供区块链的功能方法; 
  • 通过import的方式提供区块链接口给智能合约使用,从而完成智能合约和区块链的交互; 
  • 增加Gas机制,解决了智能合约中的恶意的死循环攻击问题; 
  • 提供沙箱运行环境,实现资源隔离,使智能合约自身的崩溃不会影响到其他智能合约的运行和底层安全; 
  • 提供编写智能合约所需的各种语言的类库; 
  • 提供合约调试功能接口。

本文转载自https://mp.weixin.qq.com/s/m7jRHLYfOJFc6FS-uc9stw

(0)
矩阵元的头像矩阵元编辑
上一篇 2 2 月, 2021 10:12
下一篇 3 2 月, 2021 09:54

相关推荐

发表回复

登录后才能评论