1. 定义及概念——比特币系统中,矿工收到交易信息,并打包为区块并盖上hash,那么如何实现该区块的有效性,来让全网达到共识呢?系统引入了POW机制,用付出”CPU算力“的途径,以概率性的方法去抢夺记录区块的权利(也就是俗称的”记账权“)。
这里的概率性是指,对于哈希SHA-256来说,要达到某个符合的条件,需进行暴力枚举法,实质是一个概率性的事件,那么经过相当多次枚举,平均下来,最后这个概率的期望值也是可衡量的。
其中,这个枚举过程的快慢是由CPU的计算能力决定的,另一方面,这个POW机制会有一个“难度”限制。
2. 关于难度——“为了补偿不断增长的硬件速度和随着时间推移不断变化的运行节点(vrayinginterest),工作量的困难度是由一个移动的平均目标决定,就是每一个小时的平均区块(就是这个平均目标)。如果这些计算力增长的太快,这个困难度就会增加。”PoW的难度是随整个系统的难度而一起提升的,由于计算机计算的硬件能力是不断提升的,想想挖矿的发展——CPU挖矿->显卡挖矿->矿机挖矿,这就是PoW的精妙之处
3. 实现方法——在区块中增加一个nonce,只要nonce改变,区块的hash就会变化。获得满足要求值的方式就是不断变换nonce,以调整使得整个区块的hash去满足难度要求,这个nonce就代表了当前矿工为夺取到这一轮区块的”记账权“,所付出的劳动(CPU算力,电费)证明。所以可以直接把nonce看作是工作量(劳动)的证明
4. POW机制的实质——POW实际上就是共同决策选择代表的问题,等价于抢夺记账权问题,因为抢到了记账权,就是选出了代表,工作量证明本质上是一CPU一票(one-CPU-one-vote),主要(大多数)的决定是由最长的链所代表,最长链拥有最大的工作量花费。如果一个大多数CPU算力都被诚实节点所控制,那么最诚实的链就会增长的最快且超过其他任何计算链。此外,中本聪没有考虑使用IP作为决策的原因,是因为他认为IP作为投票权比CPU作为投票权容易的多
总结:
1)这里就是说比特币系统的信任是建立在计算的基础上,不止被包在区块中的交易需要计算来证明,而且该区块hash也需要通过不断改变区块内的nonce,以使得结果满足难度的要求。2)如果要更改区块,那么攻击者要付出极大的代价,要把要改的区块一直到目前这轮所需要的区块全部都计算过来(付出需要的全部劳动)才可做到