你这个问题实际上是几道题的综合,并不能通过一句两句解释清楚。
为了安全,比特币的所有交易记录是要进行非对称性加密的,比特币采用的是哈希算法中一种叫做SHA256的方法,顾名思义就是加密后,得到一串256位的二进制数字。
因为网络上所有计算机的记账权利都是一样的,并没有一个中心,也就是所有人都可以去进行区块记账,那这么多区块用谁的呢,这时候就需要给这个记账操作增加一个难度了。那就是让大家共同计算一道数学题,就是让你通过调整随机数的方法,来使得新字符串的SHA256结果前72位都是0:
这道题是非常难的,以至于全网所有的矿机计算能力加在一起,每十分钟才有可能有一个矿工计算出来这个结果。从而也就保障了,单位时间内,只会产生一个区块。
算力难度调整
不过全网的算力不断提升,使得这道题对于矿工来讲越来越容易,那怎么办呢?系统会自动提升这道题的难度,模式很简单,原先不是前72位为0么,现在改成73位就好了。这个过程,都是系统根据全网整个计算能力来自动判断的,并不需要人为干预。
计算能力判断
事实上,比特币系统并不需要去判断那个最快的计算机,而是去判断在每十分钟,是哪个计算机算出了那个刚好的答案,并且成功生成了区块,就可以了。系统也会根据预设好的算法,自动把生成区块的奖励,发给对应的那个计算机。