在学习区块链过程中,会发现一些数字,心里不断问自己,为什么会有这些奇妙的数字,它们是如何被定义出来的:
本章的目的就是揭示这些数字背后的深层的原理。
这一章,可以说即快乐,又痛苦。
本身解谜就是一种很有乐趣的事情,痛苦的是这几个问题都没有标准答案。就算是自己的一种思考吧。
首先看看区块链为什么设置一个总量?目的是为了控制通胀,也就是货币贬值。
那为什么设置总量为2100W比特币,这个没有明确答案,我觉得可以从以下几个方面考虑:
为什么生成每个区块大概间隔10分钟,这个问题,也没有标准答案,可以试着从以下几个方面分析:
上面的分析,只证明了每个区块的生成需要一定的时间,但是为什么是10分钟,可能是进行了一些模拟测试,从众多的数字中得到的一个结果。
结合第二节我们知道,比特币的总数量应该有一个限制,但是就算有限制,那为么什么奖励要递减,不递减也可以达到这个总量呀,为什么是4年,不是2年,也不是8年呢?
因为每个区块大概为10分钟,每21W个区块后奖励减半,所以问题可以转换为:为什么是21W个区块后减半?
这个问题实在是难以解答,有一个黄金论,试着解释一下吧。太牵强了。
世界上的黄金储量是有限的,总计大概为21W吨,目前大部分已经开采完毕,剩余储量很少,每年的开采量都是有计划的,正是由于黄金是稀有的金属,才会在人类社会几千年的历史中,始终作为价值的代表。
比特币,如果想跟黄金一样成为一种持续有价值的货币,发行数量需要在一个相对较短的时间,追赶上已经发布的黄金数量。如下图所示,在2020年,比特币的发行量将达到总量的87.5%。另外,在初期设置较高的奖励,也有助于促进矿工积极参与挖矿。
随着时间流逝,社会对比特币的认知越来越深,比特币的网络也已经比较网络,慢慢的把奖励取消也不会造成矿工的积极性减退。
6次永久生效,只是一种模糊的描述,不可能永久生效,只是造假的概率足够低而已。
在中本聪的《比特币:一种点对点的电子现金系统》一文中,对攻击者的成功概率进行了模拟计算,详情可以参考这篇文章。
q表示攻击者算力所占的比例,z代表区块的数量,意思是当在当前算力下,需要至少多少个块,才能使造假概率低于0.1%。
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
假设小黑转给小白100BTC,小黑控制了全网51%的算力。则会推断出小黑在竞争最新区块时获胜的概率非常大,甚至在可以完全掌控后面区块的生成。
攻击的过程是:小黑重新创建第N个块,把转给小白的记录从中删除,然后重建之后所有的区块,使新创建的链成为最长链。
这样的结果就是小黑转给小白100BTC的交易失效。
综上发现,小黑只能把自己转给其它人的比特币取消而已,不能凭空创建比特币,也不能把其它人的比特币占为己有。网络节点不会把一笔无效交易当作支付,而诚实节点也永远不会接受一个包含这种支付的区块。攻击者最多只能修改属于他自己的交易,进而试图取回他已经花出去的钱。
况且,如果小黑已经拥有了51%的算力,为什么不通过挖矿、手续费等方式合理获取收益,而是要通过这种破坏比特币规则的方式来获取呢?
所以,51%攻击从理论上看可能,但是从经济学角度上看,并不可行。
币安交易所用户被盗比特币7000余枚。
经分析,黑客是通过钓鱼、木马等方式,获取了大量币安注册用户 API 密钥(身份验证,控制访问)、谷歌验证 2FA 码以及其他相关信息,从而进行提款操作。
所以在比特币上,如何保护私钥、保护密码、验证码可能是每一个用户更重要的课题,而不用去担心51%攻击的问题。
比特币的总量为什么只有2100万,不能更多吗?
为什么比特币设定的是 2100 万枚的上限?
比特币转账为什么一定要等6个确认才能到账?| 白话区块链入门129