在探讨以太坊挖矿机制时,一个经常被提及但又可能让新手感到困惑的概念便是“DAG设置”,DAG,全称为“有向无环图”(Directed Acyclic Graph),是以太坊PoW(工作量证明)挖矿过程中一个至关重要的数据结构,理解DAG及其设置,对于深入认识以太坊挖矿的原理、硬件需求以及未来的发展方向具有重要意义。

什么是以太坊的DAG?

DAG是以太坊为了抵抗ASIC(专用集成电路)挖矿矿机,实现挖矿的去中心化而设计的一个巨大数据集,它不是简单的数据库表,而是一种图数据结构,由大量的“顶点”(Vertices)和“边”(Edges)组成,这些边是有方向的,且图中不存在环路。

在以太坊中,DAG与每个“epoch”(纪元,约等于4万个区块)相关联,每个epoch开始时,会生成一个新的DAG,这个DAG包含了该epoch内所有挖矿计算所需要的数据,DAG的大小会随着以太坊网络的成长而逐渐增大,具体而言,每个epoch的DAG由两个部分组成:一个较小的“cache”(缓存,约几GB)和一个较大的“dataset”(数据集,目前从数十GB到数百GB不等),矿工在挖矿时,需要将这两个部分加载到显存(VRAM)中,然后进行复杂的哈希计算。

DAG设置的核心要素与挖矿的关系

“DAG设置”通常涉及到与DAG生成、大小、存储和访问相关的参数配置,这些设置直接影响着挖矿的性能和硬件要求:

  1. DAG的大小与增长规律

    • 初始大小:在以太坊创世时,DAG的大小非常小,但随着时间的推移,每个epoch的DAG大小都会固定增加。
    • 增长规则:每个epoch(约4万块,约13-14天),DAG的大小会增加约一定量(具体取决于以太坊的改进提案,如EIP-1559后的调整),DAG的大小大约每两年翻一番。
    • 当前与未来规模:在2023年,DAG大小已超过50GB,并且持续增长,这意味着未来的DAG会越来越庞大。
  2. DAG与显存(VRAM)的关系

    • 核心瓶颈:这是DAG设置中最关键的一点,矿工在进行Ethash挖矿时,必须将当前epoch的DAG完整地加载到显卡的显存中,如果显卡的显存容量不足以容纳DAG,那么这张显卡将无法进行有效的以太坊挖矿。
    • 显存要求:当DAG大小超过4GB时,显存小于4GB的显卡(如GTX 1060 3GB)就无法再挖矿,随着DAG增长到6GB、8GB、10GB甚至更高,对显卡显存的要求也越来越高,这也是为什么市面上大显存的显卡(如RTX 3060 12GB, RTX 3090 24GB)在以太坊挖矿中更受欢迎的原因。
  3. DAG的生成与访问随机配图