比特币可信么


我们在“什么是工作量证明”这一章节中,已经了解到,中本聪发布的论文中,采用一种叫“哈希现金”的算法,这种算法是亚当.柏克在2002提出来的哈希算法,离现在已经有11年了。这种算法,是给出一个随机数,然后根据哈希算法,要计算出包含多个0的数值,随着0的数目增长,计算量呈指数增长。而反过来,要验证给出的结果是否正确,却非常快速,只需要一个运算就可以了。

  从现在看,这种算法基本上非常正确,不存在任何问题,并且这个算法提出来也很久了,并非中本聪本人的创造。



  这只是比特币的原理,再来看看比特币软件的真实实现。

  比特币软件实际采用的算法是“SHA-256”算法,它是SHA算法的一种。1993年,由美国国家安全局设计、美国国家标准和技术研究院(NIST)发布了第一个SHA的密码散列函数,这个算法被称为“SHA-0”。2001年,NIST发布“SHA-256”算法草稿,2002年被作为官方标准发布。

  目前还不知道为什么最终比特币软件选择了“SHA-256”算法,而不是论文里面提到的哈希现金算法,但可以肯定的说,“SHA-256”也不是由比特币自己创造的算法,而是经过长期验证了算法,两种运算的目的其实是相同的,就是为了提高工作量证明(见“什么是工作量证明”章节)。

  对于“SHA-256”算法的攻击问题,目前可以肯定是,对该算法的攻击肯定是存在的,曾经有人公布了对“SHA-0”算法的攻击。但这种攻击成本巨大,这种攻击用于获取被“SHA-0”算法加密的信息也许有用,但对于破解比特币的挖矿程序根本没用。因为挖矿是靠交易链来保证的,交易一旦确定,要靠伪造的交易链来实现,必须保证能快速的运算出结果。而正常的算法计算时间,比该类攻击所用的时间少得多,所以基本不可能伪造成功。



  目前“SHA-256”算法已经发布了11年,暂时没有发现该算法的问题。假设真的有一天攻击者发现一种新算法,能够假冒“SHA-256”,快速计算出结果,而且验证结果也是正确的,我们假设这种算法,计算速度比“SHA-256”快一万倍,然而它要破坏当前的挖矿体系也是极其困难的。它可能能够更快的挖到矿,但要伪造交易,却必须拥有当前50%以上的算力,即使它的算力提到了一万倍,但鉴于当前算力非常庞大,仍然是难以伪造的。而且伪造得到的报酬,远不如诚实挖矿得到的报酬多。

  一旦这种新算法被公布,其他的挖矿者也可以采用该算法来挖矿,这时大家的算力也迅速提升。对比特币来说,这是一个算力的竞争,刚开始有人占优,能挖到更多的矿,但随着新算法迅速使用,整个挖矿马上又平衡了。就好比在现实社会中,有人发明了一台更加高效的挖矿机,大家可能都采用这种新挖矿机进行挖矿了。但这些都属于诚实挖矿,不影响比特币整个的运转。



  最后说明一点,比特币软件已经走到了第五个年头,相信他的算法还是经得住考验的。