首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链的四大应用:第二类应用(上)-智能合约以太坊

这一节课,我们将学习第二类区块链项目——智能合约平台,它的代表项目是「以太坊」。由于以太坊的知识很丰富,所以我们把它拆成了上、下两部分来学习通过这节课的学习,你将了解到以太坊的起源、版本规划以及和以太坊相关的基本概念。

2013年由俄罗斯天才开发者维塔利克·布特林(VitalikButerin)发布白皮书至今,以太坊在智能合约领域里面一直处于非常领先地位,到目前为止,它也是全球最知名、应用最广泛的区块链智能合约底层平台。

我们之前学习过,比特币的协议虽然做出了巨大创新,但是也有很多不足。比如比特币区块链因为缺少图灵完备,还记得什么是图灵完备吗?是指一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。比特币不能支持所有种类的计算,无法为账户的取款额度提供精细的控制,缺少更丰富的状态记录,导致比特币区块链系统的扩展性比较差,不能广泛应用在除比特币以外的其他应用上,所以它就更无法支持复杂的智能合约。

所以以太坊建立了一个可编程的、图灵完备的区块链。在这个区块链之上,你可以通过简单的程序实现各类数字资产的生产,也可以通过编写程序对以太坊上流通的区块链资产的状态进行精确地控制,比如这个资产是待支付还是被锁定还是有额度限制、这个账户是黑名单还是白名单、以太坊和其他数字资产的自动兑换等等。同时,以太坊是一个可以编程、图灵完备的区块链网络基础,在这个基础上,我们能够实现更多的非区块链资产的功能产品。比如说我用以太坊建立智能合约,应用在个人日常经济生活和企业经济活动中,这样的运用也是可以被实现的。

以太坊是建立在区块链和区块链资产的概念之上的一个全新开放的区块链平台。它允许任何人在平台上通过使用区块链技术建立和运行去中心化的应用。简单地说,以太坊技术就是区块链技术加上智能合约。

以太坊在创立之初就规划了比较详尽的发展路径和迭代版本,以太坊一共规划了四个迭代版本:第一个版本Frontier(前沿),第一个版本Homestead(家园),第一个版本Metropolis(大都会),第四个版本Serenity(宁静)。

那么,我们就来细数一下以太坊的大事记吧:

2013年末,创始人Vitalik发布了最初版的白皮书,启动了这个项目。

2014年7月,以太坊进行第一批以太币的预售。这也是早期ICO中比较知名的一个案例。不过那时候没有ICO这个名词,那时候圈内人称这种代币发行叫“币众筹”。通过为期42天的预售,以太坊团队募集了3万多个比特币,预售了6000万个以太币。

2014年10月,以太坊将区块的出块时间从60秒缩减到了12秒,目前是基本稳定在15秒。

2015年7月30日,以太坊的第一个版本Frontire(前沿)发布,这也是以太坊的最初版本,只有命令行界面,没有图形界面,主要适用于开发者。

2016年3月14日圆周率节,以太坊发布了第二个版本HomeStead(家园)的版本,这也是目前正在运行的版本,易用性上得到了极大改善,有了图形界面,从此以后普通用户也可以体验以太坊的功能和开发了。

2016年7月,以太坊进行硬分叉,分为以太坊ETH和以太坊经典ETC。这个后面我们会详说。

近期,以太坊想要发布第三个版本大都会,在第三个版本Metropolis(大都会)里,以太坊创始团队将会发布一个为非技术用户设计的浏览器,它的名字叫Mist浏览器。你可以把它想象成Chrome谷歌浏览器,在使用上非常便捷,还有强大完善的应用商店。Mist浏览器也将包含去中心化应用商店、基础性应用,如果这样的浏览器能够被发布,将会十分有利于广大的互联网用户的参与并体验去中心化应用。根据目前以太坊团队公布的进度,第三个版本有望在2017年年底发布出来。

最后一个阶段 Serenity(宁静)的发布时间还没有确定。在前三个阶段,以太坊的共识机制采用工作量证明(PoW)共识机制,在第四阶段会切换到混合的共识机制。

混合共识机制是将比特币式的工作量证明PoW和Vitalik 创建的权益证明机制Casper结合起来,使得矿工和持币者的权利和利益得到平衡。

说完版本迭代,我再列出来一些以太坊所涉及的名词,这样可以帮助你理解以太坊整个体系。

第一个名词是以太币。以太坊系统中的代币,简称ETH。以太币(Ether)是以太坊内部的主要燃料,为在这个体系上运行各种数字资产交易提供主要的流动性,同时也是用于智能合约费用的的支付。它是以太坊内置的区块链资产,用来支付智能合约运行的。这个概念理解相对简单,我们之前学习了Hash Cash和工作量证明,不知道大家是否还记得。我们了解了,为了不让网络被垃圾邮件充斥,因此要求发送邮件的计算机要进行一些工作量计算。这样对于发送大量垃圾邮件的计算机就是一个巨大的负担。

同样的道理,在以太坊网络上要进行智能合约的建立和运行,也需要一个小小的门槛,这个门槛对于认真想做开发的人员来说成本比较低,但是对于大量运行垃圾项目的发起者或者对于攻击者来说就是比较大的负担。不过以太坊的这个门槛不是工作量,而是燃料,我们叫“Gas”,Gas用以太币来兑换。

