主页 > imtoken快速下载 > 什么是挖矿和Ethash算法? 挖矿和Ethash算法介绍

什么是挖矿和Ethash算法? 挖矿和Ethash算法介绍

imtoken快速下载 2023-05-03 06:04:43

众所周知,加密货币在近几年发展得比较好。 许多人非常关注加密货币。 其中,比特币是最成功的虚拟货币。 最近很多人都在讨论挖矿算力市场。 下面小编就带大家了解什么是挖矿和Ethash算法? 希望小编的内容对您有所帮助。

什么是挖矿和Ethash算法?挖矿和Ethash算法介绍

挖矿这个词来自加密货币和黄金之间的类比。 黄金或贵金属是稀有的,电子代币也是如此,增加总量的唯一途径就是挖矿。 以太坊也是一样,唯一的发行方式就是挖矿。 但与其他例子不同的是,挖矿也是一种通过在区块链中创建、验证、发行和传播区块来保护网络安全的方法。

btc挖矿软件安卓版_btc挖矿下载_btc挖矿随机性

什么是挖矿? 与所有区块链技术一样,以太坊使用激励驱动的安全模型。 共识是基于选择总难度最高的区块。 矿工创建区块,其他人检查有效性。 只有在包含一定难度的工作以及其他资格条件时,块才有效。 请注意,以太坊 Serenity 里程碑可能会被取代(请参阅权益证明模型)。

以太坊区块链在很多方面与比特币区块链相似,但也存在一些差异。 在区块链架构方面,以太坊和比特币的主要区别在于,与比特币不同,以太坊区块不仅包含交易列表,还包含最近的状态(merkle patricia root hash table encoded in state)除此之外,另外两个值,块号和难度,也存储在块中。

使用的工作量证明算法称为 Ethash(Dagger-Hashimoto 算法的改进版本),它涉及找到算法的随机数输入,使得结果低于某个难度阈值。 工作量证明算法的要点是,没有比枚举可能性更好的策略来找到这样的随机数,而且解决方案的验证是微不足道且廉价的。 由于输出具有均匀分布(作为应用哈希函数的结果),我们可以保证,平均而言,找到这样一个随机数所需的时间取决于难度阈值。 这使得通过简单地操纵难度来控制寻找新区块的时间成为可能。

btc挖矿下载_btc挖矿软件安卓版_btc挖矿随机性

如协议所述,难度动态调整的方式是全网每15秒产生一个区块。 我们说网络产生了一个区块时间为 15 秒的区块链。 这个“心跳”基本上是强调系统状态的同步,确保不可能维持分叉(允许双花)或被恶意分子改写,除非攻击者拥有超过一半的全网算力(所谓的)称为 51% 攻击)。

任何参与网络的节点都可能是矿工,预期的挖矿收益与他们的(相对)挖矿算力成正比,例如每秒尝试的随机数数量,由网络的总哈希率归一化。

Ethash 工作量证明是内存困难的,这使得它具有 ASIC 抗性。 Memory-hardness 是通过工作量证明算法实现的,该算法需要选择依赖于 nonce 和块头的固定资源的子集。 这种资源(几千兆字节大小的数据)称为 DAG。 DAG每3000个区块就完全不同,125小时的窗口称为一个epoch(约5.2天),生成需要一点时间。 由于DAG只由区块高度决定,所以可以提前生成。 如果没有提前生成,客户端需要等到流程结束才能生成区块。 如果客户端不提前预生成和缓存 DAG,网络可能会在每个纪元转换之间经历大量的块延迟。 注意不需要生成DAG来验证工作量证明,可以在低CPU内存小的状态下验证,特殊情况下,从头开始创建节点时,只会在创建DAG时启动对于现有的纪元挖掘。

btc挖矿软件安卓版_btc挖矿下载_btc挖矿随机性

成功获得区块的工作量证明矿工将获得:

“获胜”区块的静态区块奖励,由 5.0 (5) ETH 组成

在区块中花费的 gas 成本——一定数量的以太币,取决于当前的 gas 价格

btc挖矿下载_btc挖矿软件安卓版_btc挖矿随机性

以每个叔块包含额外 1/32 的形式为叔块提供额外奖励

获胜矿工提交的区块中执行的所有交易消耗的气体由每笔交易的发送者支付。 作为共识协议的一部分,已发生的天然气成本记入矿工账户。 随着时间的推移,这会使区块奖励相形见绌。 挖矿的成功取决于设定的区块难度。 块难度动态调整每个块以指示网络哈希功率以创建 12 秒块时间。 因此,找到一个块的机会是由相对于难度的哈希率产生的。

Ethash 使用 DAG(有向无环图)进行工作量证明算法,该算法针对每个时期生成,例如每 3000 个区块(125 小时,约 5.2 天)生成一次。 DAG 需要很长时间才能生成。 如果客户端只是按需生成它,它会在每个 epoch 转换之前等待很长时间才能找到新 epoch 的第一个块。 然而btc挖矿随机性,DAG 只依赖于块的数量,因此可以预先计算以避免在每个 epoch 转换时等待时间过长。 Geth 和 ethminer 执行自动 DAG 生成,一次维护 2 个 DAG 以实现平滑的纪元转换。 当从控制台控制挖矿时,会打开和关闭自动 DAG 生成。 如果 geth 使用 --mine 选项启动,它也会默认启用。 请注意,客户端共享 DAG 资源,如果您运行任何客户端的多个实例,请确保仅在一个实例中打开自动 DAG 生成。

btc挖矿随机性_btc挖矿软件安卓版_btc挖矿下载

为任意时期生成 DAG:实例 geth makedag 360000 ~/.ethash。 请注意,ethash 使用 ~/.ethash (Mac/Linux) 或 ~/AppData/Ethash (Windows) 作为 DAG,以便它可以在不同的客户端实现和多个运行实例之间共享。 我们的算法 Ethash(以前称为 Dagger-Hashimoto)是基于一个庞大的、瞬态的、任意生成的数据集形成一个 DAG(Dagger-part)规定,试图解决它一个特定的约束,部分通过 Block header hash 来决定。

它专为在只有慢速 CPU 的环境中散列快速验证时间而设计,但在提供大量高带宽内存时为挖掘提供了巨大的加速。 大内存需求意味着大型矿工的超线性收益相对较小。 高带宽要求意味着通过堆叠许多超高速处理单元来加速,共享相同的内存对每个单独的单元几乎没有好处。

因此,没有节点验证的好处阻碍了中心化btc挖矿随机性,这在挖矿中很重要。 外部挖矿应用程序与以太坊作业规范和报告的后端之间的通信是通过 JSON-RPC API 进行的。 提供了两个RPC函数; eth_getWork 和 eth_submitWork。 这些在 JSON-RPC API 维基百科文章的 Miners 条目下有正式记录。 为了挖矿,您需要一个能够挖矿的完全同步的以太坊客户端和至少一个以太坊账户。 该账户用于发送挖矿奖励,通常称为币基或以太币基。 请参阅本指南的“创建帐户”部分以了解如何创建帐户。

警告:在开始挖矿之前,请确保区块链和主链完全同步,否则您将无法在主链上挖矿。 以上就是小编为大家整理的关于挖矿和Ethash算法的具体信息。 相信你应该有所了解。 希望小编的内容能够对您有所帮助。