最近越来越多的项目开始转向VNT使用的WASM,像EOS、Ontology,包括最初引入虚拟机EVM运行智能合约环境的以太坊,最近也开始转向使用WASM。
什么是WASM?
WASM ,全称:WebAssembly ,是一种可以使用非 Java 编程语言编写代码并且能在浏览器上运行的技术方案,也是自 Web 诞生以来首个 Java 原生替代方案。
EVM虽然有着较高的兼容性,但需要预编译,同时需要付出gas作为代价,有着很高的编程成本,这种程序本质上都是脚本程序,即由程序翻译指令并执行,而不是由本地机器CPU读取指令并执行,因此效率非常低。而Java的操作相对重复繁琐,在执行过程中耗时较长。和EVM及Java 相比,WASM是谷歌、苹果、微软三大竞争公司同时支持的一种中间代码(字节码), 被所有流行浏览器支持。同时所有其他语言(c, c++, java)编写的程序都可以编译成WASM字节码,基于此建立的应用层生态不仅可以让开发人员有着非常低的学习成本, 而且有着高性能的标准。
WASM有哪些对开发者友好的特点?
无疑,WASM 拓展了智能合约开发者可用的编程语言,这意味着你可以使用任何你熟悉的编程语言开发智能合约,并有着诸多对开发者友好的特点,例如:
1. 性能高效:WASM采用二进制编码,在程序执行过程中的性能优越;
2. 存储成本低:相对于文本格式,二进制编码的文本占用的存储空间更小;
3. 多语言支持:用户可以使用 C/C++/RUST/Go等多种语言编写智能合约并编译成WASM格式的字节码。
VNT Chain(维特链)基于WASM有哪些创新?
VNT Chain采用的是由VNT_P(公有链)+VNT_C(联盟链)+VNT_I(跨链)的聚合链技术架构,其中VNT_P可运行被编译为WASM格式的智能合约,而无需关心智能合约的编写语言。正是因为看到WASM的诸多优势及未来前景,VNT技术支撑方云象在VNT Chain设计之初,,就确定了基于WASM开发VNT Chain虚拟机的技术方案。基于原生的WASM,VNT Chain进行了以下创新及改进:
1. 改造原生 WASM中多线程、浮点数、异常处理等导致计算非确定性的设计,确保计算的确定性;
2、扩展对string、address、hash等数据类型的支持;
3、扩展opcode以支持标准库的方法;
4. 增加燃料(Gas)机制,解决了智能合约中的停机问题;
5. 提供沙箱运行环境,实现资源隔离,保障系统的安全性;
6. 提供编写智能合约所需的各种语言的类库;
7、支持合约调试功能;
8、兼容自主设计智能合约编写语言-Q语言。
基于对WASM语言的应用以及优化改造,VNT Chain的智能合约模块具备更高的兼容性与性能,同时拥有更强的安全性与灵活性。尤其是VNT Chain首创的形式化自我验证能力编程语言,将语言本身的类型系统与数学定理系统结合,并将语言的类型验证与形式化验证结合,为智能合约形式化安全验证提供强有力的支持。
WASM从最初公布不被看好,到现在被广泛使用,我们可以肯定未来它将作为分布式应用开发的基础层被运用到越来越多项目中。