区块链的数据结构是由包含事务信息的块按远近顺序排列的。块按远近顺序在这个链中链接,每个块都指向前面的块。
区块链通常被视为一个垂直堆栈,第一个块是堆栈底部的第一个块,然后将每个块放在前一个块的顶部。使用堆栈将块依次堆叠的概念可视化之后,我们可以使用一些术语,如“高度”来表示块与第一个块之间的距离;和“top”或“top”表示新添加的块。
每个块头生成一个SHA256加密散列来生成散列值。使用这个散列值,可以标识区块链中相应的块。同时,每个块可以通过其块头的“父块哈希值”字段引用前一个块(父块)。更多区块链知识
也就是说,每个块头包含其父块散列值。这样,通过将每个块链接到相应父块的散列序列,就创建了一个返回到第一个块(创建块)的链。
虽然每个块只有一个父块,但它可以临时有多个子块。每个子块具有与其父块相同的块,并且在“父块哈希值”字段中具有相同的(父块)哈希值。在一个块中出现多个子块的情况称为“块链叉”。
区块链分叉只是暂时的,并且只在多个不同的块几乎同时被不同的矿工发现时才会发生。最后,只有一个子块成为区块链的一部分,解决了“区块链fork”的问题。虽然一个块可能有多个子块,但是每个块只有一个父块,因为一个块只有一个“父块散列值”字段可以指向它惟一的父块。
由于块头包含“父块哈希值”字段,所以当前块的哈希值也会受到字段的影响。如果父块的标识改变了,子块的标识也会改变。
当父块中有任何更改时,父块的哈希值也会更改。这将迫使子块的“父块哈希值”字段发生更改,从而导致子块的哈希值发生更改。子块的哈希值的改变将迫使大块的“父块哈希值”字段发生变化,从而改变大块的哈希值等等。
一旦一个块有许多代,这个瀑布效应将确保这个块不会被改变,除非强制重新计算该块中所有后续的块。正是这种重新计算需要大量的计算,所以长区块链的存在可以使区块链的历史无法改变,这也是比特币安全的一个关键特征。
你可以把区块链想象成地质构造中的一个地质层,或者是冰川核心的一个样本。沉积前表层可能随季节变化,甚至被风吹走。但在更深的地方,地质结构变得更加稳定。在几百英尺深的地方,你会看到保存了数百万年但仍然具有历史意义的岩层。
在区块链中,由于区块链分支导致的重新计算,可能会修改最新的块。最近的六块地在表土里只有几英寸深。但是,在超过6个块之后,块在区块链中的位置越深,更改它的可能性就越小。100个街区之后,区块链足够稳定,可以支付Coinbase交易(包括新挖的比特币交易)。经过数千个街区(一个月)后的区块链将成为一个确定的历史,永远不会改变。
有疑问加站长微信联系(非本文作者)