区块链程序员

中本聪如何实现比特币的去中心化,说出来你可能不信,是靠人性

2018-04-11  本文已影响13人  程序猿的雕刻时光

为大家讲解比特币相关技术已经是第三篇文章了,今天要讲的去中心化是重头戏,也是比特币有别与法币的本质。

图片来自于网络

在比特币中,没有中央银行,所有的节点(用户)都是同等的身份。

在比特币系统中,所有的节点形成一个网络,每个节点都会和其它部分节点相连接。

当用户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分钟左右。

总结

挖比特币的矿工,负责将区块打包。打包好后,向周围节点发布。其他节点确认其正确性,然后加入到自己节点保存的区块链里。

如果某个节点自己出了问题,没有把一个正确的区块加入到自己存储的链上,他所保存的区块链就会跟其他人的发生不同。他的链会逐渐不被大家认同,慢慢被淘汰掉。

这就是在比特币去中心化的基本原理。

预告:介绍区块链中各种选拔机制

我会持续分享和区块链相关的干货,还会有一些投资建议和挖矿技巧,让小白也能看得懂。想上车的小伙伴们请多多关注,也可以关注我的头条号,有一手资料。

程序猿的雕刻时光
上一篇下一篇

猜你喜欢

热点阅读