智能合约不智能

作者:井通科技CTO 杨建新

区块链概念从2015年起源,截止目前为止已经如火如荼的发展了大概2年多。比特币是区块链的发源,从比特币产生了区块链的众多概念,其中有个重要的概念是智能合约

智能合约原是Nick Szabo1994年他的论文《智能合约》(Smart Contract)中首次提出智能合约的概念,Nick对智能合约的描述是“highly evolved practices of contract law and practice to the design of electronic commerce protocols between strangers on the Internet”,即指一个高度进化的合约条款和网络上陌生人之间的电子商务协议

2009年中本聪构建了“比特币”(Bitcoin),一个去中心化货币发行系统,中本聪的构建比特币的原因在比特币的第一个创世区块里面十分清楚的描述了,即避免现在货币发行系统的通货膨胀,实现一个无通货膨胀的货币发行系统,他采用了模拟的算法,模式现实世界中黄金的产生,构建了互联网黄金的产生机制。

在比特币系统中,所有的行为都是一个交易,交易需要验证相应的交易脚本。从这个脚本出发,区块链行业的人员看到了希望。Vitalik Buterin等人希望从比特币脚本的扩展方面进一步开发比特币系统的能力,所以Vitalik等构建了以太坊(Ethereum)。所以,Vitalik的想法是十分直接的,即要扩展比特币脚本系统,实现脚本系统的图灵完备,实现类似Nick提出来的智能合约,即以太坊的产生需求是十分明确的。为了纪念Nick,以太坊中以太币有个单位即是Szabo

时至今日,大家也渐渐的默认了现在的所谓智能合约。但是,Nick提出的智能合约有个极大的问题,即Nick并没有对智能合约的智能化进行准确的说明,他只是说了“highly evolved”,是一个十分宽泛的概念,可以说Nick对智能合约的说法并不严谨。

所以,Vitalik的需求是明确的,但是Vitalik要实现的智能合约的智能化,Nick并没有给出程序可以依据的标准,是以太坊自己确定的。

2016年末,Nick在微软做的讲演中提出的智能合约的12个应用场景,其中Nick对智能合约做了个简单的比喻,即智能合约是Vending Machine,即售卖机。这个比喻是和现在以太坊等实现的智能合约是一致的,即智能合约是需要外部驱动的,智能合约是没有心跳的。大家经常理解的智能合约,自动的执行,智能的执行,在现有的智能合约里面是实现不了的,即智能合约并不智能。

归结问题,因为Nick没有对智能合约的智能化进行严谨的定义,目前的智能合约实现不了智能化,智能通过外部的驱动来驱动智能合约的执行。

智能合约应用有两个特性:

  1. 分布式或者去中心化

  2. 智能化或者自动化

前者是后者的基础,后者是前者的提升。只实现了前者的,我们可以称为“服务合约”,即是一个种服务的分布式、去中心化。实现了智能合约的这两个特性,才可以称为智能合约。所以,目前以太坊、超级账本实现的均是服务合约,当然井通现在实现的也是服务合约。

智能合约的智能化需要专门的定义,就需要通过自动化理论进行严格的定义。智能化或者自动化的实现,需要通过自动机来实现,自动化理论对自动机的划分包括定确定状态自动机(Deterministic finite automataDFA)、不确定状态自动机(Nondeterministic finite automataNFA)、下推自动机(Pushdown automataPDA)、线性有界自动机(Linear bounded automataLBA)、图灵机(Turing machines)等等,当然比图灵机更高层次的自动机也是有的。目前,服务合约的实现基本在DFA阶段。通过对智能合约的自动化,进行严格的定义即可以为智能合约的发展打开更广阔的空间。

很多人会提出以太坊、超级账本,或者其他区块链底层技术公司实现的合约语言不就是图灵完备的吗,那为什么实现的智能化不是图灵的呢,或者不是图灵机的呢。因为图灵完备语言在现在的DFA里面是受限的,他的执行受各种因素的限制,包括公链环境、手续费、执行超时等,即语言是图灵的,但是实现的自动机并非图灵。

综上,目前智能合约基本还是服务合约模式,当然服务合约也是可以进行相应的产品构建,更智能化的智能合约,需要行业的进一步发展、推动。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页