区块链技术与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.2 区块链工作流程

我们已经定义和描述了区块链,也介绍了相关的术语。现在,让我们来看看区块链到底是如何工作的,它的通用工作流程是什么。众所周知,区块链中的节点要么是创建新的区块并铸造加密货币(代币)的矿工,要么是对交易进行验证和数字签名的区块签名者。在区块链网络中必须做出的一个关键决定是,通过一种共识机制选出哪个节点将把下一个区块追加到区块链上。现在,我们将介绍区块链验证事务,以及创建和追加区块上链的过程。

区块链的基本工作流程如图2-2所示,我们能够大致了解用户如何发起一笔交易、验证,以及区块如何生成和进行上链的过程。

图2-2 区块链的基本工作流程

(1)新交易创建。节点首先创建一笔交易,然后用其私钥对其进行数字签名。交易可以表示区块链中的操作,最常见的情况是用户之间的价值转移,也可能是触发智能合约的执行。交易的数据结构通常包含数值或状态字段、相关规则、源地址和目标地址,以及其他验证信息。一笔交易通常发生在两个或多个当事人之间。

(2)交易通过P2P网络传播。节点通常通过区块链P2P网络通信协议,如Gossip协议,将交易数据结构发送(广播)到参与共识的节点进行有效性验证,在广播交易前还将验证它是否有效。

(3)交易验证。参与共识的节点将交易池中高优先级的交易打包成区块,这些交易被区块链网络上称为矿工的特殊参与者接收并验证其有效性,然后共识验证过程开始。此过程通常被称为新区块的产生或创建过程。这时,每个矿工节点均想竞争成为新区块的唯一生成者。在公有链中,对于完成交易验证的获胜者,每个节点均有机会获得挖矿的奖励,这也是公有链加密货币的发行方式;同时,每一笔交易也需要支付一定的费用。由于加密货币存在较高的风险和投机性,甚至可能干扰现有货币政策,因此,我国政府拥抱区块链技术,但对加密货币采取严格的政策,禁止挖矿和加密货币的交易行为。

(4)验证结果通过P2P网络传播。一旦某个矿工解决了数学难题,验证结果通过P2P网络传播,并得到大多数矿工的最终验证,那么该交易会被视为已完成。通常,在像比特币这样的加密货币区块链中,解决数学谜题的矿工会获得一定数量的加密货币奖励。比特币系统规定每挖出21万个区块则奖励减半,到2140年,比特币将全部被挖出,矿工挖矿将没有奖励,完全靠交易的手续费得到奖励。

(5)交易写入账本。记账节点将新区块添加到主链,将它作为一个全新的区块通过哈希指针链接到自身节点的区块链副本中,形成一条从创世区块到最新区块的完整的、更长的链条,称为上链。随后,共识节点放弃之前对构建相同高度区块的计算,并进入下一轮区块上链的计算过程。区块链中存在硬分叉和软分叉,所谓软分叉是指兼容性分叉,区块链网络系统版本或协议升级后,旧的节点并不会意识到比特币代码发生了改变,并继续接受由新节点创造的区块,新老节点始终还是在同一条链上工作;硬分叉是指当比特币区块格式或交易格式(共识机制)发生改变时,未升级的节点拒绝验证已经升级的节点产生的区块,然后各自延续自己认为正确的链,因此分成两条链,例如,比特币为解决链上扩容进行的硬分叉将区块容量提升至8MB,硬分叉后形成了比特币现金(BCH)区块链。