比特币的出现使人们发现了一项具有巨大潜力的前沿技术——区块链,本节将讨论区块链在比特币中的工作原理。
我们先重温一下比特币白皮书中的一张图
当时我们说过这张图就是比特币区块链的雏形,比特币的区块一个一个按顺序连接在一起形成一根链条,被形象的称为区块链。
区块是如何连接成区块链的?
首先我们看一下区块(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一起成长
更多好文请关注后查看历史消息
领取专属 10元无门槛券
私享最新 技术干货