区块链(Blockchain)顾名思义就像是由无数个区块(Block)所组成,这整个区块链就像是一个共享的分散式总帐,这些一个一个的区块到底是什么?如何让这些区块被串在一起,又如何确保它们无法被窜改?
 每个区块的Block Header都会包含一组Previous Block Hash值,这是将前一个区块的Block Header进行Hash Function而得到的值,因此每个区块之间,都会借由这个无形的链条与先前的区块环环相扣.
 区块链(Blockchain)顾名思义就像是由无数个区块(Block)所组成,以比特币的区块链来说,目前已经产生超过40万个区块,这整个区块链就像是一个共享的分散式总帐,由多个参与比特币交易的运算节点来共同维护,每个节点也各自拥有一份完整的帐本备份(完整个区块链资料),而其中的每个区块,就像是帐本中的其中一页,记录好几笔不同的交易资讯,这些纪录都无法经由其中一个节点来窜改.不过,这只是个比喻,实际上,这些一个一个的区块到底是什么?如何让这些区块被串在一起,又如何确保它们无法被窜改,得先从分析每一个区块所包含的资讯说起.
 在比特币区块链中,每一个区块(Block)所包含的资讯,包括区块的容量大小(Block Size),区块头(Block Header),该区块包含的交易数量(Transaction Counter),以及每一笔被包含在这个区块中的交易资讯(Transactions).其中,这些交易资讯都是已经Hash过的值,而Block Header则是最重要的一个部分.
 每个区块中的Block Header大小固定为80 Bytes,包含用来追踪区块链协议升级的版本号(Version),以及三组区块中继资料(Block Metadata).
 第一组资料为固定32 Bytes的Hash值,从前一个区块中的Block Header所计算出来(Previous Block Header Hash),这么做可让每一个区块与前一个区块资料产生无形的连结,并能确保区块序列及历史纪录的正确性,这也是形成区块"链"最关键的连结.
 实际产生的过程,则是当区块链网络中的其中一个节点完成工作量证明时,该节点会将这个新区块广播给其它节点,其他节点会进行验证,确认这个新区块的正确性及有效性,并将这个新区块接上区块链,这个过程就像是让这本大家共同维护的帐本资讯同步,此时,各个节点便会将这个新区块的Block Header进行Hash,得到的Hash值会被放进下一个产生的区块中,进行下一回合的工作量证明.
 这么做可让这些被验证完的交易区块一个串接一个,形成区块链,一旦这个Hash值不正确,便会立刻被其他节点验证出来,也因此,让区块链具有无法轻易窜改的特性.
 第二组是与进行工作量证明相关的中继资料,由Difficulty Target,Timestamp及Nonce值所组成,Difficulty Target是在工作量证明演算法过程中,Nonce则用来表示工作量证明演算法进行的次数.这个困难值每2016个区块会调整一次.最后第三组则是用来汇整多笔交易纪录的资料结构Merkle Tree Root,这是一个由数笔被放进区块中的交易记录Hash值,经由Merkle Tree演算法所算出来的Hash值.