主页 > 最新imtoken官方下载 > 使用工作量证明 (PoW) 开采以太坊

使用工作量证明 (PoW) 开采以太坊

最新imtoken官方下载 2023-02-13 07:26:09

编者注:具体来说,在PoW系统中,矿工打包交易时,会形成一个结构化数据(“区块头”)(这部分结构化数据对于不同的交易自然是不同的),区块头有里面还有一些其他的数据,比如创建区块时的时间戳,父区块的哈希值等等。一个区块满足规律性的要求是区块头的哈希值(作为一个值)满足一定的要求(“难度要求”)(例如,比特币协议的难度要求是“0”开始时哈希值达到一定数量)。但是,如上所述,数据的哈希值是确定的,没有任何东西可以保证仅根据上述数据就可以生成满足要求的哈希值,因此出块人必须不断改变其中一个具有没有特殊含义(“Block nonce”),直到区块头的哈希值满足难度要求(否则即使扩散出去,其他节点也不会接受该区块)。

上一篇中多次出现的“打包交易”的意思是“选择一组交易作为区块的内容”,因为可能有很多人想同时发起交易,但是区块链系统为了安全,区块大小是有限制的(例如区块的数据大小或总计算限制,见下文),所以矿工必须收到待处理的交易池(“pending tx”或选择一些交易从“内存池”)形成一个块,然后形成如上所述的结构化数据并开始挖掘。

在以太坊的路线图上,有一个名为 Casper 的协议计划,它将耗电的工作量证明更改为更节能的权益证明,将用于以太坊的未来。宁静”发布。

编者注:所谓权益证明(PoS),就是用参与者资金在一个资金池中的比例来确定TA出块的概率比特币计算单位,不再有参与者之间的竞争来计算难度当然不需要投入大量的电来计算哈希值。

以太坊核心开发团队从 2014 年开始就致力于 PoS 共识机制。截至此时(2019 年 5 月),在以太坊主网上实现的 PoS 解决方案 Casper 已经基本敲定,预计2019年底完成部署,开启以太坊新篇章。以太坊有内置的加密货币

以太坊的代币叫做Ether,缩写为ETH。市场现在接受 ETH 以换取其他加密货币和主权货币,就像它接受 BTC 一样。 ETH 目前的价值约为 13 美元/ETH(2016 年 10 月)。与比特币类似,以太坊代币的所有权也记录在以太坊区块链上,虽然从技术上讲,它的记录方式略有不同。

编者注:这里的重点是,内置加密货币是在开采区块时发行的:对于每个区块,都会向开采区块的人(“矿工”)发行(预定)数量的加密货币。

上面多次提到的“交易”主要是指比特币在比特币区块链上的转账交易,而在以太坊上则更加多样化,主要包括ETH交易、用户与智能合约的交互、智能发行代币的转账等。合同。

自写原稿以来,ETH 的价格从 13 美元(约 87 元人民币)上涨到 1347 美元(约 9000 元人民币)的高位(2018 年 1 月),然后逐渐跌至 100 美元左右(2018 年 10 月),现在开始逐渐恢复到 250 美元(2019 年 5 月)。此外,加密货币兑法定货币的价格几乎每天都在剧烈波动。以太坊和比特币的区别

准备好你的替补席,我们即将开始一个技术性更强、更复杂的话题。

以太坊的出块时间更短

在以太坊网络中,每个区块之间的时间间隔约为 14 秒,而比特币中的区块之间的时间间隔约为 14 秒。大约10分钟。这个时间差意味着如果你同时发送一个比特币交易和一个以太坊交易,一般来说,以太坊交易记录到以太坊区块链比比特币交易记录到比特币区块链要快。快的。我们也可以理解为比特币网络每 10 分钟写入一次数据库,而以太坊网络每 14 秒写入一次数据库。

