区块链技术中的智能合约与虚拟机的误解

区块链技术和智能合约的结合是非常好的形式,区块链具有去中心化、难以篡改、透明可追踪等优点,天然适用于智能合约。智能合约的确是一个令人激荡的事物,因为区块链的普及而名声大噪。

本文来自微信公众号“沈阳四块科技”。

对很多具有计算机技术背景的人来说,智能合约可能是区块链技术里最令人感兴趣的部分。单听其名称,智能合约就会给人以无限的应用遐想。过去几年里,可以说智能合约是我们接触到的区块链领域最容易打动客户的理念,然而不幸的是,这往往也是客户最容易误解的概念。智能合约有着无限的可能性,但在今天它的实现还有很多局限,正确认识智能合约的能与不能、现状和未来,有助于我们思索和决策在自己的业务系统中应该如何定位和使用智能合约。

智能合约的声名鹊起主要得益于以太坊的成功,而以太坊是用虚拟机的方式来实现其智能合约的,这导致很多人认为以太坊的实现方式是唯一方式,从而引发了对区块链虚拟机的各种误解。

误解一:区块链必须支持智能合约

区块链技术和智能合约的结合是非常好的形式,区块链具有去中心化、难以篡改、透明可追踪等优点,天然适用于智能合约。智能合约的确是一个令人激荡的事物,因为区块链的普及而名声大噪。然而,智能合约与区块链是两个相互独立的事物,并不互相依存,区块链本身未必需要支持智能合约,也并非所有的应用场合都需要智能合约。

误解二:区块链应用就是智能合约本身

这一误解可能源于以太坊的“下一代智能合约与去中心化应用的平台”这一定位宣传过于成功,让很多人在智能合约和应用之间画上了等号。

真正了解智能合约之后,人们就会发觉智能合约其实只是一个区块链应用中的一小部分,要构建一个让最终用户能够完整体验的应用,光靠智能合约本身通常是不够的,还需要其他业务逻辑、界面逻辑等的支持。

360截图16251112669372.png

误解三:智能合约必须是程序代码

以太坊的智能合约概念成功让很多人以为智能合约必须是程序代码,但实际上这是一种误解。以太坊的智能合约引入了过程性代码,这一设计方式有很强的灵活性,但导致这种智能合约的使用只能由软件工程师来完成。其实,智能合约的实现可以有多种方式,把智能合约用程序代码来定义只是一种方式。未来的智能合约一定会出现更多种形态,例如表格方式、规则描述方式、可视化方式。

误解四:支持智能合约必须使用虚拟机

这也是人们目睹以太坊风靡之后产生的误解。区块链的共识机制要求所有参与者的计算结果保持一致,但各节点可能会因为各种原因输出不同的结果。以太坊为了让所有节点保持一致写了一个虚拟机,就是为了实现智能合约代码的一致性,并让以太坊的智能合约在这个容器里面运行。然而,理论上虚拟机并不是支持区块链运行智能合约的必要条件。

区块链的智能合约需要在一个资源隔离的环境中运行,但这个环境不局限于虚拟机。只要达到一个沙盒执行环境标准(可以通过命名空间的隔离),保证合约和合约之间、合约和宿主系统之间进行了有效的资源隔离就可以实现。而智能合约是用户编写的,需要预防恶意或故障智能合约的不良影响。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论