中本聪如何实现比特币的去中心化,说出来你可能不信,是靠人性
为大家讲解比特币相关技术已经是第三篇文章了,今天要讲的去中心化是重头戏,也是比特币有别与法币的本质。
图片来自于网络在比特币中,没有中央银行,所有的节点(用户)都是同等的身份。
在比特币系统中,所有的节点形成一个网络,每个节点都会和其它部分节点相连接。
当用户B想要支付给用户C一些比特币的时候,他会形成一个交易记录,然后用户B会将这个交易记录传递到比特币网络中的其他节点。
图片来自于网络每个节点都保留着两个结构:
已经校对好的区块链,类似于中央银行的大账本,已经被该节点核实过
在一定时间范围内接收到的来自四面八方没有被检验过的交易记录
节点所需要做的事情就是检验这些接收到的交易记录。如果合法的话,即没有多重消费、账户盈余,此节点会将这些合法的交易记录整合成一个区块。
然后在整个比特网中,某一个节点会被选出(后面会介绍选择方式),这个节点向其他的节点递交它创建出来的区块,其他的节点会验证这些区块。
如果区块里面每一个交易都是有效的话,那么其他的节点会将这个区块加到自己保存的区块链上。否则就会抛弃这个区块,什么也不做。
这种过程持续下去,区块链就会逐渐增长。
图片来自于网络如果仅仅是这样,大家一定会有疑问,所有人为什么愿意去做记账的工作呢?答案是挖矿。
需要给做这个事情的人一些奖励,激励他们为区块链做贡献,所谓的贡献就是,将交易打包成区块,然后发给大家。
奖励来源于两方面:
交易费,这个占总的奖励很小
区块奖励,这个是凭空挖出来的,也就是挖币
中本聪设计比特币的时候规定刚开始时每个区块奖励是50BTC。每四年减少一半。
现在是12.5BTC。等到2140年的时候区块奖励变为0。那个时候比特币就被挖完了,总数在2100万。
图片来自于网络中本聪充分利用了人性,使用经济的手段,让比特币网络不断壮大,保证其以去中心化的方式持续运行。
具体怎么挖矿?也就是如何选择哪个节点?
既然检验交易记录形成区块有奖励,那么每个节点都会愿意做。
于是这里面就需要一个选拔机制。比特币采用的是PoW,看谁算得快。
也就是出一道题目让每个节点都计算,谁先得到结果,谁就能够组建新的区块并拿到奖励。
出的题目是,让每个节点找到一个答案x, 使下边的这个不等式成立:
H(x + pre_hash + tx1 + tx2 + ... + txn) < target
pre_hash表示区块链上最后一个区块的哈希值
tx1 ... txn表示所有要验证的交易
最终x要是这个所有的哈希值小于某个target。
我们知道正向计算哈希函数很容易,但是反向不行。所以解决这个问题的方法只能是遍历x找到合适的值。而target越小,题目越难。
而且这个target是动态调整的。每产生2016个区块,大概需要2星期,target调整一次,保证题目的难度让新的区块产生的速度维持在10分钟左右。
总结
挖比特币的矿工,负责将区块打包。打包好后,向周围节点发布。其他节点确认其正确性,然后加入到自己节点保存的区块链里。
如果某个节点自己出了问题,没有把一个正确的区块加入到自己存储的链上,他所保存的区块链就会跟其他人的发生不同。他的链会逐渐不被大家认同,慢慢被淘汰掉。
这就是在比特币去中心化的基本原理。
预告:介绍区块链中各种选拔机制
我会持续分享和区块链相关的干货,还会有一些投资建议和挖矿技巧,让小白也能看得懂。想上车的小伙伴们请多多关注,也可以关注我的头条号,有一手资料。
程序猿的雕刻时光