编者注:虽然比特币和以太坊在这一点上有所不同,但该属性背后的原理是相同的:它们都是 PoW 系统。如前所述,无数的计算机处于一个开放的网络中,所有的计算机都可以随时离开或加入,所以这就带来了一个严重的问题:如果所有的计算机都是独立的,并且对接收到的数据进行处理,那么这些计算机就无法形成“共识” ",而整个系统无法实现基本功能(比如货币转账,因为每个人都有自己记录的交易历史,没有人能确定一个账户有多少钱)。所以PoW的意思是说:如果你想在这个账本上写一个sum,请证明你已经花费了很多计算资源。辅以“难度要求”的变化,我们可以调整出块所需的工作量,进而调整各个网络的出块间隔。之所以能达到如此稳定的区块间隔,可能有很多原因,这里不再详述。以太坊的区块更小

在比特币中,区块大小的上限是用字节来衡量的,目前是1MB,而以太坊则是用单位来衡量智能合约的计算复杂度来标记区块的大小,这个大小称为“每个区块的gas limit”,每个区块的gas limit会有所不同(比特币的区块大小限制是固定的)。

目前,以太坊的区块大小上限约为 1,500,000 Gas。在用户之间(即不与智能合约交互),通过 ETH 进行的底层交易或支付具有 21,000 Gas 的复杂性比特币计算单位,因此您可以将 70 笔交易放入一个区块(1,500,000 除以 21,000)。在今天的比特币中网络,一个区块可以包含 1500-2000 个单笔交易。

在数据方面,目前大多数以太坊区块都在 2KB 以下。

编者注:截至 2019 年 5 月 17 日,以太坊区块的 Gas 上限已达到 800 万个 Gas。单个数据块的大小为几百 KB。以太坊使用 EVM 运行智能合约

p>

与比特币的原始脚本语言相比,可部署在以太坊(“智能合约”)上的代码更先进,对开发人员更友好。智能合约代码运行在以太坊虚拟机环境中,网络中的所有计算机都运行 EVM。如果您熟悉 Microsoft Excel 宏(由 Excel 运行的代码片段),您应该很容易理解智能合约是由以太坊虚拟机运行的一段代码。

在许多来源中,以太坊智能合约通常被称为“图灵完备”。这意味着智能合约功能齐全,可以执行其他编程语言可以执行的所有计算。

以太币的发行

ETH是如何产生的? ETH 和 BTC 发行的最大区别在于,BTC 的发行量大约每 4 年减半,而 ETH 的发行量每 4 年减半。流通保持不变(也许就在宁静版本之前)。

编者注:不一样。如前所述,在区块链上,原生加密货币是有增发的,而这个增发量称为“区块奖励”。以太坊的区块奖励也被削减了很多次。 2017 年 10 月,区块奖励从 5 个 ETH 减少到 3 个 ETH,2019 年 2 月,以太坊区块奖励被削减为 2。因此,我将作者的原始图表替换为 ETH 供应量的实际变化图。

这比比特币复杂得多。简而言之,现有的 ETH 币计算如下:

预挖+区块奖励+大叔奖励)+大叔参考奖励

预挖

在 2014 年 7 月和 8 月的众筹中,ETH 的发行量约为 7200 万枚。众筹中产生的 ETH 称为“预挖”。决定众筹后ETH的发行量限制为每年不超过众筹总量的25%(即除约7200万枚外,每年发行的ETH不超过1800枚)众筹一次性产生的 ETH 万)。

区块奖励

目前,挖一个区块可以获得5个新的ETH。如果每 14 秒挖一个块,一年有 3150 万秒(365x24x60x60),这意味着每年 225 万个块。225 万个块,每个块 5 个 ETH = 1130 万个 ETH/年。这是符合每年产生少于 1800 万 ETH 的承诺。

叔块奖励

