美文网首页区块链学习区块链研习社区块链研究
区块链中的智能合约和图灵完备

区块链中的智能合约和图灵完备

作者: 云天明ytm_ltd | 来源:发表于2017-06-11 10:30 被阅读273次

    智能合约(smart contract)

    “智能合约”是尼克·萨博1995年提出的概念:

    “一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。

    这里涉及几个关键词:
    承诺:签约双方的权利和义务
    协议:是承诺实现的技术语言
    数字形式:智能就是可编程,因此必须被计算机系统接受并且执行。
    有一个不错的比喻,智能合约有点类似数据库中的存储过程,但是比起存储过程更加智能。存储过程是sql语句集,被编译后存储在数据库中。用户使用时调出存储过程名称和参数来使用它。智能合约也是语句集,被编译后命名为合约名称,该合约在指定时间段满足触发条件后自动执行。

    智能合约是存储在区块链上的一段代码,它们可以被区块链上的交易所触发,触发后,这段代码可以从区块链上读取数据或者向区块链上写入数据。
    从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if-then语句。智能合约只是以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。

    理想状态下的智能合约,就是一台图灵机,是一段程序,甚至是人的化身,他能够与账本直接交互,最后成为经济活动的参与者,比如可以接收和存储价值,可以临时保管资产,按照事先的规则执行账本操作。
    这是理想状态下的智能合约,现实世界中还远未能如此智能。

    1)智能合约的应用依赖于基于区块链资产的数字化,但是目前来讲,这种数字化程度还远远不够。
    2)智能合约只能被动响应外部访问请求,根本无法做到内部合同条款的自动执行。外部请求一般都是中心化的,这进一步会极大降低智能合约作为一个去中心化系统的有效性。

    图灵完备(Turing completness)

    图灵完备是智能合约的理论基础。

    什么是图灵机?

    图灵机是1936年阿兰·图灵提出了一种抽象的计算模型。
    刘未鹏的解释:

    图灵机的定义形象的说来就像老式的电传机:一个读写头,一根纸带(可能任意长),读写头不断读取纸带上的符号,并根据内在的状态转换规则转换当前状态,同时进行一些动作,譬如插除或改写当前字符,向前/向后移动读写头或保持不动等。

    图灵机

    图灵机是那个年代用数学方式实现自动计算的实践。

    什么是图灵完备和图灵不完备?

    图灵完备意味着你的语言可以做到能够用图灵机能做到的所有事情,可以解决所有的可计算问题。
    图灵不完备也不是没有意义, 有些场景我们需要限制语言本身. 如限制循环和递归, 可以保证该语言能写的程序一定是终止的。
    理解一下,就是说图灵完备的语言,有循环执行语句,判断分支语句等。理论上能解决任何算法。但有可能进入死循环而程序崩溃。
    图灵不完备,应该是不允许或限制循环。可以保证,每段程序都不会死循环,都有运行完的时候。

    比特币脚本语言考虑了安全等问题,设计是图灵不完备的,而以太坊宣称自己采用的是智能合约语言,是图灵完备的。

    而图灵完备语言最显著的一个特点是支持循环,所谓循环,就是程序能不断执行下去。那么在区块链支撑的分布式环境下,矿工如何判断一个程序何时结束呢?而图灵计算理论,也有人证明过,要证明一个程序能不能终止是不可能的(图灵停机问题),所以这种“智能合约”语言需要保证所写出的程序不能存在死循环。
    这也是为什么以太坊语言会加入gas(汽油)的原因,通过加入gas,程序每个运算过程都会消耗一定成本,从而不会无限制地执行下去。

    参考内容:
    什么是智能合约?
    http://www.8btc.com/what-are-smart-contracts-in-search-of-a-consensus
    智能合约其实没那么智能 李白话日常公众号
    http://mp.weixin.qq.com/s/ajBrSn2RBCPUIzEF7RgUkg
    图灵机杂思,刘未鹏
    http://blog.csdn.net/pongba/article/details/621723
    以太坊“图灵完备”是什么意思?
    http://blog.sina.com.cn/s/blog_4ebdf17e0102wqyn.html
    什么是图灵完备智能合约 李白话日常公众号
    http://mp.weixin.qq.com/s/Mn80C-HtrqAGYl67pXrsKw

    推荐一篇文章(比较长,需要耐心),有助于理解上述概念:
    图灵机与计算问题

    相关文章

      网友评论

        本文标题:区块链中的智能合约和图灵完备

        本文链接:https://www.haomeiwen.com/subject/yxfhqxtx.html