区块链 - 以太坊矿工节点

以太坊网络由各种类型的节点组成。一些节点仅用作钱包,而另一些节点则充当轻客户端,少数节点则充当维护整个区块链的完整客户端。

其中,挖矿节点尤为重要。挖矿是指通过共识机制选择新区块并随后将其添加到区块链的方法。

在挖矿过程中,矿工会收到货币(以太币)作为对其努力的奖励。这些挖矿节点(称为矿工)以以太币作为补偿,以鼓励他们验证和认证由交易组成的区块。这种挖矿活动通过确保计算的准确性,在保护网络方面发挥着至关重要的作用。

矿工节点的功能

矿工节点执行几个关键功能 −

  • 它监控在以太坊网络上广播的交易并选择要处理的交易。
  • 它识别陈旧的ommer 块并将其合并到区块链中。
  • 它更新账户余额以反映成功挖掘区块所获得的奖励。
  • 最终,计算出有效状态,并最终确定区块,代表所有状态转换的结果。

当前的挖矿方法利用工作量证明 (PoW),类似于比特币。要使区块被视为有效,它不仅必须满足一般一致性标准,还必须包括与指定难度级别相对应的 PoW。

以太坊的 Casper

一种名为 Casper 的新算法已被创建,以取代以太坊中当前的工作量证明 (PoW) 算法。该系统基于一项经济协议运行,该协议要求节点在生成区块之前提供保证金。

以太坊 Casper

在这种情况下,节点被称为 绑定验证器,提供保证金的过程称为 绑定

以太坊的共识机制

以太坊实施了该协议的精简版本,将计算投入最高的链指定为最终版本。

或者,人们可以确定最长的链,因为它反映了大量挖矿工作。

GHOST 协议最初是为了解决与快速生成区块相关的挑战而提出的,这通常会导致陈旧或孤立的区块。在 GHOST 框架中,陈旧区块(称为 ommers)被纳入计算中,以确定最长和最重的区块链。

以太坊共识机制

随着区块链在共识机制的约束下不断增加新区块,区块链可能会偶尔出现分裂,这种现象称为分叉

以太坊的分叉

区块链中的分叉是指将链分成两条独立的路径。这种分裂可能是有意或无意发生的。通常,硬分叉源于重大的协议升级,而无意分叉则可能源于软件错误。

此外,分叉可能是暂时的,链会不断分叉,直到找到最长、最重的链,最终实现一致性。当两个区块几乎同时生成时,就会发生这种临时分叉,导致链分裂,直到它解析为主链。

以太坊的 Ethash

Ethash 是指以太坊使用的 工作量证明 (PoW) 算法。最初作为 Dagger-Hashimoto 算法 引入,自最初实施以来,它经历了重大变化,演变成现在公认的 Ethash。

与比特币非常相似,挖矿的基本概念涉及发现随机数 nonce。当此随机数与区块头组合并进行哈希处理时,它会产生一个必须低于当前网络难度的值。

在以太坊早期,难度相对较低,允许使用 CPU 和单个 GPU 进行有利可图的挖矿。

以太坊的 Ethash DAG

Ethash 是一种内存密集型算法,这对在专用硬件上实施提出了挑战。与比特币类似,ASIC 的创建导致了挖矿集中化,内存硬工作量证明算法可以作为解决此问题的对策。

以太坊使用 Ethash 来阻止用于挖矿的 ASIC 的开发。Ethash 的性质使得创建具有广泛和快速内存功能的 ASIC 不切实际。该算法需要从称为有向无环图 (DAG)的固定资源中选择子集,该资源由随机数和块头决定。

DAG 是以伪随机方式生成的大量数据集。它在以太坊挖矿过程中生成的 DAG 文件 中表示为矩阵。Ethash 算法要求将 DAG 格式化为 32 位无符号整数的二维数组。只有在挖矿节点首次启动期间完全生成 DAG 后,才能开始挖矿。此 DAG 用作 Ethash 算法的种子。根据当前规范,纪元持续时间设置为 30,000 个块,大约相当于六天。

Ethash 如何工作?

Ethash 算法需要 DAG 文件才能运行。该文件每个纪元都会创建,包含 30,000 个区块。随着区块链的扩展,DAG 的大小会线性增加。

目前,DAG 大小约为 3.5 GB(截至区块 9325164),纪元编号为 310

协议以以下方式运行 −

  • 首先,使用 Keccak-256 哈希函数将前一个块的标头与 32 位随机随机数组合。
  • 此组合产生一个称为混合的 128 位结构。
  • 混合负责确定将从 DAG 中检索哪些数据。
  • 从 DAG 获取数据后,将其与当前混合"混合"以生成新混合,然后使用该新混合从 DAG 中获取其他数据。
  • 最终,第 64 个混合经过摘要函数以产生 32 字节序列。
  • 然后将此序列与难度目标进行比较。如果低于目标,则认为该随机数有效,工作量证明成功完成,从而挖掘出该区块。
  • 如果未达到目标,算法将使用不同的随机数再次启动该过程。