实际上 ETH 的发行量会略高于 1800 万。由于某些区块是后来开采的,因此不属于主链。在比特币网络中,我们将这些后来挖出的区块称为“孤儿区块”,完全被丢弃,但在以太坊中,这些区块被称为“叔块”,后续的区块可以参考这些“叔块”。如果有人提到一个“叔块”,它将为挖掘“叔块”的矿工带来 4.375 ETH 的“叔块奖励”(相当于正常块奖励的八分之七)。目前,以太坊每天大约产生 500 个叔块,即每天额外有 2000 个 ETH 进入流通(按照这个速度,每年都会增发)。约 700 万 ETH)。

引用叔块的奖励

1个叔块后出块的矿工也可以获得0.15ETH(最多引用2个叔块块)。

上述模型称为 Ghost 协议,(Ghost 是“Greedy Heaviest-Observed Sub-Tree”的缩写)。在 Ghost 协议中,有效区块被确定,矿工也可以获得奖励。

编者按:大叔区块奖励是很多朋友理解的难点,确实需要很多背景知识。简单来说:在网络中,区块的传播是需要时间的,所以一个区块被挖出后,在一定时间内只有部分节点可能会收到这个区块,而其他节点在此期间收到另一个区块并认为是最新的block PoW 系统使用的共识算法不能立即确定哪个是主链。以太坊的出块速度比较快,可能会经常发生,所以在共识算法上安排了这个经济激励来缓解这种情况——即使有叔块,主链还是基本确定的。详情请看《以太坊设计原则》未来以太输出的变化。

在以太坊中,工作量证明(包括大叔区块奖励规则)成为权益证明机制,该机制的变化对发行的影响尚无定论。权益证明机制将使用一个名为 Casper 的协议(是的,就是精灵,谁敢说密码学家没有幽默感?)。 Casper 协议下的 ETH 发行率很可能远低于 Ghost 协议下发行率。

挖矿奖励

那么,矿工可以从挖矿中得到什么?

在比特币中,每挖出一个新区块,矿工将获得 12.5 个比特币(这是目前的情况);交易发起人在 .

中附加给矿工的交易费用。

在以太坊中,矿工可以获得:

目前,每个区块的平均gas上限为1,500,000,区块网络中每个gas的平均价格为0.@ >000000022 ETH,即矿工可能从整个区块中获得的gas奖励为< @0.033 ETH。需要注意的是,合约中的 gas 是以流通中的以太币支付的,而不是新创建的以太币。

编者按:发起交易需要设置交易的gas价格(Gas Price)(即每单位gas愿意支付多少),这个gas价格将成为矿工选择的依据是否打包交易。一。因为人们对交易的需求并不总是一样的,所以燃料的价格也会随着当前链上交易的需求而波动。以太坊的其余部分:Swarm and Whisper

计算机需要计算、存储数据和交互。以太坊需要一种高效且稳健的方式来实现其不间断、抗审查、自我维持的去中心化世界计算机的愿景。以太坊虚拟机只是整体的一个元素。

以太坊概念智能合约

智能合约是存储在以太坊区块链上的小程序。这些程序可以用适量的以太币激活和运行(编者注:可能还需要其他特殊代币才能激活)。有关智能合约的更多信息,请参阅:《智能合约简介》

这是一个来自维基百科的关于智能合约的例子:

图片来源:en.wikipedia.org/wiki/Solidity

在以太坊,你可以用代码创建一个新账户,并在交易中上传到以太坊的区块链上,从而建立一个智能合约。

只要合约上传成功,它就会像点唱机一样工作:当你想运行合约时,你只需要向它发送一个包含以太币支付的交易,可能还有一些额外的信息。

每台采矿计算机将使用以太坊虚拟机运行智能合约(这是其采矿过程的一部分)并得出最终产出值。从理论上讲,如果没有人出错,以太坊网络上的每台计算机都会输出相同的结果,因为用户都在运行包含相同信息的智能合约代码。

区块被挖出后,获胜的矿工会将挖出的区块公布给网络的其他用户,其他矿工在得到相同结果后会验证并将区块放入自己的区域。在区块链中。这就是以太坊区块链状态的更新方式。

帐户

