本文是以普通人的角度来猜测。如有不对,请告诉我。
每约10分钟颁发一次比特币。
这句话已经很通俗易懂了。
正常的应该说,约10分钟可挖出一个区块,一个区块奖励一定的比特币。
但是呢!我这样说,只是为了突出10分钟。
疑问:究竟是怎么控制约10分钟挖出一次?
网上多数的回答是调节数学问题的难度来控制挖掘速度。
???不懂啊,为什么调节数学问题难度就可以控制挖掘速度呢?
上面的问题还没解决,新的疑问又来了,
1.数学问题,如果我很聪明,一下子解出答案,怎么办?
2.谁出的题目?
只有一直查资料。
啊啊啊!!!什么hash啊,什么散列值啊?随机数啊?。。。新名词不断的出现。(而且随机数,有的地方写随机值,不仔细看很容易认为是散列值。)
终于查到有用的,(本人小白,不知道引用会不会触犯法律)
复制过来,
问题: 比特币挖矿算法是怎样的?
回答:需要以下参数
1.block的版本:version
2.上一个block的hash值: prev_hash
3.需要写入的交易记录的hash树的值:merkle_root
4.更新时间: ntime
5.当前难度: nbits挖矿的过程就是, 找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET上式的x的范围是0~2^32,
TARGET可以根据当前难度求出的。除了x之外,你还可以尝试改动merkle_root和ntime。由于hash的特性,找这样一个x只能暴力搜索。
看出什么了吗?好吧,看到这里,SHA256?这又是什么?
这里再提供一个链接,
这里为止,可能有些人还是有很多不懂的地方。
但我接下来,假定你知道以下几点,
1.SHA256是一个hash公式。带入一个数x进去,算出的数y是很难得回x。(这说法不严谨,其他同学别钻牛角尖就好)
2.(好像没2了)
小结:
如果要挖比特币,你就要不断的把不同的x带入特定hash公式,算出不同的y。而y呢,就要达到标准,即前几位是0。而控制约10分钟挖一次就在于控制y前面有几个0。
问题:那谁颁布y的标准?y又是如何控制约10分钟?
这里以后全是我猜测,不对的话,希望有大神说出来。
整个网络,比特币网络,比特币协议,比特币系统,比特币挖矿源码。
这几个词,想到什么了吗?
颁布y的标准是整个网络喔,也不能说是颁布,而是算出。
整个网络有点抽象,范围有点大,上面的几个词就为了逐步缩小了范围。
看多比特币资料的人,都知道,比特币系统是可以知道从最开始到现在所有交易情况,当然也包括挖掘情况。
只要我在前几个资料中提取挖掘情况,就可以计算出最近的挖掘速度。如果过快,就会调高y的标准。然后和整个比特币市场说,现在y的标准是这样喔。至于过慢情况,不会有吧?有也没问题,降低y的标准就是了。
我可不是乱猜的,比特币系统中认为,
每产生2016个block(约14天),网络会根据这段时间产生新block的平均间隔调整之后的TARGET。
看吧!每隔一段时间就会调整y(即TARGET)。
为什么挖掘会过快呢?因为计算机的运算速度,加上很多人加入比特币市场等原因。
小结:
利用最近的挖掘情况算出最近的挖掘速度,然后调整y的标准,即调整数学问题的难度。
问题:如果我一次就算出x值,那不就很赚?
也需有人想过这个问题,那么我只能叫你买彩票试试。(虽然我没买过彩票,不懂具体机制)
制约这一问题不会产生的,有以下两点,(或许还有其他制约点)
1.SHA256的不可逆计算。说白了,x只能一个一个的带入公式算出y,数学点的说法就是只能枚举。(暴力破解)
2.比特币系统的解题难度调节。具体就是上一问的情况。
买彩票,你买中一次,恭喜恭喜!你再买中一次,哇哇,走**(狗屎)运了你!!再买中一次,那么我只能说。。。
以上情况,你认为多少几率会发生?很小甚至为0。
彩票系统设置这样,比特币系统也是设置成这样。比特币协议中SHA256为基础的公式以目前的技术只能暴力破解。而每个x值的机会都是一样的,那么最终挖掘结果就会公平。
加上比特币会调节y,那么就更加不会出现不公平现象(这句话有几个理由,但是呢,说出来感觉离话题太远了)
再来一个极端的假设,有人破解了SHA256等hash公式,可以很快的挖掘比特币。
然后你发现不对劲,调节系统出了问题,就会想比特币原来这么容易挖,这么不值钱,比特币系统这么垃圾,种种。大家都像你这么想的话,那么比特币系统就会崩盘,就不存在比特币了。
小结:
比特币的挖掘,目前只能勤奋地挖掘。
1.比特币挖掘就是不断地枚举x并带入hash公式解出合适的y。
2.hash公式的计算是不可逆的。x可以算出y,y不能算出x(以当时的技术)
3.通过计算最近的挖掘速度,调节y的标准,控制挖掘速度。即,网上说的“调节数学问题难度来控制挖掘速度”。
4.x值最好只能枚举。(为啥说最好呢,突然想到几个假设,觉得这样说比较好)
开始日期:20170912