
上一周我们主要讲了比特币的挖矿机制,也就是POW工作量证明。这一讲主要来讲一下比特币作为一种货币是否安全可靠。
在上一周,我们讲了比特币的工作量证明,主要是采用一种叫“哈希现金”的算法,这种算法的原理是,是给出一个随机数,然后根据此算法,计算出包含多个0的数值。随着0的数目增长,计算量呈指数增长。而反过来,要验证给出的结果是否正确,却非常快速,只需要一个运算就可以了。简单说就是运算复杂,验证简单。
比特币软件实际采用的算法是“SHA-256”算法,“SHA-256”是经过长期验证了算法,并不是比特币独有的,运用在了比特币就是为了提高工作量证明。对于该算法的攻击问题,目前可以肯定是存在的。曾经有人公布了对“SHA-0”算法的攻击。但这种攻击成本巨大,这种攻击用于获取被“SHA-0”算法加密的信息也许有用,但对于破解比特币的挖矿程序根本没用。因为挖矿是靠交易链来保证的,交易一旦确定,要靠伪造的交易链来实现,必须保证能快速的运算出结果。而正常的算法计算时间,比该类攻击所用的时间少得多,所以基本不可能伪造成功。

目前“SHA-256”算法已经发布了11年,暂时没有发现该算法的问题。假设真的有一天攻击者发现一种新算法,能够假冒“SHA-256”,快速计算出结果,而且验证结果也是正确的,我们假设这种算法,计算速度比“SHA-256”快一万倍,然而它要破坏当前的挖矿体系也是极其困难的。它可能能够更快的挖到矿,但要伪造交易,却必须拥有当前50%以上的算力,即使它的算力提到了一万倍,但鉴于当前算力非常庞大,仍然是难以伪造的。而且伪造得到的报酬,远不如诚实挖矿得到的报酬多。
一旦这种新算法被公布,其他的挖矿者也可以采用该算法来挖矿,这时大家的算力也迅速提升。对比特币来说,这是一个算力的竞争,刚开始有人占优,能挖到更多的矿,但随着新算法迅速使用,整个挖矿马上又平衡了。就好比在现实社会中,有人发明了一台更加高效的挖矿机,大家可能都采用这种新挖矿机进行挖矿了。但这些都属于诚实挖矿,不影响比特币整个的运转。目前比特币软件已经走到了第五个年头,相信他的算法还是经得住考验的。

比特币的数量,和产生的速度,都是以参数设定在程序里面的。在软件发布以前,这些参数都是可以变更的,但是一旦软件发布,比特币的节点越来越多,这个参数的变更就变得没那么简单了。首先,由于比特币软件是一个去中心化的软件,全网都是公平的,单独修改一个机器的参数根本没用,它肯定是不会被全网所公认的,它的交易也会被认为是非法交易。如果全网50%以上的机器都采用了新的参数呢?这个时候,其实是有可能改变比特币的总数的。但如果真有一个暗中控制人,某人想让全网50%以上的机器,都安装了经过某人暗中控制的软件,这个难度极大。另外,比特币软件是一个开源软件,它的所有源代码都是公开的,现网的所有改动,都是公开的,这种属性决定了比特币的总数不可能被人控制。
这周学完比特币的哈希算法,是不是对比特币的安全性有了更深入的理解,下一周我将重点讲解比特币钱包的作用,欢迎大家关注。
网友评论