骨肉相连:虚拟机和智能合约

Posted 区块链星际社

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了骨肉相连:虚拟机和智能合约相关的知识,希望对你有一定的参考价值。

我们先再叙述叙述,什么是智能合约?

智能合约是1994年由尼克萨博首次提出的理念,是一种旨在以信息化方式传播、验证或执行合约的计算机协议。智能合约的最大优势是,——在不需要第三人见证作媒介的情况下,保证交易双方的可信任程度。在区块链技术的帮助下,这些交易可追溯、不可逆、不可改。因此,智能合约技术在这样的特性优势下被广泛地使用。

那么,什么又是虚拟机(EVM)?

智能合约的运行需要在一个资源隔离的环境中,以保证所有的节点即使拥有不同的配置等环境,其运行结果也是统一的。这种隔离的环境就是虚拟机。物理计算机通过虚拟方式模仿真实环境,成为一个依托在真实设备上的模拟设备,并调用真实设备的部分或完整硬件效能,最终目的是和宿主机环境隔离。最常见的虚拟机就是Vmware,除此之外,许多手机和主机模拟器也是一种虚拟机。

区块链虚拟机建立在区块链上的代码运行环境,其主要作用是处理智能合约。一般来说,出于费用和性能考虑,区块链虚拟机的架构都相对轻量级,并不会模拟完整的计算机。区块链虚拟机是一个完全独立、和宿主机完全隔离的运行环境。区块链虚拟机为智能合约的实现提供了基础,使得智能合约在区块链虚拟机内部运行。一般来说,区块链虚拟机会支持不同的编程语言,例如EVM支持Solidity等。

随着区块链应用对虚拟机以及智能合约的要求的增多,区块链虚拟机在技术上也在逐渐的进行完善,在以EOS为代表区块链3.0中,虚拟机主要在以下几个方面有所发展:智能合约多语言的支持;更快的运行速度;更加丰富的系统程序支持;虚拟机安全。

发展到区块链3.0的时代,虚拟机的架构总体来说有两种:一种是解释器类型,其多基于栈,一种是JIT技术类型。EOS代码中提供了一个WASM-JIT的实现,该实现上引入了寄存器的概念到其中。通过将wasm文件内容转化为IR中间语言形式,最后利用LLVM-JIT技术实现代码的运行。其中选用wasm作为智能合约的实现格式,一是考虑到智能合约与虚拟机生态问题,支持力度,二是考虑到目前针对wasm的技术方案相对成熟。

随着对多语言的支持,更多的智能合约将部署到区块链虚拟机上,这大大的催生了周边相关调试环境,集成开发环境等相关方向的发展。但是这也带来了一部分问题,例如智能合约的审计,虚拟机运行时安全问题也慢慢的浮出水面。同时目前多应用场景也使虚拟机的整体架构发生改变,例如利用虚拟机实现MapReduce计算模型,机器学习以及人工智能引入到虚拟机计算中去,区块链中的虚拟机的角色在慢慢地发生改变。

以上是关于骨肉相连:虚拟机和智能合约的主要内容,如果未能解决你的问题,请参考以下文章

什么是智能合约

Solidity汇编开发简明教程

一文读懂:XVM虚拟机

以太坊智能合约虚拟机(EVM)原理与实现

区块链 智能合约 虚拟机 EVM 资料总结

区块链 智能合约 虚拟机 EVM 资料总结