📖 术语 🟢 通俗解释 🔰 新手

🤫 自私挖矿 Selfish Mining

工作量证明(PoW)区块链上的一种作弊策略:矿工挖到块后不立刻广播,而是偷偷扣下来,私下养出一条更长的隐藏私链,再挑准时机放出,抢走超出本分的出块奖励。

💡
常见误解 — 攻击挖矿一定要掌握全网 51% 的算力?不对!自私挖矿证明,只要握有约 25%–33% 的全网算力,矿工就能不公平地多捞一笔。这也不是软件漏洞,它只是钻了正常规则的空子
⛓️ 共享块 🌐 公开链 — 诚实矿工 …逐渐落后 🤫 隐藏链 — 秘而不宣,私下开挖 🎉 放出 更长者胜 诚实块 🗑️ 沦为孤块
🌐 公开的诚实链一直很短,而 🤫 隐藏的私链偷偷一路领跑——等到 🎉 放出那一刻,因为最长链获胜,诚实块就被 🗑️ 弃成孤块。诚实矿工的辛苦全白费了。

🏃 一句话版本 — 偷偷领跑的人

想象一场接力赛,有个选手偷偷躲在一条隐藏跑道上猛冲。诚实的那一队还在规规矩矩地跑。眼看就要追到同一个点,作弊者突然冒出来说「我早就跑在前头了」。这下诚实队的努力全归零,功劳只算在作弊者头上。自私挖矿就是这么回事:矿工挖到新块却按下不报,私下默默养出一条更长的链,直到诚实矿工快追上来,才把它亮出来。

⛏️ 具体怎么玩,一步步看

  • 🔍 挖到了,却不吭声 — 自私矿工解出难题、挖到一个有效块,不广播出去,而是悄悄扣在手里
  • 🛤️ 私下接着挖 — 在那个秘密块上继续往下挖,养出一条领先于公开链的隐藏链
  • 🎉 挑准时机放出 — 等到诚实矿工快追上时,把这条更长的私链一口气公布
  • 🗑️ 把诚实块弃成孤块 — 因为工作量证明认最长链,诚实块就被丢弃,那些算力全白干

📌 这里没有任何代码被攻破。作弊者只是照着最长链规则走,并自己掌控什么时候才把块放出来。所以自私挖矿是一种策略,而不是黑客攻击。

📉 为什么 51% 不是那个魔法数字

很长一段时间里,大家都以为要攻击比特币,得掌握过半的算力才行。自私挖矿改写了这个印象。研究发现,只要攻击者握有全网约 25% 到 33%算力(哈希率),就能赢过诚实挖矿——远远不到一半。具体门槛取决于攻击者把自己的块扩散给其他节点的速度有多快:网络连接越好,门槛越低。

原本的假设自私挖矿揭示的真相
🛡️ 「算力没过 51% 就安全」只握有约 25%–33% 的矿工,就已经能多捞不公平的一份
🐞 「任何攻击都必然是漏洞」它钻的是正常规则和出块时机的空子——技术上什么都没坏

📜 它从哪儿来

这个想法出自 2013 年的一篇论文,题为 「Majority is not Enough: Bitcoin Mining is Vulnerable」(多数派还不够:比特币挖矿存在弱点),作者是康奈尔大学的 Ittay Eyal 与 Emin Gün Sirer。它后来又登上了 Communications of the ACM(第 61 卷第 7 期,2018 年)。论文最核心的一点是:比特币的挖矿奖励并不「激励相容」(incentive-compatible)——也就是说,这套机制并不总能让诚实行为成为最赚钱的选择。

🧲 为什么这件事重要

真正的危险在于中心化的压力。如果一个搞自私挖矿的矿池能多赚一份,理性的矿工就有理由加入它,去分那份更高的奖励。矿池越滚越大,聚拢的算力也越来越多,把网络一步步推离去中心化——而去中心化正是工作量证明的全部意义所在。到目前为止,比特币上从未被证实出现过大规模的自私挖矿攻击;它更多还是一项暴露弱点的研究成果,而非已被证实的真实事件。

❓ 常见问题

自私挖矿算是黑客攻击或代码漏洞吗?
不算。技术上没有任何东西出故障。作弊者完全遵守正常规则(包括「最长链获胜」这条),只是掐准了什么时候才把块放出去。难就难在这里:它是在钻规则的空子,而不是把规则打破。
攻击挖矿不是需要掌握全网 51% 的算力吗?
这是一个流行的看法,而自私挖矿恰恰挑战了它。2013 年的研究表明,只要掌握全网约 25% 到 33% 的算力,矿工就已经能拿到超出本分的份额,远不到 51% 的多数。
比特币上真的发生过自私挖矿吗?
比特币上从未被证实出现过大规模的自私挖矿攻击。它主要是一项揭示弱点的研究成果。但它依然重要,因为它点明了算力过度集中为什么危险。

🔗 相关术语 · 币种