# 《区块链技术与应用》12 ETH以太坊挖矿算法与难度调整

By [Minna Yu](https://paragraph.com/@minna-yu) · 2022-06-18

---

**这个系列的内容是根据肖臻老师《区块链技术与应用》公开课的内容进行的内容整理，以及部分延伸的思考。文末附有公开课链接。**

**课程基于18年5月的版本所讲述，但是对理解最近（2022.6）讨论很多的ETH 2.0有很大的帮助。本篇主要回答以下5个问题：**

1、和比特币对比，以太坊Mining puzzle的设计有什么特点？

2、如果普通机器都能参与挖矿，可能有什么坏处？

3、以太坊挖矿算法中的难度炸弹是什么？最大的特征是什么？

4、难度炸弹设置的目的是什么？

5、为什么2017年以太坊的挖矿难度激增？官方的处理方案是什么？

### 前述

Blockchain is secured by mining.

比特币的算法是天然的bug bounty，有捷径的话会获益很多。目前的算法经受考验。

但是也有值得改进的点，其中一个就是挖矿设备的专业化。

**One cpu, one vote.【中本聪最早的论文的想法】参与的人越多，越民主。**

**所以后续的mining puzzle设计都是ASIC resistance，以抵制专业的挖矿设备，普通计算机能参与，最好是连GPU 都resistance。**

ASIC算力强，计算能力是普通计算机的几千倍，但是内存性能很差。

所以ASIC resistance的方向，主要就是设计对内存需求比较强的Memory hard mining puzzle。

早期的一个代表是LiteCoin，用了scypt哈希算法，对内存要求比较强。

### 以太坊Mining puzzle的设计

以太坊：小的16M cache ；大的1G dataset；数据体量在逐步增加。

轻节点是临时计算出用到的dataset的元素，矿工是直接访存，必须在内存里存着1G的dataset

ethash以太坊的挖矿算法，需要1G的内存，目前是GPU挖矿为主。

以太坊没有出现专有矿机，还有个原因是从最早开始，就是在设计不用工作量证明（PoW），而是权益证明（PoS）来进行投票，这对于ASIC芯片厂商而言，非常不友好。

以太坊有pre-mining，提前预留的币，早期参与的人都收益很高，类似的有pre-sale，早期买入，类似早期投资。

2018年5月份的数据，矿池的集中程度头部的比较高。

hashrate指的是系统中所有的矿工每秒钟计算哈希的次数，不同的虚拟货币Mining puzzle不一样，hashrate不可比。

**Q：普通机器都能参与挖矿，可能有什么坏处？**

有人认为，普通机器都能参与也不好。原因是，专用机器参与成本比较高，矿机投入大。如果是普通机器可以参与，比如大的互联网公司，在全球几百万台计算器，需要的时候联合起来发动攻击。（或者有恶意的组织，利用云服务，租用机器来做这个事情会变得比较可行。）

### ETH挖矿难度调整

比特币每2016个区块（2周）调整难度，保持出块时间在10分钟左右，比特币每个区块都可能调整挖矿难度，改过很多版本。

### 本篇的内容基于以太坊2018年5月左右的版本所写的。

![](https://storage.googleapis.com/papyrus_images/c98f064f495240a75faedf8bff76c28919b3c93b6022c6e35240034c84f7e0ce.png)

早期的时候，数值比较小，越后期，数值越大。等难度炸弹释放的时候，挖矿越来越难，大家往Pos的迁移意愿会更强，传统的工作量挖矿很难。

但是权益证明的共识机制，比较难设计。

所以实操上，17年的时候挖矿的时间越来越长。当时的解决方案是把区块号往前减少了300万个。

减少300万个区块号之后，降低了挖矿难度，所以减少了挖矿的奖励，出块奖励从5个到3个。

![](https://storage.googleapis.com/papyrus_images/ba0c51d417a1ecd11f9ae32165ca87902ac812c4a52568fa610feca11a8ce9a7.png)

BIP：BitCoin Improvement Proposal

EIP：Ethereum Improvement Proposal

![](https://storage.googleapis.com/papyrus_images/decdcfe53857574502cba4cd27045cc2ea752227b0d9127388ec5636a5840a6b.png)

\*\*挖矿难度的增长曲线：\*\*早期平缓，17年开始，指数上升，主要是难度炸弹的威力开始释放。难度上升是回调之后，竞争加剧了。

![](https://storage.googleapis.com/papyrus_images/01d5aa182d33680e011247e18c7fef66f358e50cce31f4c102e98eacb98aed68.png)

出块时间早期稳定在15s左右，达到预期效果，17年开始指数上升，回调之后出块时间基本稳定在15s。

![](https://storage.googleapis.com/papyrus_images/ee6659d2c6f81130e5cfe9bbf1d1ec1fdf172cb09148cc4650e9c8f701933c97.png)

**视频课程链接**

[https://www.bilibili.com/video/BV1Vt411X7JF?spm\_id\_from=333.337.search-card.all.click&vd\_source=6807dc8dcddb18fe6db9d949c12b670c](https://www.bilibili.com/video/BV1Vt411X7JF?spm_id_from=333.337.search-card.all.click&vd_source=6807dc8dcddb18fe6db9d949c12b670c)

---

*Originally published on [Minna Yu](https://paragraph.com/@minna-yu/12-eth)*
