区块链 交易流程与挖矿

我们总结一下前面章节介绍的交易步骤:

  • 区块链网络中,任何想支付的人,需创建一个交易,里面的内容大致是,买家付给卖家多少钱。
  • 在一定时间内,网络中可能会发生多笔交易。
  • 所有交易,都会通过网络广播,但交易不一定要到达网络中的每个节点。
  • 接收到新交易的矿工,将多个新交易组装成一个块。注意,多个矿工之间新建区块中的交易集有可能是不一样的,这是没关系的,系统确保在合理的时间内,网络上广播的交易都包含在某个块中。通常,发送方会向矿工提供一定数量的比特币作为激励,矿工可能会优先选择那些激励高的交易放进区块。
  • 矿工接下来的工作是为新区块计算工作证明。
  • 当矿工计算好工作证明后,它将把组装好的新区块向网络广播。
  • 接收到新区块的其他节点,会验证新区块中的所有交易是否有效,比特币是否重复支付,没有问题才会接受。
  • 如果该区块被接受为有效的,其他矿工必须对自己正在组建的区块重新组装,删除与已接受区块重复的交易,另外,这些矿工会把已接受区块的哈希值作为自己区块的前向哈希值。
  • 类似地,一个区块一个区块就这样被添加到区块链上。

现在,我们已经看到了整个区块链系统是如何工作的,接下来让我们来看看这套机制的一些缺陷以及弥补措施。

一个矿工短时间内有可能会接收到大量交易,导致处理不过来,所以必须对区块大小作出限制。区块大小的上限,已经在系统中预先定义,所以区块中只能包含一定数量的交易。一个区块中的交易数,由预定义的块大小和每个块的平均长度决定。这表明 ...