如何看待自私挖矿法对比特币带来的威胁？
自私挖矿简单说就是，挖到矿不发布，然后继续挖，挖到第二块的时候再发布出来。 我们来对比一下两种挖矿的收益，假设你拥有1/3的矿力，采用默认挖矿，平均每十块就有一块你挖出来的，也就是你的期望收益是1/3。 如果使用自私挖矿的话，如果你和其他人从同一个时间开始，那么你成功的概率=你连续挖到2块矿的概率/除你之外的人连续挖到2块矿的概率。你的期望收益是(1/3)^2/(2/3)^2=1/4。 乍看起来，这种方法是明显不合算的。 然而，实际上自私挖矿的人可以干点更聪明的事——1，你只有在比别人早挖到第一块的时候才采取这个策略，如果别人已经公布了第一块，你就立刻在新块上重新开始这个策略。2，如果你先发现了第一块，但是在发现第二块之前别人也发现了第一块，这个时候，如果你的网络连接够好，你可以立即公布你的第一块，然后就进入了两个块的竞争状态。3，就算你没竞争过对手，你仍旧可以和其他人处于同一起跑线竞争下一次挖矿。 换句话说，自私挖矿的策略其实是这样的：挖到块不马上发而是攥在手里，这个时候，你的链比别人长，视作“优势”。否则，如果你的链和别人一样长或者比别人短，则视为劣势。 当处于优势的时候，挖自己的链。 当处于劣势的时候，立即发布自己的链然后挖别人的。 我们考虑一种极端情况——假设你的网比任何人都好，以上的第二种策略中，你永远能够竞争赢对手，这会出现什么情况呢？ 这相当于说当你挖到矿的时候，你可以尝试挖下一个。如果挖到了，你赚了，如果挖不到，你发布之前挖到的，因为你网好竞争总能赢，所以你没任何损失。 所以，这种情况下，你自私挖矿的收益，严格优于你正常挖矿，无论你有多少算力。  然而，这种情况太理想化，最好的情况，是你和别人在竞争中五五开，最坏的情况，是你完全竞争不过别人——这点不难理解，因为毕竟别人挖到了矿就会广播，而你得先听到别人的广播再广播。 在这两种情况下，采取自私挖矿策略严格有力的算力阈值，分别是25%和33%。也就是说，如果你能在竞争中和别人五五开，你只要有25%的算力，自私挖矿就是更有利的选择。就算你在竞争中总是会输，如果你有33%的算力，自私挖矿也是严格有利的。 也许有人认为这些问题的理论意义大于实际意义，但是我个人觉得这已经很能说明问题了，51%攻击，其实也是理论意义大于实际意义，但你能说它不重要吗？我们从极端的33%的情况来说—— 如果你有33%的算力，自私挖矿是严格有利于你的，作为矿工，在比特币的规则里，你会采取自私挖矿。 而这个时候，比特币的安全性的前提就不存在了，因为此时，网络里通常存在两条链，一条公开的，一条隐藏的。而33%的算力在进行投机式的挖矿的时候，并没有保护网络的安全性。这导致了两个问题——1，网络的安全性下降了，不需要50%的算力也可以进行攻击；2，一些算力较小的矿工，也会发现自私挖矿对于他们严格有利（因为全网的算力实际上变小了）。 我记得这些可能是另一篇论文里提到的，但是不记得出处了。 这就是我在那个回答里提到的问题—— 51%攻击听起来是说只有当有人有51%的算力的时候，比特币才会不安全。 实际上，当有人有超过25%甚至接近这个值的算力的时候，比特币的安全性就不能简单粗暴地用51%的模型来考虑了，因为那个时候你就不能认为所有的矿工都是遵守规则的了。