📅  最后修改于: 2020-12-18 03:06:35             🧑  作者: Mango
区块链是一种数字存储数据的概念。此数据以块为单位。这些块链接在一起,使数据不可变。当一个数据块与其他块链接时,其数据将永远无法再更改。希望再次看到它的任何人都可以公开使用它,并且可以按照添加到区块链中的相同顺序来使用它。将信息添加到区块链后,没有人可以更改信息。
在上一节中,我们学习了如何在整个过程中构建块和加密哈希关系。在这里,您可以看到区块链如何将所有这些概念一起使用,以保持完整区块链的完整性。
想象一下下图所示的一堆交易数据。
在上图中,您可以看到块按时间顺序组装。第一块之后是第二块,然后是第三块,然后是第四块,您可以根据需要继续操作。在这里,您会发现有一个块号字段,数据字段, nonce字段,哈希值字段和previous字段。先前字段对应于先前块的哈希值字段。
我们知道,区块链中的每个区块都与下一个区块密码关联。在上面的示例中,第一个块中的前一个字段为零,因为第一个块没有前一个哈希值,因此其值为零。在第二个块中,您会发现前一个字段中有一个哈希值,该哈希值引用了前一个块的哈希值。此过程一直持续到最后一个块。
现在想象一下任何块中的数据是否被更改。假设我们更改了第2块,现在第2块中的数据有所不同,挖掘该块也获得了新的签名。与此新数据集相对应的签名不再链接到其他块。它只是中断了第2个块,因为哈希不再有效,并且还会使之后的每个块无效,直到链的末尾。它向该区块链的其他用户表明区块2中的某些数据已被更改,并且由于区块链应该是不可变的,因此他们通过移回区块链的先前记录(其中所有区块仍链接在一起)来拒绝此更改。这是区块链的主要优势。
现在,如果您尝试对其进行修复,那么找出上一个随机数的唯一方法就是解决它,这在上一课中已进行了说明。因此,我们仅需一个街区,然后尝试一下。如果没有给出有效的哈希,请尝试使用两个,三个,四个,如果它们都不起作用,则只需对其进行挖掘即可。当您挖掘一个块时,系统会发现有一个有效的哈希,因为它有四个前导零。但是,正如您注意到的那样,当您尝试对第二个块进行哈希处理时,此哈希没有四个前导零。因此,它仍然是无效的块。因此,您也必须挖掘此块。同样,您必须对链中最前面的每个块都执行此操作以解决问题。
现在让我们谈谈拥有四个前导零的重要性。这四个前导零与某种难度级别相关。难度级别是绑定并内置于区块链网络中的东西,它决定了获取区块的等效加密哈希值有多困难。在这种情况下,该难度级别要求我们的哈希值小于目标中的哈希值。
为此,我们需要一个至少具有四个前导零的目标。例如,如果哈希目标是0000a1b2c3d4e5f6 ,则任何小于或等于此数字的哈希都是有效的块哈希。许多哈希可以满足此要求,并且其中任何一个都是有效的。但是,找到这样的哈希值是一项艰巨的任务。哈希目标越小,找到有效哈希的难度就越大。
随着新计算机以更多的加密哈希添加到比特币网络中,这些难度级别随着时间的推移不断增加。因此,更多的散列能力意味着难度级别需要提高。每两周调整一次此难度级别,以确保实际上正在竞争解决这些密码问题的计算机总共花费大约10分钟来挖掘一个新块。
注意:每10分钟1块=每小时6块,一天6 x 24,两周内6 x 24 x 14 = 2016块。
例如:如果要查找小于或等于0FFFF的哈希,则有65,536个选择。但是,如果要查找小于或等于000FF的哈希,则只有256个选择。较低的目标数量意味着更少的选择。通常,我们在哈希中需要更多的前导零,而要找到有效的哈希则要困难得多。