在解释之前需要说明一下,在比特币网络里,你有多少钱,不是你说了算,而是大家说了算,每个人都是公证人。
双重支付就是一笔钱花了两次,这种情况在纸币上是不可能发生的,但由于比特币并不是实物,只是“记账本”,中间没有实质物质进行交换,所以可以发生。继续举例子:A用1000买了B的一个东西,B记在一个账本上;同时A用相同的1000买了C的东西,C记在一个账本上。这时候B睡觉了,而C把刚才记的帐拿给大家看,B睡醒了才拿给大家看。
在B和C发货之前,这1000是属于B的还是属于C的?为了解决这个问题,比特币网络让交易不可逆,也就是不能退款。不可逆的特点让A的这两个1000交易只被承认一个。
首先,比特币将所有的交易通过随机散列加上时间戳,让交易有先后顺序,然后交易融入到基于随机散列的工作量证明所形成的链条中,这样形成的交易就无法更改。翻译成人话就是:B和C的账本拿给大家看之后,还会有人继续在这个账本上记账。假如后面记账的大部分人都选择在B的账本上记账,那么大家就会把B的账本视为正确的,而B的账本上记着A用1000买了B的东西,这样A的1000就属于B,C记的就不被承认了,B发货给A就可以了。
基于随机散列的工作量证明的链条
在这个过程中就需要算力,算力是为了保证区块的信息不可更改。怎么实现的呢?工作量证明基于随机散列,然后形成链条。这个链条有个特点,你想开头的话,就需要求解,求解就需要算力。而且这个求解的难度是呈现指数级增长的。只要你先求出这个解,你就获得比特币奖励。
但如果你想修改已经出现的区块,那就必须选择链条最长的那个,然后从头开始求解。这样你修改的链条才会被认为是正确的(最长的链条视为正确的链条,不理解的话可以联系前面提到的B的账本)。但这个最长的链条上有着全网下最大的工作量,全部求解的话需要耗费巨大的算力。
而这样做是得不偿失的,因为你耗费这么多算力去修改得到的结果,不如你拿这些算力去求解的收益高。这样就保证了不会有人去更改之前区块的信息,区块的信息自然就实现不可更改了。这个“不可更改”是可以更改的,只是没有人傻到会这么做而已。
也就是说,挖比特币的算力实质上是一直在求解,这样就能保证最长的链条拥有全网最大的工作量,从而不会被更改。这样也就实现了比特币系统是坚固的,是不会被人攻击的。
本文属于原创文章,如若转载,请注明来源:比特币的算力都用来干什么了 真相可能有点残酷//nb.zol.com.cn/679/6796699.html