以太坊,作为全球第二大加密货币,其挖矿机制一直是社区关注的焦点,在从工作量证明(PoW)向权益证明(PoS)过渡的“合并”(The Merge)之前,PoW挖矿是以太坊网络共识的核心,而在PoW挖矿,尤其是依赖显卡(GPU)的挖矿过程中,内存占用是一个至关重要且常常被讨论的话题,本文将深入探讨以太坊挖矿中内存占用的角色、影响因素、优化策略以及“合并”后的变化。

以太坊挖矿为何如此依赖内存?——DAG的引入

要理解以太坊挖矿的内存占用,首先需要了解DAG(有向无环图,Directed Acyclic Graph),自以太坊拜占庭升级后,为了增加ASIC矿机的挖矿难度,鼓励去中心化的GPU挖矿,以太坊引入了DAG机制。

  1. DAG是什么? 每个以太坊 epoch(约13小时,或每30,000个区块)会生成一个独特的DAG文件,这个文件被存储在GPU的显存(VRAM)中,是挖矿过程中进行哈希运算所必需的数据集,随着网络的进展,DAG的大小会不断增长。

  2. DAG与内存占用的关系:

    • 大小增长: DAG的大小与epoch号相关,计算公式为 DAG_SIZE = 3 * 8 * (EPOCH_NUMBER + 3770000) / 30000 - 2 * 8 GB,截至2023年),DAG大小已超过GB级别,并且仍在缓慢增长,这意味着,挖矿GPU需要有足够的显存来容纳这个DAG文件。
    • 显存是关键: 在GPU挖矿中,DAG数据主要加载到GPU的显存(VRAM)中,显存的大小直接决定了GPU能否参与某个epoch的以太坊挖矿,当DAG大小超过4GB时,显存小于4GB的GPU将无法再挖矿(如一些老款显卡)。
    随机配图