Saying: 算力是用来做什么的? 想要解释清楚算力,我们就需要重温一下“比特币、挖矿”的概念了。算力服务于比特币网络,保证比特币网络的安全。比特币的特点是去中心化,即把交易的中间环节--金融机构省去。为了达到这个目的,比特币需要建立一套证明体系。 比特币网络算力变化趋势 那么没有了金融机构这些“中心”平台的公证,比特币怎么证明交易过程的公平公证呢?比特币把交易的消息这个消息记在账本上,然后全人类都能看到这个账本,也就是把整个交易透明化。把交易信息让所有人都知道,就是比特币的证明体系。 但这样一来,新的问题又产生了,也就是“双重支付”。 双重支付就是一笔钱花两次,这种情况在纸币上是不可能发生的,但由于比特币并不是实物,而是“记账本”,中间没有实质物质进行交换,也就具备此项技能。举个栗子:我用1万块买了你的东西,你把这次交易记在一个账本上;同时我还用相同的1万块买了你朋友的东西,你朋友也记在一个账本上,但是你朋友先你一步把账本分享出来,在你们给我发货之前,这1万块是属于你的还是你朋友呢? 要知道在比特币网络里,不是谁有钱谁说了算,每个人都是公证人,这里的每个人都有话语权。而针对“双重支付”问题,比特币网络让交易不可逆,即不能退款,其特点是我的这两份1万块交易只能有一个被承认。 大致上的运行是这样的,比特币将所有的交易通过随机散列加上时间戳,让交易有先后顺序,然后交易融入到基于随机散列的工作量证明所形成的链条中,这样形成的交易就无法更改。 续上栗:你们的账本拿给大家看之后,还会有人继续在这个账本上记账。假如后面记账的大部分人都选择在你的账本上记账,那么大家就会把你的账本视为正确版本,这个账本上记着我买了你的东西,我的这一万块就是属于你的,你需要给我发货就OK,而你朋友的账本是不会被承认的。 基于随机散列的工作量证明的链条 这一整个交易、记账、公证的过程就需要算力,它能保证区块的信息不被更改。工作量证明基于随机散列,然后形成链条。这个链条有个特点,想开头的话,就需要求解,而求解则需要算力。并且此求解难度是呈现指数级增长的。只要你先求出这个解,你就获得比特币奖励。 如果你想修改已经出现的区块,那就必须选择链条最长的那个,然后从头开始求解。这样你修改的链条才会被认为是正确的,最长的链条视为正确的链条,也就是栗子上说的“后面有人来继续记账的你的账本”。但这个最长的链条上有着全网下最大的工作量,全部求解的话需要耗费巨大的算力。 而这样做是得不偿失的,因为你耗费这么多算力去修改得到的结果,不如你拿这些算力去求解的收益高。这样就保证了不会有人去更改之前区块的信息,区块的信息自然就实现不可更改了。这个“不可更改”是可以更改的,只是没有人傻到会这么做而已。 挖比特币的算力实质上是一直在求解,这样就能保证最长的链条拥有全网最大的工作量,从而不会被更改,同时也实现了比特币系统是坚固的,能够屏蔽攻击。 这样做是否有意义? 目前比特币的全网算力是非常高的,据说已经比全球前100名超算的算力总和都要强。这观点并不完全准确,比特币全网的算力只要是求一个算法,即SHA256算法的哈希值,这是比特币网络的工作量证明机制的要求。也就是说,比特币全网在求解SHA256算法的哈希值的算力上是非常强大。 如果用比特币网络的算力去求解其他的算法呢?整个比特币网络的算力可能还没有你手上电脑的运算效率高。因为比特币网络的算力很专一,只求解SHA256算法的哈希值,它做不了其他工作。而且你就算用比特币网络的算力去挖基于其他算法的币,效率也非常低下。 比特币网络算力价值在哪? 在比特币不断被承认的过程中,比特币网络也逐渐变得更安全,提供一个绝对安全的金融系统,可以说就是比特币比特币网络算力的价值所在了。