主页 > imtoken手机版下载 > 区块链到底是什么区块?基于“挖矿”的算法(干货分享)

区块链到底是什么区块?基于“挖矿”的算法(干货分享)

imtoken手机版下载 2023-01-17 16:24:37

区块链的区块到底是什么?

简单来说,块可以理解为一个结构。我们知道结构可以存储不同类型的信息,可以是字符串、数字或日期。该块中包含什么信息?这里给个图,我们先来了解一下区块信息的大类。(微信公众号:币多多区块链)

weixin.qq.com/r/Bi6GnrDEke3urfT993sU(二维码自动识别)

如图,一个block中的信息是按类别划分的,主要分为这四类。你只能对这一点做一个概念性的理解。真正影响区块生成的信息主要是区块头中的以下几项:

index(记录当前区块号)

当前哈希

前一个hash(接收一个块时的hash值,该块可以在时间序列上得到保证)

timestamp(时间戳,记录区块的生成时间)

数据(交易详情、每笔交易的发送方和接收方详情、金额和数字签名)

noounce(随机数,即全网矿工共同计算出的满足哈希难度要求的答案)

我们希望对nounce值有一个第一印象。这个噪声值不仅与挖矿有关,在后续的代码实现中也有着非常重要的标识。

什么是哈希和哈希值?

为了理解挖掘的代码机制,让我们首先解决几个概念。第一个是“哈希”。

我们在上一篇关于挖矿的文章中提到了计算能力。也有人说计算能力是矿工每秒可以进行多少次哈希冲突。那么,什么是哈希,什么是哈希冲突?

那么,简单理解就是哈希函数。哈希冲突的本质是在随机枚举值的过程中,CPU不断寻求生成与比特币当前“难度”条件相匹配的值。一旦找到该值,就会发生成功的哈希冲突。

现在的你一定很气哈西是个什么样的人呢?我们 == SHA256 == 哈希算法一探究竟。

经过测试,我们可以发现哈希函数有一些非常独特的特点:

任何内容都可以生成哈希值。

哈希值是一个固定长度的十六进制数。

不同的内容会产生不同的哈希值。即使是非常相似的内容也会产生完全不同的值而没有模式。

每次相同的内容输出相同的哈希值。

通过比较“hello”、“helloworld”、“hello world”和“hello, world”的输出结果,我们可以验证我们对哈希算法的总结。有兴趣的同学可以去验证一下其他值,你会发现,无论多小,都会导致哈希值发生完全无法追踪的变化。

正是哈希值的这些特性,赋予了它更高的安全性加密信息。

挖矿的“难点”

最后一个概念是挖矿的难度。这里的难点是由浅入深。我们举个例子来了解它的原理。

例如,我们将一个 5 位数字排列组合成一千万位。如果是第一次排列组合区块链矿工是什么意思,我指定万位和千位为5,其他位不限;对于第二个排列组合,我只指定万位数为5,那么取大者的概率和取小者的概率。毛呢布?

——答案是第一个概率小,第二个概率高。因为数量越多,可用的其他选项就越少。

同理,挖矿就是匹配已经分配了位数的哈希值。挖矿的“难度”由指定位数决定。这与以十六进制指定的数字无关。

如上框所示,当哈希值难度的前四位设置为“0”时区块链矿工是什么意思,只有匹配的前四位为“0”时才会发生成功的哈希冲突。如果“0”集合的个数越多,哈希越难成功,越难挖掘。

比特币一开始,难度很小,只有第一位是“0”,碰撞成功。那时的挖矿非常简单。现在,随着全网算力的提升,挖矿难度也很大,目前的哈希难度已经是十几个“0”了。