第0章 引言
比特币的发行是依靠挖矿来完成的,全网平均十分钟产生一个区块,同时发放相应的区块奖励。货币的发行速率是一个非常重要的事,那这个“十分钟”是如何被保证的呢?
第1章 竞争性选拔考试和资格性选拔考试
我们一辈子可能会有很多考试,高考、公务员考试、执业资格考试……这些考试可以分为两类,一类叫竞争性选择考试;另一类叫资格性选拔考试。
竞争性选拔考试是录取人数是确定的,不管多少人参与考试,也不管最终所有人的考试成绩,录取的人数都是确定的。比如公务员考试,在考试招生前会明确录取多少人,比如全国10万个岗位。不管当年100万个人报考,还是1000万人报考,最终都只有10万个人能被录取。也不管你考多少分,只有你考进了前10万名成绩才能被录取,也就是选择前10万个成绩最好的。在竞争性选拔考试中,成绩绝对高低是没有意义,成绩相对高低才是关键。
资格性选拔考试有一个成绩合格线,你的成绩只要高过这根合格线,那你就考试成功。不管有多少人参加考试,也不管最终能录取多少人。比如考驾照的第一科目,你只要达到了90分,就过了。你完全可以不考虑和你一起来考试的竞争对手是什么状态,你只顾自己考到90分就可以了。
比特币发行速率类似于一个竞争性选拔考试的结果。
第2章 比特币使用难度值来控制挖矿出块时间
比特币网络要控制出块时间平均为十分钟。在一上篇文章里我们讲到了挖矿的过程是人们使用计算设备去计算一个满足某个难度目标的随机数的过程。如果参与计算的计算能力越高,那计算的速度就越快,在固定时长内计算出符合难度目标的随机数就应该越多。如果是这样的话,比特币网络出块时间就无法维持在平均十分钟。
但我们知道竞争性选拔考试是不用管多少人报考的,它设置好一个录取人数就好了,考生们自个竞争去吧。报考人数多,试卷也可出的难一点,反之而出题容易点,这样来调整选拔流程。比特币系统的设置也实现了不管多少算力参与挖矿,最终都能实现平均十分钟出块,算力们自己去相互竞争吧。
比特币设置这场竞争性选拔考试的核心概念就是“难度值”。这个“难度值”是决定了同等算力计算出符合难度目标需要完成的工作量,这个工作量是和时间呈线性关系的,这样就可以通过调整“难度值”来调整出块时间了。
比特币系统每隔2016个区块就会去检测这2016个区块的平均出块时间,当发现平均出块时间快于10分钟时,系统就会调高这个“难度值”,这样同等算力就更能计算出符合要求的目标值就要更多时间。相反,如果系统发现平均出块时间慢于10分钟,那就高低“难度值”。
另外,比特币系统为了防止难度变化过快,系统设定每个周期(2016个区块,大约为两周)难度调整的幅度必须小于4倍。比如说如果有一天突然有90%的算力被炸掉了,那出块时间当下就变成了100分钟(10/0.1),一次难度调整时间不能超过四倍,那经过了2016个100分钟后,出块时间只能调整到25分钟(100/4),然后再经过2016个25分钟的出块时间,出块时间才能调整到10分钟。
这个“难度值”是和区块头部信息里的“难度目标”相对应的,两者是通过一个计算公式可以转化。难度值和全网算力共同决定出块时间也是由一个公式给出,但这里就不提这些公式了,太复杂了,我们这里追求的是理解,如果要深究其精确的程序表达,最好还是看比特币的设计文档,那里更准确。
第3章 难度值的意义
难度值的追踪全网出块时间而自动调整的机制可以稳定全网比特币区块的出块时长,这就实现了比特币发行速率的稳定。配合比特币区块奖励每隔21万个区块(约四年)就减半,那比特币的发行量是稳定可预测的。
从比特币最开始平均十分钟发行50个币,一天发行7,200个币(24*60/10*50),后随后减半变成每天发行3600个币,在今年7月份又经过一次减半,一天发行量变成了1800个币。这种稳定可预测的发行量,给比特币挖矿提供了一个利益计算模型。这有利于这个行业的理性投资。
难度值的自行调整稳定了比特币出块时间,这给使用比特币交易转账的用户一个稳定的到账时间——平均十分钟就有一个确认。产品是否有一个稳定可靠的预期会极大的影响用户的信任度。
难度值的调整还更有利于保护比特币网络的完全性。难度值越高,比特币网络安全性就越高。这是防止比特币区块链分裂成多条链的一个保障。比如如果有1%的算力想独立挖一条和现在比特币不兼容的链,那他就要经过漫长的难度值调整,一开始他的出块时间是1000分钟(10/0.01),经常2016个1000分钟,才能缩短为250分钟,然后再经过2016个250分钟再调整为了62.5 分钟……在这种漫长的调整时间过程中,用户使用比特币的确认时间几乎是无法接受的,而算力还是要消耗电费的,这种情况下独立去开挖不兼容的链就在经济上几乎无法接受了。除非修改难度值,但这种作弊作为市场更不会接受的。
难度值也是淘汰比特币挖矿落后生产设备的关键。最初比特币挖矿是直接使用普通电脑的CPU就可以了,但随着参与人数越来越多,算力涨上去了,难度上调,导致CPU挖不到矿了,随后大家就使用显卡来挖,同样的逻辑又导致现在大家使用专业的矿机来挖。难度上涨淘汰了效率低的挖矿设备,在获得更高的安全性上相对降低电力等资源的损耗。
第4章 结束语
某个产品能够给人一种稳定可预期的东西,这就会有利于建立用户粘性。比特币也包含了这种产品的设计理念。
嗯,我们又了解到一个概念。