以太坊中的图灵完备:DApp没了我是万万不行的

其实有你也不一定行。

以太坊中的图灵完备:DApp没了我是万万不行的

在了解区块链的过程中,我们经常会听到介绍说以太坊是图灵完备的区块链平台。图灵完备一般作为一个特点用来形容一个系统或者一套语言,这么说吧,我们“人”本身也可以说是图灵完备的,我们每一个会决策、会思考的人,都可以抽象地看成一个图灵机,就像李笑来曾经说的,“每个人都有自己的操作系统,因为有元认知能力,还可以自己升级操作系统。”

但是,这么简单粗暴地理解当然是不够的,下面小K君给大家详细讲解到底什么是图灵机和图灵完备。

以太坊中的图灵完备:DApp没了我是万万不行的

什么是图灵完备?

说到图灵完备一般得先提到图灵机的概念,图灵机是英国数学家阿兰·麦席森·图灵在1963年提出的、为了研究可计算问题而构思的抽象计算模型——将人们传统的使用纸笔进行数学运算的过程,进行抽象,由一个虚拟的机器替代人们进行无数次的数学运算。这个虚拟的机器就是图灵机,也就是现在计算机的雏形。

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

以太坊中的图灵完备:DApp没了我是万万不行的

图灵机与数学家图灵

所以图灵完备(Turing Complete)原本是来自计算机的概念,是程序员编写的各种代码语言,再加上一种能在图灵机这种虚拟机中完美地运算的运算规则,因此满足这样要求的逻辑系统、装置或者编程语言就叫图灵完备。

简而概之,图灵完备的意思就是可以做到图灵机所能做到的所有事情,解决所有的可计算问题的逻辑系统、装置或者编程语言就叫做图灵完备。

根据图灵机与图灵完备的定义,图灵完备的语言有循环执行语句、判断分支语句等,理论上能解决任何算法。那么它的一个显著特点就是支持程序循环不断地运行下去。缺点就是其有可能进入死循环而导致程序崩溃。

那么相反,图灵不完备就是不允许或限制循环,可以保证每段程序都不会死循环,都有运行完的时候。

那么在区块链支撑的分布式环境中,图灵完备是如何应用在区块链中的?它解决了区块链的什么问题?

为什么区块链行业需要图灵完备?

说到区块链,第一个肯定想到比特币网络。我们都知道,一直到目前为止比特币系统上是几乎不支持开发程序应用的,这是因为当初中本聪出于安全问题的顾虑,在设计比特币时只采用了一种堆栈语言,不能做到图灵机所能做到的所有事情,所以我们说比特币系统是图灵不完备的。

不过比特币这样的非图灵完备的区块链代码协议的优点是很安全,从2009年诞生至今近10年的时间里,区块链中发生过无数起黑客攻击事件,但比特币几乎从未因本身脚本原因出现过资金损失。

那么问题来了,比特币虽然安全,但是在其系统上不能开发复杂的逻辑程序,这就使得早些年区块链的落地场景和应用十分少。而随着区块链的发展,这些需求不断提上议事日程,人们开始逐渐需要能够支持区块链应用开发运行的系统出现,于是区块链就引入了图灵完备的概念。

在比特币之后,为了能实现更丰富的功能和使用场景,一些图灵完备的区块链系统应运而生。

其中众所周知的且最具代表性的就是以太坊。以太坊采用的是智能合约语言,它是一个图灵完备的区块链系统,其虚拟机可运行智能合约,理论上能够解决所有的可计算问题,从而尽最大限度满足各种现实应用场景的开发。程序员既可以利用以太坊的智能合约来编写数字资产的代码,创建新的数字资产;也可以通过编写智能合约的代码,创造非数字资产的功能,例如目前市场上的各种DApps。

以太坊中的图灵完备:DApp没了我是万万不行的

总的来说,假如我们把比特币的区块链当做是一种数字资产的协议技术,那么以太坊的区块链则可以说是这个数字资产协议的协议。

图灵完备这一技术的特性使得以太坊上从一开始就涌现了大批商业应用,区块链落地场景也逐渐增多。目前已有远超200个基于以太坊的应用诞生,而随着摩根大通、微软、英特尔、三星、丰田等众多企业巨头的加盟,以太坊已逐渐从一开始的虚拟代码技术,成为了虚拟世界最大的一条“高速公路”,被赋予了巨大的创新商业价值,所以以太坊一般也被称为区块链2.0。

但是,与此同时,图灵完备有陷入死循环的风险。所以以太坊为了保证所写出的程序不存在死循环,就在“智能合约”语言中加入了gas的概念,通过加入gas费用,程序每个运算过程都会消耗一定成本,就不会无限制地执行下去。

总结

以太坊虽说可以搭载很多应用,但是复杂的协议在设计和编码过程中难以避免人工失误,因此常常被黑客找到漏洞发起攻击,损失巨大。比如著名的The DAO事件,The DAO资金池中价值6000多万美元的以太币在6个小时里被洗劫一空。

不管怎样,技术是提供便利的,但无论什么技术都多少有双面性,不论是图灵完备还是区块链。图灵完备的开发语言将仍然是未来的主流,因为大多数项目都希望实现多样的功能,有丰富的使用场景。但是不管做什么项目,安全性一定是不容忽视的考虑因素。

以太坊中的图灵完备:DApp没了我是万万不行的

以上就是我们本期科普的全部内容啦!如果您对区块链有什么看法或是疑问,可以在后台留言,小K君会为大家答疑解惑哦,欢迎大家留言提问。

- END -

以太坊中的图灵完备:DApp没了我是万万不行的

生成图片
10

