区块与区块链介绍

概念

当Alice想向Bob发送一个交易时,她会对交易进行签名并将其广播到网络中的节点。共识节点会对内存池中的有效交易进行筛选,并将所选的交易打包到区块中。区块是一批同时得到确认和存储的交易。除了所包含的交易之外,区块结构还包括一些其他字段,相关讨论请点击此处查看。

链接区块

区块(bn)中有一个代表对上一个区块引用的字段,被引用的区块(bn-1)是最近一个在当前区块之前得到确认的区块。更准确地说,它是前一个区块的哈希。由节点来计算哈希值从而验证区块的父节点。同理,上一个区块(bn-1)也具有相同的行为,即链接到它之前的区块(bn-2)。这条链一直延伸直到创建的第一个区块,称为创世块(b0)。这就是术语“区块链”的由来,因为它实际上是一条由区块链接而成的链结构。

父块与子块

每个区块只能有一个父块,通过字段引用到前一个区块。大多数区块链都会出现一种临时状态,即一个父块可以有多个子块,也就是说,多个区块可以指向同一个父块。比特币平均每周会出现一次这样的情况。当两个矿工近乎同时地发现新区块的一个有效Nonce时(“解决难题”),就会出现这种情况,两个矿工都会向网络广播有效的区块。这就是所谓的分叉,当挖出新的区块时这个问题就会自动得到解决。因为之后产生的区块只会加在其中一条链上,且最长的那条链(难度最大的路径)才会被大家接受,而另一条则会被放弃。

得益于dBFT共识机制,NEO区块链不会受到这种行为的影响,并且根据算法的终局性,NEO永远都不会出现分叉,因此也不会出现区块链存在两个有效版本的情况。有关共识机制的更多信息,可以阅读白皮书

下一节或者返回目录