人人都懂区块链(7)

下面的文章是量子学派的《人人都懂区块链》课程第7讲——以太坊是什么——的学习笔记。

我把课程精华摘取出来,用自己的语言及逻辑加工整理,希望能和你一起学习,掌握区块链世界的密码。

今天我们一起思考的问题是:

什么是以太坊?你都知道哪些关于以太坊的知识?

请花几分钟思考一下,有疑问才能得到更多。

V神(Vitalik Buterin)曾经说过:中本聪作为一个老派的C++程序员,编程水平并不高明,但运气不错。

最终编程水平高超的v神开发出了以太坊,作为区块链在现实世界的最新进展,他极大拓展了区块链的疆土。

我的结论是以下几点:

1.以太坊是一个运行智能合约的去中心化开发平台;

2.以太坊最大的特色是将图灵完备引入区块链;

01 以太坊真面目

如果说比特币是区块链1.0的代表产品,那么以太坊就是区块链2.0的代表。2013年,以太坊项目终于发布了初版白皮书。

以太坊有下面这些特点:

有单独的智能合约编程语言——Solidity

为执行智能合约设计了虚拟机evm

使用内存需求较高的哈希函数,避免出现算力矿机

增加uncle区块奖励,降低矿池的优势

gas限制调整算法:避免循环攻击

记录当前哈希树的根哈希到区块:实现轻量化客户端

什么是以太坊虚拟机(evm)?

以太坊除了是一个区块链,它也可以用来指一系列定义去中心化应用平台的协议,核心是以太坊虚拟机(evm),主用工作就是执行智能合约的字节码。

以太坊将虚拟机部署到区块链上,这本身就是一个创举。这让全球的开发者能够调用以太坊来进行智能合约的开发,而每一个节点都运行着以太坊模拟机。所以,以太坊也被形象的成为“世界电脑”。

因为全球有几百万甚至几千万台电脑在运行以太坊的模拟机,所以这些以太坊的服务24小时不会中断,这保证了在上面运行的智能合约可以不需要任何中介来维持,所有的节点同时也在维护这个系统的运行。

以太坊有六层结构组成:

应用层

合约层

激励层

共识层

网络层

数据层

数据层是核心,数据层就是分布式账本;网络层是运行的p2p网络;共识层指的是采用何种共识,以太坊采用pos和pow混合共识;激励层决定了挖矿机制(奖励机制);合约层是以太坊的首创,以往的区块链没有这一层,它的出现可以自动执行智能合约,下一节我们将讲到这个内容;应用层是区块链的展示层,可以运行在移动端、web端或服务器上,表现就是一个个dapp。

可以把以太坊理解成一个去中心化的编程平台,所有人都可以用这个工具来编写一个基于区块链的应用,来自动的执行一个合约,这个合约就是智能合约,它可以自动执行,不需要第三方的介入,24小时不间断工作。

02 以太坊和比特币

以太坊是以太坊体系里的流通货币,经过4年的发展,它已经成为了仅次于比特币的第二大虚拟货币。

以太坊和比特币的区别主要有:

1.比特币总数是固定的2100万枚,而以太坊初期是6000万枚,后期每年增加约1800万枚;

2.比特币每4.5年产量减半,直至2040年挖完,而以太坊每年增加1800万枚,没有上限;

3.核心算法不一样,比特币采用sh256,而以太坊采用ETHash;

4.比特币为保证安全采用图灵不完备的算法,而以太坊采用图灵完备的算法;

5.比特币每10分钟出一个区块,而以太坊12-15秒出一个区块。

简单说一下图灵完备。

图灵完备是指一个能计算出每个图灵可计算函数的计算系统。这确实比较复杂,换句话说一切可计算的问题都能计算,这样的语言就是图灵完备的。简单判定图灵完备的方法就是看这个语言能否模拟图灵机。

图灵不完备就不能实现循环、递归这样的无限操作,不能实现数组、列表这些数据结构,写出的程序就一定是会终止。所以,图灵不完备的,就一定无法进行编程。

v神改变了比特币图灵不完备的特性,从而在区块链上成功部署了一个编程系统,这才让区块链在现实世界里发挥了更加多样的作用。我们可以用以太坊自定义很多种自动化的操作,这极大拓展了区块链的应用场景。

但是,这里有个疑问:为什么中本聪要把比特币设计成图灵不完备的呢?看看下面的原文,就不难理解了。

比特币脚本语言包含许多操作,但都故意限定为一种重要的方式——没有循环或者复杂流控制功能以外的其他条件的流控制。这样就保证了脚本语言的图灵非完备性,这意味着脚本的复杂性有限,交易可执行的次数也可预见。脚本并不是一种通用语言,施加的这些限制确保该语言不被用于创造无限循环或其它类型的逻辑炸弹,这样的炸弹可以植入在一笔交易中,通过引起拒绝服务的方式攻击比特币网络。受限制的语言能防止交易激活机制被人当作薄弱环节而加以利用。

说白了,图灵不完备是为了比特币的安全,而以太坊的图灵完备是牺牲了一部分安全性,而让区块链能够有更多的使用场景,如此而已。

我是陶肚,每天陪你读点书,和你一起改变一起成长。如果喜欢,请关注或帮忙点赞、转发……

一个人可以走得更快,但只有一群人才能走得更远!我们坚信:星星之火,可以燎原!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180325A18HU900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券