2018-08-05小白学区块链——图灵完备

前文说了智能合约是编写在区块链上的一套图灵完备的数字合约,那么什么是图灵完备呢?今天我们就了解一下什么是图灵完备。

1,图灵是谁

图灵就是艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵实验,至今,每年都有试验的比赛。此外,图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。

2.图灵机

图灵机,又称图灵计算、图灵计算机,是由数学家艾伦·麦席森·图灵提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。

简单理解图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。

3.图灵完备

图灵完备就是指程序员编写的各种代码语言,再加上一种运算规则,能再图灵机这种虚拟机中完美的运算,这些编程语言就叫图灵完备。图灵完备的代表是以太坊,以太坊这个用区块链的方式连接了全球所有的机器,组成了一个强大的硬件基础,在以太坊系统中,设置了虚拟计算程序。以太坊做了一个内置了多种编程语言的区块链协议,这些编程语言都是图灵完备的,可以支持条件分支、循环、跳转、函数调用等复杂的运算逻辑,理论上可以在以太坊区块链上运行任意的应用。

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

你可能感兴趣的:(2018-08-05小白学区块链——图灵完备)