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

以太坊跌成这样,你真的了解以太坊的历史吗?

续前:

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

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

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

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

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

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

前面我们了解了以太坊的起源、版本规划以及和以太坊相关的基本概念,下面你将会了解以太坊的技术参数、它的发展情况、基于以太坊的区块链的知名项目,以及以太坊ETH和以太坊经典ETC的区别。

基本的参数上,我把以太坊和比特币进行下对比,这样可以更好的帮助你更好地理解。前面你了解了二者在区块链上的对比,下面你将了解比特币和以太坊上的代币以太币的对比。

在代币上,以太坊与比特币的最大的不同是它们的产量和总量的问题。比特币的产量每4年减半,而以太币的产量则是固定的。比特币的产量我们知道是2100万枚,而以太币的总量到底是多少呢?这是一个有意思的故事,让我给你慢慢道来。

在2014年的时候,以太坊团队讨论后做了这样一个规定:以太坊先进行预售,预售结果是多少,我们就将其定为一个基准数,来规定以太坊发行的总量和每年的产量。假设在第一次预售中,预售了X枚以太坊,那么就会有另外0.99X会新增出来分配给在预售之前参与开发的早期贡献者,另外一个0.99X以太坊新增发行出来分配给长期项目研究者。

那么,在预售期就会有X+2*0.99X枚以太坊被发行出来了。那么在以太坊发行预售之后,会采用工作量证明机制PoW来进行挖矿,它们规定每年发行的以太币数量是0.26X。那么,这样的话就通过预售的这个X基准数决定了整个以太坊的总量和发行数量。我们来去算一下,经过2014年7月42天的预售后,以太坊团队一共筹集了31531个比特币,按照当时的价格是1843万美元,成为当时第二大的币众筹项目。

当时出售的这个X的数量是6千万左右(六千零十万两千两百一十六,60102216个以太币),也就是说在在预售阶段,就会有6千万+2*0.99*6千万(60102216+60102216*0.99*2=72002454),大约是7200万枚以太币就被发行出来了。那么在以太坊上线之后,每年会有多少以太币会被挖矿挖出来呢?那么,每年会有6千万*0.26(60102216*0.26=15626576),大约是1千五百六十万左右的以太币会被矿工所挖出。听到这么多数字,你是不是有点晕呢?不用怕,讲后再对文字内容看一遍,你很快就会理解的。

那么,我们接着往下聊。你可能会好奇:每年产生那么多以太币,矿工要怎么分呢?按照区块平分吗?当然不是了。

在说怎么分配之前,这里要说一个概念,以方便你的理解,就是以太坊区块链里的“叔块”的概念,叔叔的「叔」。“叔块”和“父块”概念是相对的。父块就是当前这个区块的上一个区块,这个比较好理解。叔块是什么意思呢?叔叔是父亲的兄弟,那么叔块也是父块的“兄弟区块”。

其实,以太坊的区块出块时间间隔非常短,只有12秒。我们知道12秒竞争记账,然后账本之间的同步,这么短的时间很容易出现分叉,矿工一时分不清哪个链是最长链,跟着非最长链后面记账的情况也是时有发生的。在比特币网络中,分叉出来的非最长链的区块叫 “孤块”,孤块是没有新生的比特币奖励的。但是对于快速出块的以太坊来说,如果孤块没有任何奖励,就会大大降低矿工们挖矿的积极性,因为挖到 “孤块”的概率也是非常大的。如果不给他们奖励的话,矿工的积极性就会收到影响,还会引发一定的社区混乱。所以在以太坊的区块链中,矿工们挖到了孤块,也是会获得区块奖励的,孤块很快就成为叔块,所以,以太坊网络还规定,每个区块对最近的2个叔块进行引用,每引用一个叔块的,将会得到一定的(1/32)的区块奖励,最多引用2个。

所以,以太坊区块的奖励会分给挖出区块的矿工,也会分给挖出孤块的矿工,加上前面说的预售的币和分给团队的币,组成了以太坊所有代币分配的构成。

这里我们很容易发现,以太坊的总量在进入第四版本宁静之前,都是每年递增的,直到最后一个版本发布之后,才会恒定不变。

再来看看一些其他技术参数的对比。比特币的核心算法是SHA256,以太坊的核心算法是Ethash。区块的时间是比特币每10分钟出一个区块,而以太坊是12秒到15秒出一个区块。比特币区块的奖励目前是12.5个/每区块,以太坊是每个区块奖励5个以太坊。从挖矿的收益角度,比特币矿工的收益包括挖矿的奖励以及在区块中的交易所产生手续费,而以太坊就复杂的多,除了和比特币一样挖矿的新生币奖励和手续费之外,还包括叔块奖励和引用叔块奖励。这里我们就要说到Gas这样的东西,其实在以太坊当中,所有智能合约的运行是需要花费一定的费用的,这个费用就是用Gas去计费的。

Gas是智能合约的开发者运行和建立智能合约所需要的花费,它是用以太坊来兑换的,这个Gas最终就是要交付给矿工的。就是说,开发者们在运行一个智能合约时需要向网络支付矿工一定的“手续费”,不过智能合约的手续费是由“Gas”完成的,这个Gas用以太币来兑换的(区块网络中每个Gas的平均价格是0.000000022个以太币)。

因为以太坊的区块链语言是图灵完备并且可编程的,所以有较好的使用基础,因此在区块链的应用开发上,很多企业和开发者选择了以太坊区块链作为底层技术。以太坊从2015年7月上线到2017年9月份,短短的2年时间,全球已有300多个以太坊应用诞生。在以太坊上构建的应用,大多数应用的市值也都排在了数字资产市值的前列。另外去中心化的预测平台Augur,还有全球算力P2P市场的iEx.ec、用于分布式算力应用平台的Golem、用于黄金交易的DigixDAO等等,这些都是基于以太坊平台构建起来的。可见以太坊作为基础的应用,已经在全球逐步的风靡起来。

再来说说以太坊分叉,以太坊ETH和以太坊经典ETC。你可能会特别奇怪,为什么会有这两个东西发生呢?以太坊的创始人Vitalik为什么会亲自主持升级分叉,并且来进行分叉呢?为什么还会有人同意有人不同意,并且导致了硬分叉走了这么久并且还能并存这么久?其实,这恰好反映了去中心化社区的特点。在这个社区中,每个成员都有表达自己意志的权力和能力。2016年4~6月,以太坊网络上规模最大的一次众筹项目The DAO。

DAO是Decentralized Autonomous Organization 的缩写,意思是去中心化自治组织。这个项目募集到了超过1.5亿美元的资金。然而,接近尾声时,The DAO被黑客攻击了,近6000万美元的以太币被黑客盗走。此后,经过一系列争论,以太坊社区最终做出投票表决,大部分参与者同意更改以太坊代码,希望将资金从攻击者黑客那里夺回来。2016年7月20日,以太坊的硬分叉实施。以太坊开发团队修改了以太坊软件的代码,在某一个区块上(第1920000区块)把The DAO被黑客转移走的资金都退了回来,从而让黑客在原链上偷走的资金又重新回到了投资者的口袋里。

然而这一举动被另一部分人认为失去了去中心化的意义,不同意进行升级,仍然在原来的那条区块链上进行继续挖矿,由新的开发团队主导,于是就形成了我们今天看到的局面。

目前ETC的开发团队和社区也在计划升级ETC区块链,将会支持零知识证明,同时计划将ETC的总量由每年定量发布,改为像比特币一样,总量恒定、定期减产;ETC总量不超过2.1亿个,每500万个区块减量20%。在区块链的研发上,计划采用Java语言,区别于ETH。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券