试想下,如果运行一个智能合约不需要花一些费用的话,在这条区块链上就会出现很多的垃圾合约或者垃圾应用,这个区块链会遭到攻击,使整个网络陷入无法使用的而状态。所以呢,以太坊的区块链要求每次运行智能合约的时候,需要支付一定数量的Gas,Gas可以以太币来支付,来确保这个区块链的稳定和安全。

关于以太币的面值。我们熟悉的比特币的最小面值是一聪,是一亿分之一比特币。以太坊也一样,有自己的最小面值,命名为1“wei”,它有多小呢?一枚以太坊代币分割到小数点后18位,就是1 wei。

还有,在2016年7月,以太坊区块链发生硬分叉,这次硬分叉将以太坊分成了两条区块链。由创始人Vitalik主导的、升级以后的以太坊叫Ethereum,代币代号为ETH。不接受这次升级的链称为“Ethereum Classic”原链上的以太坊代币代号为ETC。

第二个概念就是以太坊虚拟机EVM。在一个编程系统之上,通常会有一些编译和执行的虚拟机来去做支撑。JAVA有JVM,那么在以太坊里,也会有以太坊的虚拟机,可以执行任意复杂的算法代码。开发者可以使用现有的JavaScript 或Python以及其他友好的编程语言,在以太坊上创造出自己想要的应用。

第三个概念是智能合约(Smart Contract)。智能合约的理念并不新鲜,最早是由密码学家尼克·萨博(Nick Szabo)在1995年时候提出的,几乎与互联网同时出现,指的是由计算机程序定义并自动执行的承诺协议。虽然说它的理念提出已经由来已久,但是,直到以太坊的出现,智能合约才被广泛应用。一个重要原因是因为之前缺乏能够一个友好的、可编程的基础系统。

有了智能合约,任何人都能够在以太坊上创建自己想要做的去中心化的应用了。智能合约在以太坊上一旦被创建之后,就无需中间机构参与,就能自动执行,并且没有人能够阻止其运行。在以太坊上的智能合约,能够控制区块链上各种数字资产,进行复杂的算法和操作。

举个例子:我们经常乘坐飞机会购买飞机延误险,但是真正延误之后,你可能还要拨打客服电话了解流程、在线下开证明、找保险公司,才能执行完你的延误险赔付。这时候,如果有了智能合约,输入条件,连线航班数据,就能够确保保险公司在航班延误之后就自动为你打款了。合约的执行不需要第三方参与,是自动执行,是不是大大提高了社会经济活动的效率了呢?

在以太坊区块链上,你可以编写资产的代码,创建新的区块链资产,简单地说,你可以发行你自己的区块链代币,你使用什么样的发行机制、代币叫什么名字、发行多少数量、怎么样去发行都由你来决定,听起来是不是很有意思呢?同时,你也可以通过编写智能合约的代码,来创造非区块链资产的功能,比如投票、对赌、条件合同等等。

因为要支持智能合约,所以以太坊上有两种类型的账户地址:一种叫普通账户,一种叫合约账户。普通账户和比特币网络的账户差不多,合约账户主要用于智能合约。

好了,我们回顾一下这节课。我们介绍了第二类区块链项目智能合约平台,代表项目以太坊,我带你学习了以太坊的起源、版本迭代、重要的名词。

以太坊由俄罗斯开发者Vitalik在2013年创建的,它针对比特币区块链系统缺少图灵完备等缺点,以太坊建立了一个可编程、图灵完备的区块链,它帮助人们更方便地实现生产各类数字资产,更精确地控制区块链资产的状态。

以太坊的发展规划了4个阶段,分别是:前沿、家园、大都会、宁静。

「前沿」是以太坊的最初版本,只有命令行界面,主要使用者是开发者;

第二个版本「家园」增加了类似Windows系统那样的图形界面,普通用户也可以方便地体验以太坊的功能;

第三版本「大都会」加入了一个像谷歌浏览器那样的浏览器,除了使用方便之外,它还拥有一个强大的应用商店,可以安装插件实现更多功能。第三个版本有望在2017年年底发布出来;

第四个版本「宁静」目前还没有确定发布时间,预计它会将前三个版本采用的工作量证明(PoW)共识机制切换到混合的共识机制。

在说了4个以太坊版本之后,我们还学习了三个以太坊重要概念:「以太币」、「以太坊虚拟机」和「智能合约」,它们分别是以太坊系统中的代币、以太坊系统的运行环境和以太坊所代表的区块链项目。了解这些概念能帮助我们更好地学习以太坊。

按照老规矩,我要留一个问题给你:如果你来做一个智能合约的项目,你会把智能合约应用到哪个领域呢?说说你的理由。

最后,恭喜你完成《从0到1,全面学透区块链》第18讲的学习。下节课我将继续向你介绍智能合约和以太坊,通过下节课,你将了解以太坊的技术参数、发展情况、基于以太坊的区块链的知名项目,以及ETH和ETC的来源和区别。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券