发表评论

以太坊中的图灵完备:DApp没了我是万万不行的

星期日 2019-04-28 19:40:45


以太坊中的图灵完备:DApp没了我是万万不行的

在了解区块链的过程中,我们经常会听到介绍说以太坊是图灵完备的区块链平台。图灵完备一般作为一个特点用来形容一个系统或者一套语言,这么说吧,我们“人”本身也可以说是图灵完备的,我们每一个会决策、会思考的人,都可以抽象地看成一个图灵机,就像李笑来曾经说的,“每个人都有自己的操作系统,因为有元认知能力,还可以自己升级操作系统。”

但是,这么简单粗暴地理解当然是不够的,下面小K君给大家详细讲解到底什么是图灵机和图灵完备。

以太坊中的图灵完备:DApp没了我是万万不行的

什么是图灵完备?

说到图灵完备一般得先提到图灵机的概念,图灵机是英国数学家阿兰·麦席森·图灵在1963年提出的、为了研究可计算问题而构思的抽象计算模型——将人们传统的使用纸笔进行数学运算的过程,进行抽象,由一个虚拟的机器替代人们进行无数次的数学运算。这个虚拟的机器就是图灵机,也就是现在计算机的雏形。

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

以太坊中的图灵完备:DApp没了我是万万不行的

图灵机与数学家图灵

所以图灵完备(Turing Complete)原本是来自计算机的概念,是程序员编写的各种代码语言,再加上一种能在图灵机这种虚拟机中完美地运算的运算规则,因此满足这样要求的逻辑系统、装置或者编程语言就叫图灵完备。

简而概之,图灵完备的意思就是可以做到图灵机所能做到的所有事情,解决所有的可计算问题的逻辑系统、装置或者编程语言就叫做图灵完备。

根据图灵机与图灵完备的定义,图灵完备的语言有循环执行语句、判断分支语句等,理论上能解决任何算法。那么它的一个显著特点就是支持程序循环不断地运行下去。缺点就是其有可能进入死循环而导致程序崩溃。

那么相反,图灵不完备就是不允许或限制循环,可以保证每段程序都不会死循环,都有运行完的时候。

那么在区块链支撑的分布式环境中,图灵完备是如何应用在区块链中的?它解决了区块链的什么问题?

为什么区块链行业需要图灵完备?

说到区块链,第一个肯定想到比特币网络。我们都知道,一直到目前为止比特币系统上是几乎不支持开发程序应用的,这是因为当初中本聪出于安全问题的顾虑,在设计比特币时只采用了一种堆栈语言,不能做到图灵机所能做到的所有事情,所以我们说比特币系统是图灵不完备的。

不过比特币这样的非图灵完备的区块链代码协议的优点是很安全,从2009年诞生至今近10年的时间里,区块链中发生过无数起黑客攻击事件,但比特币几乎从未因本身脚本原因出现过资金损失。

那么问题来了,比特币虽然安全,但是在其系统上不能开发复杂的逻辑程序,这就使得早些年区块链的落地场景和应用十分少。而随着区块链的发展,这些需求不断提上议事日程,人们开始逐渐需要能够支持区块链应用开发运行的系统出现,于是区块链就引入了图灵完备的概念。

在比特币之后,为了能实现更丰富的功能和使用场景,一些图灵完备的区块链系统应运而生。

其中众所周知的且最具代表性的就是以太坊。以太坊采用的是智能合约语言,它是一个图灵完备的区块链系统,其虚拟机可运行智能合约,理论上能够解决所有的可计算问题,从而尽最大限度满足各种现实应用场景的开发。程序员既可以利用以太坊的智能合约来编写数字资产的代码,创建新的数字资产;也可以通过编写智能合约的代码,创造非数字资产的功能,例如目前市场上的各种DApps。

以太坊中的图灵完备:DApp没了我是万万不行的

总的来说,假如我们把比特币的区块链当做是一种数字资产的协议技术,那么以太坊的区块链则可以说是这个数字资产协议的协议。

图灵完备这一技术的特性使得以太坊上从一开始就涌现了大批商业应用,区块链落地场景也逐渐增多。目前已有远超200个基于以太坊的应用诞生,而随着摩根大通、微软、英特尔、三星、丰田等众多企业巨头的加盟,以太坊已逐渐从一开始的虚拟代码技术,成为了虚拟世界最大的一条“高速公路”,被赋予了巨大的创新商业价值,所以以太坊一般也被称为区块链2.0。

但是,与此同时,图灵完备有陷入死循环的风险。所以以太坊为了保证所写出的程序不存在死循环,就在“智能合约”语言中加入了gas的概念,通过加入gas费用,程序每个运算过程都会消耗一定成本,就不会无限制地执行下去。

总结

以太坊虽说可以搭载很多应用,但是复杂的协议在设计和编码过程中难以避免人工失误,因此常常被黑客找到漏洞发起攻击,损失巨大。比如著名的The DAO事件,The DAO资金池中价值6000多万美元的以太币在6个小时里被洗劫一空。

不管怎样,技术是提供便利的,但无论什么技术都多少有双面性,不论是图灵完备还是区块链。图灵完备的开发语言将仍然是未来的主流,因为大多数项目都希望实现多样的功能,有丰富的使用场景。但是不管做什么项目,安全性一定是不容忽视的考虑因素。

以太坊中的图灵完备:DApp没了我是万万不行的

以上就是我们本期科普的全部内容啦!如果您对区块链有什么看法或是疑问,可以在后台留言,小K君会为大家答疑解惑哦,欢迎大家留言提问。

- END -

以太坊中的图灵完备:DApp没了我是万万不行的