波卡主要支持的WebAssembly(Wasm)是一种什么工具?

Polkadot生态研究院
个人专栏
热度: 58415

WebAssembly不仅为开发者提供了便捷和更多可能性,还将是智能合约的未来。

虚拟机“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第30期,了解一种便捷、安全的开发者工具WebAssembly。


此前,关于使用Wasm进行区块链开发的话题,就引起了广泛的讨论。

EVM是区块链常用的虚拟机,也是以太坊的智能合约运行环境,虽然EVM的出现能使得开发人员更便捷的部署智能合约,但其也有很多局限性。

为了解决这些局限性,一些新兴的公链开始使用WebAssembly技术,那么这个WebAssembly是什么呢?


什么是WebAssembly?

WebAssembly,简称Wasm。官方的定义是:一个可移植、体积小、加载快并且兼容Web的全新格式。

准确来说,Wasm是一种为基于堆栈的虚拟机设计的二进制指令格式。Wasm被设计为用类似C/C++/Rust等高级语言的平台目标,从而可以在Web上部署客户端和服务器应用程序。

Wasm是由万维网联盟(W3C)创建和定义的,最早是为Web而推进的标准,还得到了谷歌、微软、苹果和Mozilla等厂商的支持。最初Wasm的设计目的是为了解决JavaScript(一种编程语言)的性能问题。


WebAssembly有什么特点?

WebAssembly作为一个编译目标而不是手写的几行代码,它能将C、C++、Java等编程语言编译为机器码,这个过程中省略了转换器。因此,Wasm有着快速高效、内存安全等特点,并且十分开放获得了许多开发者的喜爱

高效:Wasm有着一套完整的语义,它的二进制格式加载速度快并且能在很大程度上减小代码包的体积,最终凭借硬件能力以达到原生执行效率。

安全性:Wasm是运行在一个沙箱化的执行环境中,甚至可以和当前的Java虚拟机共享一套环境。通过严格遵守主机浏览器的权限策略和保持向后兼容性来实现Web环境中的安全性。

开放:首先Wasm具备人类可读的文本格式,这种非常规整的文本格式可以用来测试、实验、调试、学习、优化以及编写,并且Wasm的开放标准不受任何一家厂商控制。


虚拟机


为什么使用WebAssembly?

WebAssembly是一种与平台无关的二进制格式,这意味着它将在其操作的任何机器上运行相同的指令。区块链需要确定性,以便在点对点网络中的所有节点上有可靠的状态转换更新,而无需强制每个节点运行完全相同的硬件。

Wasm很适合在各种各样的机器中实现可靠性。Wasm既高效又快捷。这种效率意味着它可以作为一个代码块上传到链上,而不会造成太多的状态膨胀,同时保持其以接近原生速度执行的能力。

其次,硬分叉作为升级区块链的标准方法,由于需要离线协调的级别,所以这种升级速度缓慢、效率低下且容易出错,因此,它倾向于将许多升级捆绑到一个大规模事件中。

而将Wasm使用在基于Substrate框架的波卡或Kusama中,这些链能够升级其Runtime逻辑而无需硬分叉。通过在链上部署Wasm,并让节点在特定的块高度自动执行新逻辑,升级可以是小型的、孤立的、非常具体的


后记

WebAssembly作为一个广泛支持的高性能标准,也得到了波卡创始人Gavin Wood的肯定,Gavin认为,“WebAssembly是智能合约的未来”

这种格式还在快速发展的过程中,未来还会是分布式系统开发的基础。许多公链也在逐渐使用Wasm技术。而对于开发者而言,波卡智能合约可以用任何编译成Wasm的语言进行开发,而智能合约开发也会变得更加容易。

波卡是采用Wasm技术的,当然波卡还能兼容EVM,横跨新老技术的波卡其生态发展的后劲十足,值得期待。


欢迎大家加入我们Polkadot生态研究院的电报:https://t.me/polkadot_eri

欢迎大家访问波卡生态研究院的Mirror地址:https://mirror.xyz/0x9A259b3a2316281Cc948cE2Cf1Ac610a79844f05

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。