数据结构
Last updated
Last updated
为什么只哈希区块头而不是整个区块?
因为区块头中通常包括一个字段,叫做Merkle Tree(默克尔树),它已经考虑了区块体中所有交易的哈希值。这样只需哈希区块头,就能确保整个区块(包括其交易)的完整性。
在区块链中,区块头通常包含以下几个主要元素:
版本(Version):用于跟踪区块链软件的版本。
上一个区块的哈希(Previous Block Hash):这确保了区块之间的连续性。
默克尔树根(Merkle Root):一个用于验证交易集合完整性的数据结构。
时间戳(Timestamp):标记该区块创建的时间。
难度目标(Difficulty Target):这与挖矿过程中需要解决的数学问题有关。
随机数(Nonce):一个随机数,用于挖矿。
区块链就是一个单向链表,链表的头是第一个区块。
创世区块(Genesis Block):区块链中的第一个区块
区块结构:
区块头:包含该区块的元数据,如前一个区块的哈希值、时间戳等。
区块体:包含实际的交易数据。
哈希指针:每个新区块都有一个哈希指针,该指针是前一个区块头的哈希值。
比特币的区块链里有两种哈希,一个是区块之间的哈希链,一个是每个区块体内的默克尔树。