主页 > imtoken地址查询 > 以太坊 PoW 共识算法 Ethash

以太坊 PoW 共识算法 Ethash

imtoken地址查询 2023-01-17 04:19:52

以太坊 PoW 共识算法 Ethash

比特币作为区块链的鼻祖,是一个稳定运行了10年的PoW共识。但从 2011 年开始,由于比特币盈利,市场经济中出现了专业矿机,对哈希算法、散热、能耗进行优化,与运行在数千台普通计算机上的比特币网络节点分离。中国公平参与挖矿的初衷。这将导致节点中心化并面临 51% 攻击的风险。因此,以太坊需要预防和改进 PoW。

因此,在以太坊中设计共识算法时,期望达到两个目的:

ASIC抗性:为算法创建专用硬件的优势应该尽可能小,理想情况下即使开发了专有集成电路,加速能力也应该足够小。这样普通电脑上的用户仍然可以赚取微薄的利润。轻客户端可验证性:轻客户端应快速有效地验证区块。

以太坊2.0质押_以太坊2.0最新消息_以太坊2.0还能挖矿吗

以太坊早期起草的共识算法是 Dagger-Hashimoto,但事实证明 Dagger 容易受到 Sergio Lerner 的共享内存硬件加速的影响。所以最后放弃了Dagger-Hashimoto,改变了研究方向。在对 Dagger-Hashimoto 进行大量修改后,最终形成了一种与 Dagger-Hashimoto 截然不同的新算法:Ethash。Ethash是以太坊1.0规划的PoW共识算法,PoS共识将在以太坊2.0中推广。

下图是Ethash算法在挖矿时寻找Nonce的过程。前半部分为前期准备工作,根据区块高度计算区块所在的窗口期(一个窗口期固定为30000个区块)。种子哈希、缓存和数据集都固定在一个窗口内。因此,可以根据窗口期缓存数据,大部分时间都是读取数据,很少需要重新生成。

以太坊2.0还能挖矿吗_以太坊2.0质押_以太坊2.0最新消息

Ethash算法计算流程

下半场就是找Nonce。当矿工准备一个区块数据并需要进行 PoW 工作量计算时,他们实际上是在蛮力破解一个数学问题。已知块RLP数据和数据集,结合待求解变量Nonce,进行数据合成计算。需要使计算结果满足出块难度系数的要求。如果不满足要求以太坊2.0还能挖矿吗,继续使用Nonce++继续计算,直到满足要求。

以太坊2.0最新消息_以太坊2.0质押_以太坊2.0还能挖矿吗

Ethash算法的基本内容

Ethash 是以太坊 1.0 规划的 PoW 算法。算法的基本内容如下:

以太坊2.0质押_以太坊2.0最新消息_以太坊2.0还能挖矿吗

通过扫描块头直到该点,可以为每个块计算一个种子。从种子中,可以计算出 16 MB 的伪随机缓存。轻客户端存储此缓存。从缓存中,可以生成一个 1 GB 的 DAG 数据集,数据集中的每个项目仅依赖于缓存中的少量项目。完整的客户端和矿工存储此数据集。数据集随时间线性增长。

种子是通过对每个窗口期的种子进行哈希运算形成的,可以从种子中计算出一个 16MB 的伪随机填充缓存,以辅助验证块和生成数据集。数据集是通过缓存生成的初始 1GB 数据以太坊2.0还能挖矿吗,数据集中的每个项目(64 字节)仅依赖于缓存中的少量项目。小容量缓存便于各种客户端存储,而数据集仅存储在完整的客户端和矿工节点中。

以太坊2.0质押_以太坊2.0最新消息_以太坊2.0还能挖矿吗

此处选择 16 MB 缓存是因为较小的缓存允许使用在 ASIC 中太容易使用的轻量级评估方法。16 MB 的缓存仍然需要非常高的缓存读取带宽,而较小的缓存可以更容易地进行优化。较大的缓存会使算法太难于轻客户端验证块。

选择 1GB 数据集是为了要求内存级别超过大多数专用内存和缓存的大小,但普通计算机可以并且可以使用它。该数据集被选择为每 30,000 个块更新一次,因为间隔太大,无法更容易地创建设计为很少更新且只经常读取的内存。间隔太短会增加进入门槛,因为弱机器会花费大量时间以固定成本更新数据集。

同时,缓存和数据集大小随时间线性增长,为了降低循环行为时意外规律的风险,数据大小为不超过上限的素数。它以每年大约 0.73 次的速度增长,这与摩尔定律大致相同。这仍然存在跨越摩尔定律的风险,这将导致挖矿需要非常大量的内存,导致普通 GPU 无法用于挖矿。

由于 PoW 验证可以通过使用缓存重新生成您需要的数据集的特定部分来使用少量内存完成,因此您只需要存储缓存,而不需要存储数据集。

ASIC是一种专用集成电路,是指为响应特定用户要求和特定电子系统的需要而设计和制造的集成电路。Dagger-Hashimoto 在以太坊早期使用的更多算法是两种算法的组合。Ethash 是以太坊 1.0 PoW 共识算法,