以太坊,作为全球第二大加密货币平台,其共识机制经历了从工作量证明(Proof of Work, PoW)到权益证明(Proof of Stake, PoS)的重大转变,这一转变的核心,便是其共识算法的迭代,本文将详细解析以太坊曾经的挖矿算法——Ethash,并简要介绍其向权益证明(现在称为“合并”后的共识机制)过渡的背景与意义。

以太坊挖矿的基石:Ethash算法

在“合并”(The Merge)之前,以太坊与比特币类似,采用工作量证明(PoW)共识机制,而其特定的挖矿算法名为Ethash,Ethash是一种内存-hard(Memory-Hard)算法,旨在让挖矿更多地依赖于内存(RAM)而非单纯的计算能力(CPU/GPU),从而抵抗专用挖矿设备(如ASIC矿机)的中心化趋势。

  1. Ethash的核心目标:

    • 抗ASIC性: 通过增加内存访问需求,使得设计专门用于Ethash挖矿的ASIC芯片变得困难和昂贵,希望将挖矿权力更广泛地分布到普通用户的GPU上。
    • 去中心化: 降低挖矿门槛,鼓励更多参与者加入网络,提高网络的安全性和抗审查能力。
    • 公平性: 确保没有单一实体能够轻易控制大部分算力,维持网络的去中心化特性。
  2. Ethash算法原理: Ethash算法可以看作是对SHA-3算法的一种改进和扩展,其核心思想是“计算-数据分离”(Compute-and-Data Separation)。

    • DAG(有向无环图): Ethash使用一个巨大的、随时间线性增长的数据集,称为DAG(Directed Acyclic Graph),这个DAG是预先计算好的,并存储在挖矿节点的内存中,每个以太坊 epoch(每个epoch包含30000个区块,约125天)会生成一个新的DAG,DAG的大小决定了挖矿所需的内存量,随着以太坊网络的发展,DAG会越来越大(目前已有数GB级别)。
    • 缓存(Cache): 除了DAG,Ethash还使用一个较小的、同样随epoch变化的缓存,缓存是从DAG中计算得出的,大小约为几MB,缓存可以完全加载到GPU的高速缓存中,用于快速访问。
    • 挖矿过程:
      1. 随机配图