在比特币中,人们把存放比特币的地方称为“地址”,就像银行账户一样,只不过存放的是比特币。在以太坊中,用来存储以太币的称为“账户”,账户有两种:

叔块和孤块:几乎在主链上的块

以太坊的出块率远高于比特币(以太坊每小时 250 个区块,比特币每小时 6 个区块)。出块越快,“出块冲突”的概率就越高,即几乎同时产生多个有效区块,但只能将其中一个放入主链。从技术上讲,虽然这些链下区块中包含的交易是真实的,但数据不能被视为主链的一部分。

在比特币协议中,这类不在主链上的区块被称为“孤儿”。孤儿不属于主链,不会加入主链。块引用。

在以太坊中,这些区块被称为“叔块”,在一定距离内的后续块可以参考叔块(详见上文“发行以太币”部分。)。虽然叔块中的数据最终不会派上用场(即叔块上的交易不会被执行),但挖出叔块的矿工仍然可以获得略小的区块奖励。

这导致了两个重要的结果:

这激励矿工保持他们的挖矿动机,即使开采的区块无法在主链上制作(由于高块生成率更多孤儿/叔叔)承认创建叔叔所需的能量也可以提高安全性区块链编者按:总而言之,Ghost是快速出块过程中的一个保障,让没有master被挖到。链区块的矿工不会遭受很多损失,并且有维护主链的动力。天然气和天然气价格

当您激活智能合约时,您是在要求整个网络中的所有矿工执行合约中的计算。这花费了矿工的时间和精力,用户应该为此付出代价。 Gas是支付服务费的机制。

手续费通常是少量的以太币。要运行合约,您需要向矿工支付费用以使他们工作。这类似于将硬币放入点唱机。

支付(单位:ETH)=实际使用的gas量(单位:Gas)*gas价格(单位:ETH/Gas)

气体量

智能合约越复杂(计算步骤的数量和类型、存储大小等),完成合约操作所需的燃料就越多。如果你也用投币式点唱机做个比喻,就好像你点的歌越长越响,你要付的钱就越多。

燃油价格

虽然合约的复杂程度各不相同,但运行特定合约所需的燃料量是固定的(手续费的差异主要是燃料价格造成的),而gas价格由希望运行的人指定当他们请求运行合约时签订合约(有点像比特币的交易费用)。矿工将查看他们提供的燃料价格来决定他们是否愿意运行合同。如果你想让矿工运行合约,最好出高价。可以说,燃料市场是一个竞争激烈的拍卖场,取决于用户愿意为运行智能合约支付多少费用。

为什么需要燃料机制?

运行智能合约需要gas/ether/money,有效防止人们随意激活合约,从而避免了在free running的情况下可能出现的垃圾交易拥堵网络的问题。

编者注:这里没有说明的是,实际上gas的(最大)交易量和gas价格可以由用户自由调整。如果没有给出(最大)gas 量,合约中的计算无法完成,系统会完全回滚,就好像交易没有发生一样,虽然gas 费还是会支付给矿工;如果提供的gas过多,则在完成相关计算后,剩余的gas费用将自动退还到发起交易的账户中。以太的单位就像一美元可以分为100美分,一个比特币可以分为100,000,000聪(sataoshi),以太也有专有的单位命名规则。

以太的最小单位是wei(戴维),每个以太等于1000,000,000,000,000,000 wei,还有其他单位如:Finney、Szabo、Shannon、Babbage和Ada。这些名字来源于对加密货币和网络做出杰出贡献的科学家。

Wei 和 Ether 是两种最常见的货币面额。

智能合约的语言:Solidity / Serpent、LLL

智能合约共有三种通用语言,都可以编译成智能合约并运行在以太坊虚拟机上。三种语言分别是:

编者注:截至今天(2019 年 5 月 17 日),Solidity 已成为以太坊生态系统中最常用的合约编程语言。其他两种语言很少使用甚至被弃用。另外,以太坊正在研究将以太坊虚拟机EVM升级为eWASM,WebAssembly支持多种高级计算机语言的开发,有望进一步提升以太坊合约编写的友好性和安全性。

