以太坊 一文读懂区块链之— 什么是图灵完备

CryptoV12 · 2019年08月14日 · 最后由 13306087218 回复于 2019年08月28日 · 505 次阅读

我们在看到区块链或比特币、以太坊相关的资料的时候,总是看到资料会提到,比特币不是图灵完备的,以太坊是图灵完备的。

那么,图灵完备是什么意思呢?

要解释清楚这个概念其实并不容易,需要读者了解很多其他的概念,如自动机、状态机等,但本文不会长篇大论对这些概念都去介绍,而是用尽量最简单的语言,使读者有一个简单的概念。

最简单的说法是,图灵完备意味着你的系统可以做到图灵机能做到的所有事,即可以解决所有的可计算的问题。

简单的理解就是,如果一个语言是图灵完备的,需要该语言支持循环语句,支持分支语句,支持循环和递归,理论上可以解决任何算法,但也有可能进入死循环而导致系统崩溃。

那么图灵不完备,就是限制了循环或者条件判断或递归,可以保证系统的每段程序都不会陷入死循环,都会有运行结束的时候。

所有的通用编程语言和现代计算机的指令集都是图灵完备的,也是当前这些通用语言或指令“可用”的最基本要求。

比特币脚本不是图灵完备的,因为它没有条件判断语句,不能执行循环,也不会产生递归。

以太坊是图灵完备的,因为它支持刚刚提到的这些特性,这可能也是使以太坊迅速发展壮大原因之一吧。但这并不是说图灵不完备就是不好的,而是各有各自的运行场景,各自满足了各自的某方面的需求。

比如从2008至2009年面世起,图灵不完备的比特币,已经近乎完美地运行了近十年,几乎没出过什么大的问题,也已经成为了目前市值最大的虚拟货币。

当然了,图灵完备只保证计算的可行性,但不会保证计算的效率,也不保证编程语言的可理解性和可维护性等。

就像比特币,虽然是图灵不完备的,但是为了解决安全性、重复支付等问题,采用了POW模式(挖矿),每秒只支持7笔左右的交易,这使它目前几乎不可能成为一个通用的支付工具,因为用的人一多起来,比特币网络就被卡成翔了,转一次币几天到不了账的情况也不是没有发生过。

而图灵完备的以太坊虽然处理交易的速度比比特币快得多,但在status众筹的时候依然卡得让人想捶电脑。

另外,也不是所有问题都是图灵完备就可以解决的,这里不再深入展开,有兴趣的读者可以自行探索,也欢迎随时与交流。

原文链接:https://bitcointalk.org/index.php?topic=2780939.msg28442631#msg28442631

共收到 17 条回复

学习了,👍

谢分享!

学习学习了。😄

学习了,赞。比特币网络有升级的可能吗?

刺激

学习了

应该讲一下“图灵完备”这个词的来源,图灵,是哪个英文单词?

烧脑也不能理解,干脆不研究了!

看起来好复杂

想想,不过就是一个新概念罢了,现在区块链仍然是炒概念而已,没有一个盈利的落地项目,遗憾。!

一脸懵逼哈哈哈

晕晕晕/:,@@ 晕晕晕乎乎

学习了,厉害

再来学一遍。😄

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册