第八章:挖坑与共识
8.1比特币是通货紧缩的货币
无论比特币区块怎么扩容,比特币的总量是永远恒定为2.1千万的。区块会越来越大,区块是矿工用矿机挖出来的,数量是无限的;而比特币是区块产生的,每4年区块的产生会降低一倍,从2008年开始,每个区块产生50个比特币,以后每过4年依次降低为25个,12.5个,6、25个……直到2140年比特币全部产生。所以,比特币数量恒定,甚至因为丢失而变得更少,所以比特币是越来越通缩,比特币价格也会越来越升值,能对冲法币的通胀。
8.2挖坑的目的和动力
矿工挖坑的目的是挖出区块,获得奖励的比特币,矿工同时还能获得区块里所有交易记录的交易费用。
即使比特币挖完了,随着比特币交易记录的越来越多,矿工还能获得不菲的交易费用。
这好像建设居民小区,建成以前工人有建筑供应等工资,居民入住以后工人有小区维护管理费等。
8.3去中心化
比特币的去中心化共识,是整个区块链网信任的基础。
怎么完成去中心化共识呢?这就由所有网络节点相互作用产生。
1、每个全节点对每个交易依据综合标准进行独立验证。
2、挖坑节点完成工作量证明的验算,将交易记录独立打包进新区块。
3、每个节点独立对新节点进行校验并组装进区块链。
4、每个节点会选择工作量最大的区块
整个去中心化共识的完成就是节点之间的互相验证传播记录和节点选择的过程。
8.3.1交易的独立验证
感觉在区块链世界里,每个节点就像一个负责任的人,它们热心的介绍着新节点传递着交易信息;又像一个个质检员,认真的验证一条条的交易信息。
这个过程就是独立验证。
8.3.2挖坑节点完成验算,打包交易记录。
挖坑节点很忙:
1.要监听网络上的交易(眼观六路 耳听八方);
2、监听其他节点发现的区块(随时关注竞争对手的动态)
3、挖掘新的区块(其实就是寻找算法的解)
辛勤的挖坑节点会把交易记录先打包进获得的候选区块,
竞争真是无处不在,矿工这时在竞争整个网络里到底谁的区块能加入区块链。
而比特币节点在交易验证以后,把这些交易记录先放进自己的内存池;
这些交易记录目前还没有得到交易确认。
挖坑节点一旦接受并验证了一个区块比如A,那么这个节点就会去自己的内存池检查10分钟之内的交易记录,,把A里面的交易记录移除,剩下的10分钟之外的交易记录打包进下次出现在区块B。
打包过程:
可以把矿工想象成一个快递打包工人,它们打包的不是东西,而是交易记录,还会优先打包矿工费高的交易记录。
构造区块头
每一个区块里都有区块头,区块头里有三类元数据:父区块的哈希值、挖矿竞争相关数据、merkle树根(所有交易信息的数据结构)
这里讲什么是挖矿竞争相关数据:难度目标和Nonce
难度目标是指当前区块的工作量证明算法的难度目标。
难度目标可以理解为一个数字目标(比如王建林的一个小亿目标)
难度目标是可以动态调整的,目的就是为了保证:10分钟产生一个区块。
Nonce主要是一个用于工作量证明算法的计数器
成功构建新区块
区块头里面的三类元数据,都是在构建新区块之前就预先确定好的
区块头里面有6个字段,矿工需要做的就是对这个候选区块进行挖掘,也就是对工作量证明算法求解。
求出解之后,该区块才能真正加入区块链里面。
矿工挖坑的过程,其实就是在对一个复杂的方程进行计算,最好得出正确解的过程。这是一个随机试验的过程。
难度目标和难度调整
为了保证长期的每10分钟整个网络生成一个区块,整个区块链会根据2016个区块生成的时间,调整下一个2016个区块生成的难度目标。
8.3.3校验新区块
这一步是对交易记录的验证,是区块形成必不可少的步骤,“当一个节点接受到一个新的区块它将对照一个长长的标准清单对该区块进行验证,若是没有通过验证,这个区块将被拒绝。
8.3.4区块链选择
就是区块链分叉。这里说的是自然分叉,最终会回归为一条链;而8.1的比特币分叉是人为的分叉,是两条不同的区块链。
在新区块被验证各项指标后,区块还需要去寻找最大工作量证明的链条。
在两名矿工都挖出来了新区块又都在较短时间算得了工作量证明解的时候,两个区块因为有一个相同的父区块,所以两个区块里面的交易记录都是一样的。
这个时候就发生了分叉,但是矿工有寻找最长的或最大累积难度的链的需要,所以总有一条链会先成为更长的链。此时,区块链分叉的问题就解决了。
还有一种情况是双区块分叉:这种情况是因先前分叉而相互对立的矿工在几乎同时发现了两个不同区块的解。这种情况很少见。
8.4.共识攻击
比特币的共识机制依赖于这样一个前提:绝大多数矿工,处于自己的利益最大化考虑,都会诚实的挖坑矿来维持整个比特币系统。
理论上说分叉链可以变得很长,可实际上并不容易,算力要求特别大。随着比特币网络的算力的呈几何级数快速增长,51%的算力在实际操作上已经越来越困难。所以说,目前比特币是最安全的共识机制系统。
终于打完字了。低下接着再看一遍书,感觉一下理解的怎么样。
最近因为抄写,不动脑子想自己的,感觉不会输出了,而且脑子里又木又胀,这种情况快点改善吧!