挖矿算法的基本要求:
1、挖矿解密的结果需要被及时证明,解谜的难度也要具有可调整的特征。
这样一来,解谜过程就可以具备足够的难度使得对区块链的攻击变得代价高昂,同时又能保证解谜本身可以在一个稳定的频率上实现。
2、在任意单位时间找到一个谜底的成功率,大致上要与所贡献的哈希算力成正比。
意味着,大矿工虽然具有非常强大的挖矿机,他也只是有着一定比例的优势来成为下一个找到谜底的矿工,即使是小矿工,也会有一定的机会能够成功并且获得奖励。
一个好的解谜方案,是给每个矿工一个按比例性的成功概率来赢得下一个谜底,这个概率是与他们所贡献的哈希算力成比例。
从数学角度来看,一个好的挖矿解谜一定是一个“无记忆进程的”,而任何其他的方法都将由于过去的挖矿工作,不可避免的在一定程度上,奖励挖矿工人。
任何可行的解谜从根本上都是一个不断试错的过程,这种解谜所需要的时间,必然服从一个指数分布。
可以调整的难度、快速验证和无关过程属性,是比特币挖矿解谜的三大核心特征。