你的计算机通过SHA-256函数算出来的结果一串01010011……这样的两进制数,这个数是根据“老张给老王10块钱”这条信息算出来的。“老张给老王10块”这条信息在系统里也是通过二进制的数字记录的,简单地说就像打电报一样,把字变成了代码。当有人改这条信息的时候,再算出来的结果也会发生变化,和标准答案就不一样了。所以“老张给老王10块钱”这条信息在系统里无法被更改,这一事实就被证明了。
你有了计算结果这一组数之后,你要让计算机通过系统里的算法找出一个随机的数(是什么数谁也不知道,要一个一个地试),再一次对这组二进制的数进行计算,使这一串两进制数的前面多少位数都为0。
找到之后,系统会申请把这个结果加到系统的数据链上,当别人也都证明你的所有计算都是对的,并且是你第一个算对的时候,你的这一系列证明数据就会被添加到系统的数据链上,参与证明的用户也会把记录下载到自己的计算机里。这就形成了一条区块链,有一个原始区块加上你证明的区块。
这时系统就会发给你50个比特币作为奖励。这样你的账户上就有了50个比特币,这个记录也被写入到这个区块上。这个证明的过程就叫挖矿。
这个计算过程非常复杂,因为只承认第一个算出来的用户,所以要求计算机的运算速度要非常快,这个时候就出现了专业的计算机叫矿机。深圳华强北赛格电子市场是世界上最大的矿机市场。
有了比特币,你可以在比特币系统里进行交易,这时别人就会为了得到比特币去证明这次交易,重复上面的过程,形成新区块接在后面,同时又产生了新的比特币。
每一个后面的区块都包含着前一个区块的所有信息,这样一直进行下去就形成了一条区块链。而且只能是单一的一条,因为后一个是前一个的证明。
中本聪在设计这套系统的时候,设计了比特币的上线2100万个,在产生1050万个(50%)前,证明对一次奖50个比特币,之后证明对一次奖25个比特币。也就是总数减少一半奖励也减少一半,一直到挖完。
为了防止过快挖完,还设计了证明的难度。挖矿的难度是找到让计算结果二进制数前面都是0的随机数,比如最开始要求前50位是0。当参与证明的人(也就是挖矿的人)越来越多的时候,就提高难度,改为前70位是0。原则是保证全球10分种产生一个新的区块,也就是完成一笔交易。
那么,有人说中本聪自己会不会改这些数字呢?
改不了,因为他把这些原则写到了第一个区块里,别人是通过证明这个区块得到了下一个区块,每个区块里的数据都包含着上一个区块的所数据,所有被改动的区块,计算出的数据都和标准答案不一样,都不会被系统添加到区块链上,无法破坏整个数据系统。
比特币最开始一文不值,系统里的用户类似是在玩一种游戏,慢慢的开始有人象征性的用真钱购买,就像买游戏装备一样,结果越买越贵。
现在比特币被挖出来了一半以上,也就是大于1050万个,少于525万个,因为现在的奖励是建立一个区块奖12.5个比特币。