-
在探讨以太坊(ETH)挖矿的奥秘时,一个无法回避的关键词便是DAG,它不仅是以太坊PoW(工作量证明)共识机制的核心组成部分,更直接影响着矿工的挖矿效率和硬件选择,本文将深入浅出地解析什么是DAG,它在ETH挖矿中扮演的角色以及其带来的影响。

什么是DAG?
DAG,全称为“有向无环图”(Directed Acyclic Graph),是一种数据结构,与传统的线性链表(如比特币的区块链)不同,DAG允许数据节点之间存在多个前驱和后继关系,但同时又确保图中不存在任何环路,即无法从一个节点出发经过若干边后又回到该节点。
在以太坊的语境下,DAG并非指整个以太坊网络的状态,而是特指用于Ethash挖矿算法中的“数据集”(Dataset),这个数据集是一个巨大的、伪随机生成的DAG结构,它会随着以太坊网络的进展而不断“增长”。
DAG在ETH挖矿中的核心作用

DAG在ETH挖矿中的主要作用是抵抗ASIC(专用集成电路)矿机,维护以太坊网络的去中心化特性,其工作原理与Ethash挖矿算法紧密相关:
- Ethash算法:Ethash是以太坊采用的PoW算法,它要求矿工在进行哈希运算时,不仅要访问一个相对较小的“缓存”(Cache),还要访问一个巨大的“数据集”(DAG)。
- 缓存与数据集的关系:
- 缓存(Cache):大小约为几GB,相对于数据集较小,并且更新频率较低(每个epoch,即约30,000个区块,更新一次),缓存可以完全加载到矿机的显存(VRAM)中。
- 数据集(DAG):这是DAG的主体,其大小会随着时间的推移而线性增长,每个epoch(约4-5天),DAG的大小会增加约8GB,在以太坊合并前,DAG大小已经增长到超过500GB,并且还在持续增加。
- 挖矿过程:矿工在尝试找到一个满足难度要求的nonce值时,需要频繁地从DAG中读取数据,由于DAG体积庞大,无法全部放入显存,矿机需要根据缓存中的信息,动态地从DAG的特定部分读取数据到显存进行处理。
DAG如何影响挖矿和硬件选择?
DAG的设计直接决定了ETH挖矿对硬件的要求,尤其是显存(VRAM):
-
显存(VRAM)大小是关键:

- 由于Ethash算法要求矿机能够访问整个DAG,因此矿机的显存必须大于或等于当前epoch的DAG大小,如果显存不足,矿机将无法加载DAG的必要部分,从而无法进行有效的挖矿。
- 这也是为什么随着DAG的增长,一些显存较小的显卡(如4GB显存的显卡)逐渐被淘汰,因为它们无法容纳日益增大的DAG文件。
- 当DAG大小达到4GB时,4GB显存的显卡(由于系统占用,实际可用显存不足4GB)就无法再挖矿,同理,当DAG接近或超过8GB时,8GB显存的显卡也会面临淘汰风险。
-
抵制ASIC,促进GPU挖矿:
- DAG的巨大体积和需要频繁随机访问的特性,使得为它设计专门的ASIC芯片变得非常困难和昂贵,ASIC虽然在特定哈希算法上效率极高,但面对需要大量内存带宽和容量的DAG,其优势会被大大削弱。
- 相比之下,GPU(图形处理器)拥有大量的并行计算单元和相对较大的显存,更适合处理这种需要大规模内存访问的挖矿任务,DAG的存在有效地保护了以太坊挖矿对GPU的依赖,从而维持了挖矿的去中心化程度,让更多普通用户能够参与其中。
-
DAG的增长与挖矿生命周期:
- 以太坊网络设计了DAG的线性增长机制,这意味着未来DAG会越来越大,这虽然在一定程度上增加了新矿工的入门门槛(需要购买显存更大的显卡),但也延长了现有高端显卡的挖矿生命周期,只要其显存能够容纳未来的DAG。
- 矿工在选择挖矿显卡时,必须考虑其显存大小是否能满足未来一段时间内DAG的增长预期。
DAG的未来:从PoW到PoS的演变
值得注意的是,以太坊已经通过“合并”(The Merge)从PoW共识机制转向了PoS(权益证明)机制,在PoS模式下,不再需要传统的GPU挖矿和DAG。
- PoS中的DAG:在PoS时代,DAG仍然存在,但其作用和形式发生了变化,它不再用于挖矿,而是与以太坊的另一个重要升级“分片”(Sharding)相关,用于处理跨分片交易和验证者之间的数据可用性检查等,此时的DAG规模增长速度也与PoW时期不同,且对普通用户的影响不再直接体现为硬件挖矿要求。
-