水哥大白话区块链7:深入了解以太坊这个二姨太

说到以太坊很多人会和智能合约几个字联系起来,什么是智能合约?智能合约其实是一段被存储在一个区块链上的代码,由区块链交易触发。比较形象点就是,IBM和三星做了一个概念的验证,这个验证里面一台洗衣机可以做到:

当清洁剂消耗完毕,自己去订清洁剂。

当机器损坏时,自己召唤维修人员。

当电费最便宜的时候,才去洗衣服。

听上去是不是很不错,我们姑且不论他目前还能不能做到,我们先来了解下他的特定的专有名词。

叔块(Uncle Block)

什么叫做叔块?

叔块就是临时分叉所产生的无效块,在比特币中如果同时出现双花的情况,这两个块以最先达到六块的最长链继续链接下去,而另外一条链路上的块就成为废块,没有任何奖励。而在以太坊中叔块就有奖励了,那是因为以太坊的区块时间是20秒左右,相对于比特币10分钟,更容易出现临时分叉和孤儿区块。而且较短的区块时间,也使得区块在整个网络中更难以充分传播,尤其是对那些网速慢的矿工,这是一种极大的不公平。为了平衡各方利益,才设计了这样一个叔块机制。

目前以太坊的叔块率,即叔块在全部挖掘出来的块中占的比例在17.3%。

Gas

昨天说了什么叫做图灵完备?这里复习一下,简单来说就是可以写出循环和逻辑运算的程序语言,昨天的思考题也知道了比特币的脚本语言并不具备图灵完备,虽然扩展性差了,但是他也防止了一些死循环和攻击的发生。那么作为以太坊来讲,具备了图灵完备的脚本语言,那么他就必须要解决一个死循环的问题,不保准哪个笨蛋或者别有用心的写出死循环,以导致整个以太坊虚拟机奔溃,因为他是中心化的,所以没办法通过重启来解决。

那么有没有解决的方法呢?

很多年前就已经有人证明了不存在一种能够检测程序是否会死循环的方法,叫图灵停机问题(The Halting Problem)。

所以这里V神就引入了Gas,从字面来理解很容易,就是汽油。如果将任何执行的指令都消耗一点汽油,当汽油用完,这个程序也就停止了。也就解决了死循环的问题。也如同字面意思,既然是汽油就是要钱的,这里即以太坊。

区块奖励

这里我复制了一个最新的一个区块记录,可以看出奖励分为三部分组成。

可以看出奖励由三部分组成

普通挖矿固定奖励3ETH+所有程序的Gas花费的总和+叔块奖励。

叔块奖励=3ETH*1/32。

EVM

EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。而EVM运行在以太坊节点上,当我们把合约部署到以太坊网络上之后,合约就可以在以太坊网络中运行了。

生态系统

以太坊同时还构建了较完整的、开源的生态系统,不仅有底层的geth、编程的solidity、合约在线浏览器browser-solidity、合约钱包Mist/wallet、以太坊的前端开发框架Truffle、各种各样的开源DApp等等,方便大家快速上手,并开发出适合落地的区块链应用。

水哥大白话

我更愿意把他看成是apple-store,提供一些开发工具,快速开发区块链应用,而这一切都基于以太坊上面。不过看上去很美,目前落地项目却几乎没有,这是为什么呢?我们明天再深挖。

在学习以太坊的时候,我有这样几个问题,提出来也给大家思考思考,或者你有什么问题也可以留言,大家一起讨论。

(1)以太坊每天会产生多少以太币(ETH)?

(2)比特币的脚本语言是图灵完备的吗?

(3)以太币有没有总量限制?

三个问题都在博客中有解答,大家可以对照自己的答案。或者添加微信公众号“水哥区块链”之后输入“大白话7”就可以看到三道题的答案。

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

扫码关注腾讯云开发者

领取腾讯云代金券