nonce值或者说工作量证明到底和计算次数有没实际联系呢?

最近查资料了解到比特币的挖矿是对nonce的枚举,而我在比特币的网上看到的一些新增的区块的nonce都是十亿级的数字,那是不是就意味着他们枚举了几十亿次,但实际计算次数肯定不止那么少吧,所以nonce值或者说工作量证明到底和计算次数有没实际联系呢?

比特币需要每个block(区块)证明在创建它们的过程中投入了足够都的工作量,从而确保那些想篡改历史区块信息的恶意节点必须要付出更多工作量的代价,而不是只是修改一条记录那么简单——工作量证明。
将区块链在一起(hash相连相扣)使得只修改一个交易而不修改所有后续交易成为不可能。

工作量证明(Proof-of-Work)
使用SHA-256对一个value进行hash,看结果是否拥有所要求数量的前导零,比如我们要求hash得到的值为 0000……,拥有四个前导零。在比特币中,我们是对一个block进行SHA-256哈希,为此我们将一个nonce加入到block中,你可以理解为这个nonce是一个值可以变得整数,这样我们就可以不断递增这个nonce,直到整个block的hash结果拥有所要求的前导零。
这里写图片描述

有人想恶意篡改某一个block上的交易信息,因为这是一个前后相接的区块链,他就不得不把该block之后的所有区块都以他恶意篡改后的block为基准重新计算一遍,代价巨大。与一IP一票不同(恶意攻击者如果掌控大量IP发放权十分危险),比特币是一CPU一票的机制,意味着算力拥有决定权,网络中以最长的那条区块链为合法链,它代表着最大的工作量证明。如果网络中大多数(51%以上)的算力由诚实节点掌控,那么这些诚实节点产生的合法链会增长的最快,超过任何一条与之竞争长度的链,进而防止恶意发生。正如前面所说,如果一个攻击者要修改过去的某一个block,他需要重新做这个block以及它之后所有block的工作量证明,然后需要赶上并超过那条由诚实节点们打造的合法链。但是随着合法连继续添加新的block,该攻击者追上的可能性是指数下降的。