另外有人指出,不要先入为主认为Solidity与Javascript很相似,这样在学习的过程中会有很多误解。以太坊软件:geth、eth、pyethapp

以太坊的官方客户端都是开源的,所以你可以看到它背后的代码,你可以调整它来创建你自己的客户端。最受欢迎的客户如下:

以上都是基于命令行的程序(即黑底绿字),所以需要其他软件才能使用GUI。目前最流行的 GUI 软件是 Mist (github.com/ethereum/mist)。 Mist 以 geth 和 eth 为核心。

也就是说,geth 和 eth 在底层是丑陋的代码,而 Mist 是在它之上运行的漂亮接口。

编者注:2019 年 3 月,Mist 项目停止运营,团队分裂并转移到不同的区域。以太坊生态中最常见的两个客户端 Geth 和 Parity·Ethereum 也发展得相当不错,并且都有完整的图形界面。足迹:以太坊事件年表

2013 年底,Vitalik Buterin 在白皮书中讨论了“以太坊”的概念。 2014 年 4 月,Gavin Wood 博士在黄皮书中进一步阐述了这一概念。从那时起,以太坊的开发一直由开发者社区管理。

同年7、8月,以太坊众筹开发,2015年7月30日开放主网上线。

以太坊众筹

2014 年 7 月至 8 月期间,开发团队通过在线销售 ETH 代币获得资金——人们可以用比特币购买 ETH,当时汇率为 2000 ETH:1 BTC(截至 2016 年 1 月,1 BTC 可以兑换50 ETH 在公开市场)。

众筹的参与者可以使用比特币账户付款,并收到一个包含相应数量以太币的钱包。如需更多技术信息,请参阅以太坊博客:blog.ethereum.org/2014/07/22/launching-the-ether-sale/

在此期间,以太坊团队卖出获得超过 6000 万枚以太币,获得超过 31,500 枚比特币,当时价值约 1800 万美元。该团队又开采了 20%(1200 万 ETH)来支持开发和以太坊基金会。

软件发布代码:Frontier / Homestead / Metropolis / Serenity

以太坊软件的命名很有意思,是不是有点像苹果的 OS X 版本名称 Mavericks、El Capitan、Sierra na?

编者注:以上代号也被认为是以太坊的路线图和各个发展阶段。在撰写原始文章时(2016 年 10 月),Metropolis 阶段尚未发布。 2017年10月,大都会第一期拜占庭(Byzantine)发布; 2019年2月,大都会(Metropolis)二期君士坦丁堡(Constantinople)发布,预计2019年底进入Serenity(宁静)一期。总结

以太坊开发团队致力于构建一个不间断、抗审查、去中心化的世界计算机,可以运行计算、存储数据并允许交互。

以太坊有一个公开的、无需许可的开源版本,其代码副本已被采用并适用于专用网络。公版和私网解决的问题不同。

虽然目前的技术还不成熟,但我们相信随着越来越多的人在以太坊上使用、测试、开发和开发软件,它会变得越来越强大。

在区块链世界中,以太坊是最令人兴奋的技术之一,未来的发展值得期待。

10/3 更新

有人评论说我没有报道有关 The DAO(一个“去中心化自治组织”)的任何内容。 DAO 类似于基于流行风险投资基金的智能合约。一些黑客利用智能合约中的编码漏洞,将智能合约中的资金转移出去。

我也不是在谈论“以太坊经典”。 2016 年 7 月 20 日,黑客入侵了 The DAO。由于反对以太坊核心开发者的应对策略,以太坊经典(Ethereum Classic)脱离主链,成为另一条公链。以太经典有一种单独的货币,称为 ETC,在 1920 区块之前,ETC 和 ETH 共享区块链的同一部分。

本文旨在介绍以太坊,而 DAO 和 Ethereum Classic 都是高级主题。有兴趣的读者可以阅读我的《比特币与区块链基础》一书进一步了解。