发布时间:2021-05-10 18:24:28 文章来源:互联网
微博 微信 QQ空间

BTB挖矿一定要用计算机吗?我自己用纸笔来计算可以吗?

    先说结论,想听简单的还是复杂的,简单说,其实是在算一道数学题,把这个值或者这个范围解出来,然后你就有了记账权。

    这道题非常有特点,就是只能正着计算,不能反推。我们以一个方程为例,你知道了x可以求出y,但是你知道了y,不能倒推x。当然这是非常原始的说法,实际上的哈希算法要比这个复杂的多。
 
    详细解释一下。
 
    哈希算法是这样的。你不要管方程的左边儿,你输入多少东西,在方程的右边儿会得到一个固定长度的数字。
 
    这里有一个问题,可能你会问,能不能严格证明出哈希算法不能够到推出来这个值?答案是证明不出来,你只能一个一个去试。这是一个经验的算法,而不是通过严格的数学证明的。
 
    通常所用的叫做sha256算法。这个256就是有256位数的意思。那有多少种组合呢?2的256次方,这个数字非常非常大,比我们地球上的沙子的总数还要大的多。
 
    这也就保证了不会一般有两个相同的字符串被输出。当然你想想,你的输入是无穷大的,输出是有数的,其实还是会碰到的,只不过概率实在是太小了。小到你就别操心这个事儿。
 
    这里我们只讲这个算法中的一个特点,与计算相关。那就是所谓的puzzlefriendly。啥意思呢,我把它翻译叫做范围困扰.
 
    也就是说,当你知道了一个哈希值,你是不知道你的输入值大概是在什么范围的,你只能一个一个去试。
 
    我举个例子吧,假设你的输入值是1~100之内。然后你的输出值是001,这个时候你不知道你输入值到底是在1~50还是50~100,能够得到这个数,他没有规律,你只能从1试到100。
 
    这里就有一个问题。你可以人为设定后面数字的变化来调节前面的难度。这是什么意思呢?
 
    因为2的256次方,这个数字实在是太大了,你不可能很快的精确地算出到底是哪一个值,于是呢我就可以调节这个值的范围,可大可小,只要在这个范围内都算。
 
    假设刚开始的时候,这256位什么数字都可以。01的组合都是可以的。
 
    这时候,比如说我规定只要是第一位是零的就可以。那只要你算出第一位是零,然后后面是任何组合都行。这个算计算就非常简单。相当于把难度增加了了一倍。
 
    然后你还可以在规定比如说前面加两个零,那就难度增加了一倍的一倍,以此类推,你可以规定十个0那难度增加了了2的十次方这么多。大概就是十翻,一倍的一倍的,一倍的,一倍的,一倍的一倍的一倍等等。
 
    这样做有什么用处呢?调节计算的难度,寻找这个随机值输入值
 
    BTB从刚开始挖矿到现在。他所设定的是每十分钟要出一个区块,但是全网的算力在不断的增加,矿机的算力在不断的提升,那怎么保证出块儿速度一直是十分钟呢?这就要不断提升它的难度。
 
    也就是说你设置前边儿多少多少位是零的数字越多,也就表示他出来的范围越小,可以满足的值越少,于是这个难度就可以被不断的提升。
 
    也正是依靠着这种方式。BTB才能够一直保证出块时间的稳定。
 
    所以矿工们就是在算这个输入值到底是多少,这个随机数能够满足后面的输出数的这个值。
 
    而一旦你满足了这个值之后,你就会抢到了出块儿权,也就是记账的权利。同时呢你可以把全网范围内所有的账目进行记账,然后对全网公布,你就完成了一次记账的过程,从而获得BTB的奖励。当然说的比较复杂,实际上你只要执行一段程序就可以了
 
    至于为什么要用这种计算的方式呢?相信很多人都应该知道,那就是说全网都在记账的时候,总要规定谁能记,谁不能记,总要有一个先后顺序,同时让全网共同有一个动作规则,这就是解决所谓的拜占庭将军问题。这就是所谓的共识机制。
 
    共识机制的本质在我看来是要付出一定的代价,谁付出的代价大,就能够获得信任。通过这种信任呢,获得记账权利。
 
    这其实就和梁山好汉上山之前要纳个投名状一样,很多人诟病说pow工作量证明的方式耗费了大量的电力,但是我想说,如果不耗费这个电就没有信任,BTB的网络也会崩塌。
 
    当然了,这只是QKL技术中一个非常小的点,我也会持续的用微头条输出相关QKL的底层逻辑技术支持。

另一视角

换一换