零基础玩转区块链
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

◇区块链的信息不可篡改

区块链的数据结构是由包含交易信息的区块按照从远及近的顺序有序地链接起来的,在该链条里,各区块都会指向前一个区块。

区块链被看作是一个垂直的“栈”,第一个区块是“栈”底的首区块,之后每个区块都被放置在之前的区块上。之后,就能使用一些术语表示,例如,“高度”表示区块与首区块之间的距离;“顶部”或“顶端”表示最新添加的区块。

对每个区块头进行SHA256加密,能够生成一个哈希值。通过该哈希值,就能识别出区块链中的对应区块。同时,每一个区块还能通过其区块头的“父区块哈希值”字段引用前一区块(父区块)。也就是说,每个区块头都包含着它的父区块哈希值,把每个区块链接到各自父区块的哈希值序列,就能创建一条可以追溯到首个区块的链条。

虽然每个区块只有一个父区块,但可以暂时拥有多个子区块。各子区块都将同一区块作为其父区块,并在“父区块哈希值”字段中具有相同的(父区块)哈希值,一个区块出现多个子区块,就是“区块链分叉”。但这种状况也是暂时的,只有多个区块同时被不同的矿工发现时才会发生。

虽然一个区块可能有多个子区块,但每个区块只有一个父区块,因为一个区块只有一个“父区块哈希值”字段能够指向它唯一的父区块。

区块头里面包含“父区块哈希值”字段,当前区块的哈希值也会受到该字段的影响。如果父区块的身份标识发生变化,子区块的身份标识也会跟着发生改变。

父区块有任何改动,父区块的哈希值都会发生变化,子区块的“父区块哈希值”字段也会被迫发生改变,从而导致子区块的哈希值发生改变……以此类推。一旦一个区块有很多代,该区块就不会被改变,除非重新计算该区块所有后续的区块。

可以把区块链想象成地质构造中的地质层或冰川岩芯样品。表层可能会随着季节而变化,甚至在沉积之前就被风吹走。但是越往深处,地质层就变得越稳定;到了几百英尺深的地方,就会看到保存了数百万年但依然保持历史原状的岩层。

在区块链里,最近的几个区块可能会由于区块链分叉所引发的重新计算而被修改。最新的6个区块就像几英寸深的表土层,超过这6个区块后,区块在区块链中的位置越深,被改变的可能性就越小。在100个区块以后,区块链已经足够稳定;在几千个区块(1个月)后,区块链将变成确定的历史,永不改变。