欢迎光临
我们一直在努力

肖臻《区块链技术与应用》第19讲 -- “抗ASIC”的理想与现实:深入解析以太坊的挖矿算法设计

摘要:
比特币工作量证明的巨大成功背后,也伴随着一个饱受争议的问题——挖矿设备的专业化与中心化。本文基于北京大学肖臻老师的公开课内容,深入探讨了以太坊为实现“抗ASIC”这一理想而设计的挖矿算法。文章首先阐述了抵抗ASIC的动机,即回归“一人一CPU一票”的去中心化初衷。随后,文章分析了“内存困难型”算法的核心思路,并以莱特币的Scrypt算法为例,揭示了早期尝试因迁就轻节点而失败的教训。接着,详细拆解了以太坊更成功的Ethash算法,阐明其如何通过“小缓存”与“大数据集”的分离设计,巧妙地平衡了矿工与验证者的需求。最后,本文引入了一个深刻的思辨:ASIC主导的挖矿生态,是否可能反而比通用设备参与的挖矿更安全?


1. 比特币挖矿的“原罪”:为何要抵抗ASIC?

比特币的SHA256挖矿算法是一个纯粹的算力竞赛,它经受了时间的考验,被证明是安全可靠的。然而,这种计算密集型的设计,不可避免地催生了专门用于挖矿的ASIC芯片。这些专用设备拥有比普通计算机高出数千倍的算力,导致了以下问题:

  • 违背设计初衷: 比特币白皮书中曾提出“one CPU one vote”的理想,希望普通人也能用家用电脑参与到网络共识中。ASIC的出现将普通用户彻底排除在外。
  • 挖矿中心化: 高昂的ASIC矿机研发和购买成本,使得算力高度集中于少数几个大型矿池和制造商手中,对网络的去中心化构成威胁。

因此,在比特币之后出现的许多加密货币,都将抗ASIC(ASIC Resistance)作为一个核心设计目标。

2. 核心思路:用“内存”对抗“算力”

如何设计一个对ASIC芯片不友好的挖矿难题?一个主流的思路是,增加解题过程对内存的需求,即所谓的内存困难型算法(Memory-Hard Puzzle)。

  • 原理: ASIC芯片的优势在于极致的并行计算能力,但在内存带宽和容量上,相比于同等价位的通用计算机(CPU/GPU)并没有数量级上的优势。
  • 目标: 设计一个挖矿算法,使其严重依赖于对大量内存的快速、随机访问。这样一来,ASIC的纯算力优势就被大大削弱,通用计算机反而能凭借其大容量内存的优势参与竞争,从而拉平起跑线。

3. 莱特币的尝试与妥协:Scrypt算法的教训

莱特币是抗ASIC理念的早期践行者,它采用了Scrypt哈希算法。

  • Scrypt工作原理(简化版):
  • 初始化一个巨大的数组(例如1GB),并用伪随机数填充。
  • 挖矿过程需要按照伪随机的顺序,反复从这个大数组中读取数据进行计算。下一个读取的位置,取决于上一次读取到的数值。
  • 时间与内存的权衡: 为了高效挖矿,矿工必须将整个大数组完整地保存在高速内存中。如果为了节省内存而不保存,那么每次读取时都需要从头重新计算,计算量会急剧增加。
  • 致命的缺陷: 这个难题对矿工是困难的,但对**验证者(尤其是轻节点)**也是困难的。轻节点(如手机钱包)不可能为了验证一个区块,就在内存里生成一个1GB的大数组。
  • 最终的妥协与失败: 为了照顾轻节点,莱特币在实际应用中,不得不将Scrypt算法所需的内存大小限制在一个极低的水平——仅128KB。这个大小对于ASIC芯片的设计和生产来说,根本不构成实质性障碍。最终,莱特币的ASIC矿机还是被研发了出来,其抗ASIC的目标宣告失败。

4. 以太坊的精妙设计:Ethash的双数据集方案

以太坊吸取了莱特币的教训,设计了一套更复杂的内存困难型算法——Ethash,它巧妙地分离了矿工和验证者的需求。

4.1 “小缓存”与“大数据集”的分离

Ethash使用了两个数据集:

  • 一个小的“缓存”(Cache): 初始大小为16MB,生成方式与Scrypt的数组类似,可以由轻节点快速生成和保存。
  • 一个巨大的“数据集”(DAG): 初始大小为1GB,并且会随时间不断增长(目前已超过5GB)。这个大数据集是由小缓存生成的。
  • 工作流程:

    • 矿工 (Miner): 必须在挖矿前完整地生成并存储那个巨大的DAG数据集在内存中。挖矿过程就是对这个大数据集进行大量的伪随机读取。
    • 验证者 (Verifier / 轻节点): 只需存储那个小小的Cache。当需要验证一个挖矿结果时,它可以利用Cache按需、实时地计算出DAG数据集中仅用于本次验证的那一小部分数据。

    通过这种“一大一小”的设计,Ethash成功地做到了:

    • 对矿工是内存困难的: 必须有GB级别的内存。
    • 对验证者是轻量级的: 只需MB级别的内存。
    4.2 “狼来了”策略:PoS转型预期下的ASIC威慑

    以太坊抗ASIC的成功,还有另一个重要原因:它从早期就不断宣传将从工作量证明转向权益证明(Proof-of-Stake, PoS)。

    • ASIC的研发周期长、成本高。对于厂商来说,如果投入巨资研发出一款以太坊ASIC矿机,而以太坊在一两年内就取消了挖矿,那么这笔投资将血本无归。
    • 这种持续的“转型预期”,像一柄达摩克利斯之剑,极大地威慑了ASIC厂商的入场意愿。

    5. 终极思辨:ASIC抵抗真的更安全吗?

    课程的最后,肖臻老师提出了一个发人深省的、反直觉的观点:让通用计算设备参与挖矿,可能反而不安全。

    • 攻击ASIC网络的成本: 攻击一个由ASIC主导的网络(如比特币),攻击者必须投入巨额资金购买这些除了挖矿别无他用的专用设备。一旦攻击成功导致币价暴跌,这些昂贵的硬件将瞬间变为一堆废铁。攻击的经济成本和风险极高。
    • 攻击通用设备网络的成本: 攻击一个由GPU/CPU挖矿的网络,攻击者无需购买硬件。他们可以通过租用大型云服务商(如AWS、Google Cloud)的服务器集群,或者组织僵尸网络(Botnet)来临时性地获得巨大算力。攻击结束后,这些通用设备可以立刻恢复原用途。

    从这个角度看,ASIC的“专用性”反而为网络构建了一道坚实的经济护城河,使得恶意攻击的成本和沉没风险大大提高。而“抗ASIC”在追求去中心化理想的同时,也可能为廉价的、租用式的攻击敞开了大门。

    赞(0)
    未经允许不得转载:171主机测评 » 肖臻《区块链技术与应用》第19讲 -- “抗ASIC”的理想与现实:深入解析以太坊的挖矿算法设计
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址