2025-09-17 03:24:43

认识Genesis Block(创世区块)

摘要
Genesis BlockMerkle tree 是一种 hash tree,用来表示 hash 值的资料结构。Merkle tree 的发明人是 Ralph Merkle,当然这就是...

Genesis Block

Merkle tree 是一种 hash tree,用来表示 hash 值的资料结构。Merkle tree 的发明人是 Ralph Merkle,当然这就是这个资料结构的名称由来。

创世区块链

Merkle tree 的基本结构是binary tree(二元树),每一个non-leaf 的节点(node),都被标示一个hash 值。

图 1:就是一个 binary Merkle Tree 的结构。其中,Top hash 的部份,就是 Merkle Root。

图1:Merkle Tree

学习Merkle tree 资料结构,可以说是「Blockchain 系统开发者」的第1 堂课。为什么这么说呢?

以图2 来看,分散(Distributed)在世界各地的所有Block 之间,以一个链(Chain)的关系串连在一起,这就是Blockchain(区块链)的概念与名称由来。

图2:Block 与Chain

Block #0

这些分散在世界各地的Block,都会有一个编号,如图3。这个编号就是区块产生的「顺序」。

图3:Block #0

这其中,就一定会有编号为0 的第一个区块,这个区块就称之为Genesis Block(创世区块),学习如何建立Genesis Block 就是Blockchain 系统开发者的第2 堂课。

而区块的产生「方式」,则可以由Blockchain 的系统开发者来设计。以Nakamoto Blockchain 来说(Bitcoin 的Blockchain 系统),区块的产生过程,就称为「挖矿」。

Blockchain 与Merkle Tree

那Merkle Tree 与Blockchain 的关系倒底是什么呢?将Blockchain、Genesis block 与Merkle tree 放在一起讨论时,它们的关系就是图4。

图4:Blockchain、Genesis block 与Merkle tree

如果我发展一个叫做Cui's Blockchain 系统时,一个粗略的起步应该就是:

建立Genesis block,genesis block 会有自已的一个hash 值,这个值是经由hash 算法产生,因此也叫做hash ID

利用算法,经过一段困难的算法运算,产生Block #1

Block #1 也会有自已的 hash ID,同时, Block #1 要使用 PreviousHash 栏位,串接到前一个 Block,它的前一个 Block 就是 Genesis block(Block #0)

同理,产生 Block #2 与更多 Blocks,这些 block 之间都用 PreviousHash 栏位串接,这条链就是 Block chain

到这边,还是很好奇 Merkle tree 的用途啊?回顾图 4 发现,每个 Block 裡面都会有 Merkle Root 栏位,这个栏位就是一颗 Merkle tree。

区块倒底能做什么呢?每一个区块,都能用来「记帐」,整个Blockchain 串接起来就是一本完整的帐本,所以说,Blockchain 也叫做distributed ledger(分布式帐本)。

更深入技术来看,区块里的Merkle tree 就是负责记帐的栏位。

声明:文章不代表链懂观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
热门新闻
热门百科
回顶部