首页 百科 区块是在找到随机数后发出吗

区块是在找到随机数后发出吗

Soni 2019.05.14 00:48

区块是在找到随机数后发出吗?区块的诞生是很多朋友都无法理解的,其实特别的简单,区块都是在找到随机数之后发出来的。
前面的文章中,小编花了大量的篇幅来介绍了区块的问题,如果还有对此不太了解的朋友,可以在我们蜜蜂查的首页查找相关问题来了解,相信大家在看完以前的文章之后一定会收获到很多东西的。今天,我们还来讲讲区块的问题,有很多朋友都特别关心,区块是怎么发出来的?毕竟懂了这个,在之后的挖矿过程中就更容易抢占先机,今天小编就来给大家讲讲这个问题,区块是在找到随机数之后发出来的。
盖一间房子,它的基本单元结构是每一块砖;而组成区块链的基本单元结构,就叫做区块。每个区块由区块头和区块主体组成。如果把区块链比做有头有身子的人,那它更像大白:区块头存储结构化的数据,大小是80字节;而区块主体利用一种神奇的树状结构,记录区块挖出的这段时间里所有交易信息,所需空间比较大。平均来讲,假设一个区块内有400笔交易信息,区块主体可能比区块头大1000倍以上。
虽然区块头比区块主体小,但区块头总归是脑袋,大部分功能其实都由区块头实现。
为了更好地了解区块链的概念,我们可以把每个区块当成一个小盒子,里面的交易信息是小纸条;也可以把它想象成小黑板,每块小黑板上都分区块头、区块主体登记重要信息。现在我们就来看看每个区块上都写了些什么。
上图中,区块头部分括号里的数字表示各个数据所占大小,加起来刚好是80字节。区块头内含的数据有:
1)版本号(Version)
用来标识交易版本和所参照的规则。例如安卓8.1,或者iOS11.3,区块也有自己的版本号。
2)前一区块哈希值
也称“父区块哈希值”,这个哈希值通过对前一个区块的区块头数据进行哈希计算(SHA256算法)得出,它的意义在于:每个新挖出的区块都按秩序接在前一个区块的后面;这样,挖出新的区块后,你才能安心地喝一口茶,因为你很清楚这个区块是跟在一个被各节点验证过的可靠的区块后头。
3)默克尔根(Merkle Root)
如上图,在区块主体中,所有交易信息先进行两个一组的哈希计算,这种结构叫做Merkle树(Merkle Tree),而且是一棵倒挂的树。
我们把问题简单化,假设区块主体中有4笔交易信息,分别是交易1,交易2,交易3,交易4。Merkle树先对每个交易信息进行哈希Hash计算(如果不知哈希,请先阅读《区块链是什么?》),分别得出Hash 1 、Hash 2、Hash 3、Hash 4。
到了第二层,像班主任安排座位一样,两个一组,也就是说 Hash 1 和 Hash 2 的字符串排排坐,变成2倍长的字符串,然后算出这个字符串的哈希值,我们记做 Hash(1&2);Hash 3 和 Hash 4 同上办法处理,得到 Hash( 3&4),再往上算,Hash(1&2)、Hash( 3&4)这两个字符串又合并,接着进行哈希运算,这个最后的哈希值就是区块头的Merkle树根。
对比特币来讲,真实情况是一个区块主体包含约4000多笔,更多的情况大家就举一反三吧,总之就是不断两组合并、哈希运算,依次往上计算,直到算到最后一个哈希值。
Merkle树能够快速检验交易数据的完整性,即数据是否被篡改过。根据密码学中哈希函数的特点,如果有人对数据做过手脚,计算出的哈希值也会变得完全不一样。哪怕在这4000笔交易中,我只移动了一个小数点,你也能从Merkle树根的哈希值发现问题。
4)时间戳(Time)
记录这个区块生成的时间,精确到秒。每诞生一个新的区块,就会被盖上相应的时间戳,这样就能保证整条链上的区块都按照时间顺序进行排列。
5)难度值(Target_bits)
挖出该区块的难度目标。每产生2016个区块,数据区块运算难度会调整一次。比如,比特币区块链网络能够自动调整挖矿的难度,让矿工每10分钟才挖出一个区块。原本需要14天才能挖完2016块区块,但不知哪个天杀的突然弄来几台算力爆表的矿机,7天就搞定了,这就意味着到预定调整期的时候,挖矿难度会增加一倍。
6)随机数(Nonce)
挖矿相当于矿工做数学题,他们利用计算机或矿机的算力(hashrate),经过大量的计算(专业一点称“哈希碰撞”),试出一个正确的区块哈希值;很多时候我们也把挖矿称作争夺记账权。
那么,矿工怎样才知道试对了哈希值呢?随机数就是这道数学题的解,挖矿过程就是在寻找这个随机数。假设某个新区块的随机数为23333,矿工们开始苦哈哈地尝试各种随机数,直到有个幸运星成功试到一组数字,这组数字的哈希值是
e401a2f533e853713eea21b878c1921c19fa9c8b887c1547c771ece46e13f766
而这个字符串正是随机数23333的哈希值!Bingo!
挖到一个新区块的节点/矿工向全网广播:“别挖啦!这个区块被我承包啦!”不管还差多少就快成功,其他矿工都只能放弃这个区块的记账权,转而开始验证这个区块。新区块验证通过后,成功加入区块链。
最后,总结一下:
1)区块是区块链的基本组成单元。
2)每个区块由区块头和区块主体组成,头小身大。
3)区块头包括:
4)区块主体包括挖出该区块的这10分钟内的所有交易信息,呈Merkle树结构排列。
好啦,以上就是今天小编要分享给大家的全部内容啦,希望大家多多支持我们蜜蜂查平台,如果还有不懂的地方欢迎在下方留言,小编会给大家一一回复的。

来源: 蜜蜂查🐝
币问快答