深入比特币原理(八)——比特币区块链

比特币的出现使人们发现了一项具有巨大潜力的前沿技术——区块链,本节将讨论区块链在比特币中的工作原理。

我们先重温一下比特币白皮书中的一张图

当时我们说过这张图就是比特币区块链的雏形,比特币的区块一个一个按顺序连接在一起形成一根链条,被形象的称为区块链。

区块是如何连接成区块链的?

首先我们看一下区块(Block)的结构

区块的结构其实非常简单,下面我们再打开区块头(Block Header)的结构一看究竟

区块头的结构中包含一个字段Previous Block Hash,该字段包含父区块头Hash值。

由于每一个区块头的Hash值都是唯一的,并且都会被包含在其子区块头中,所以区块的信息会影响其后面所有的区块。

如果某一个区块被改变,区块头的Hash值就会改变,那该区块后面所有的区块都会需要重做,这需要耗费大量的工作量重新计算(工作量证明),从而保证了比特币区块链的稳定性和安全性。

区块连接示意图:

区块的其他说明:

1.标识一个区块

区块头哈希(Block Header Hash):区块头哈希有时也被称为区块哈希,它可以唯一的标识一个区块,该信息可以随时被计算,并存储在子区块的Previous Block Hash中。

区块高度(Block Height):区块高度即区块在区块链中的位置(第几个区块),创世区块高度为0,每个区块对应一个唯一的高度,但同一高度下可能临时存在多个区块(这种分叉的情况我们在后面挖矿章节讨论)。早期区块高度不会存储在区块中,仅由每个节点自己动态维护,在比特币改进方案BIP-34中提出利用软分叉在coinbase的解锁脚本中添加块高度信息,并将块Version变为2,从227,835块之后全部块的Version已经为2,即包含块高度信息。

2.创世区块

区块链的第一个区块被称为创世区块,比特币的创世区块在2009年创建,现在比特币的所有区块都可以反向追溯到创世区块。

创世区块被静态植入比特币核心客户端中,不能被修改,所有比特币节点都将从创世区块开始构建区块链。

创世区块的Hash

000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

中本聪在创世区块中隐藏的植入一段文字:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”(这是英国泰晤士报当天的头条新闻标题,一方面证明区块的创建真实时间,一方面暗讽中心化金融系统)

引用资料:

[1]Andreas M. Antonopoulos, Mastering Bitcoin(sencond edition)

加入知识星球和HWer一起成长

更多好文请关注后查看历史消息

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180530G09HKP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区