区块链原理与技术
  • 区块链原理与技术
  • 比特币密码学基础
    • 密码学简介
    • 哈希函数
    • 数字签名
  • 比特币数据结构
    • 哈希指针
    • 默克尔树
    • 数据结构
  • 比特币交易模型
    • 身份确认
    • 交易服务
  • 比特币共识机制
    • 共识机制
    • 区块链的共识机制
  • 挖矿&脚本
    • 挖矿
    • 比特币脚本
    • 多重签名
  • 区块链分叉
    • 硬分叉与软分叉
  • 问题
  • 比特币匿名性
    • Page 1
  • 以太坊数据结构
    • 以太坊概述
    • 以太坊账户
    • 以太坊状态树
  • 交易树&收据树
    • 以太坊交易树&收据树
    • 布隆过滤器
    • GHOST协议
  • 以太坊:从PoW到PoS
    • 工作量证明PoW(节能)
    • 权益证明PoS
Powered by GitBook
On this page
  1. 比特币数据结构

数据结构

Previous默克尔树Next身份确认

Last updated 4 months ago

为什么只哈希区块头而不是整个区块?

因为区块头中通常包括一个字段,叫做Merkle Tree(默克尔树),它已经考虑了区块体中所有交易的哈希值。这样只需哈希区块头,就能确保整个区块(包括其交易)的完整性。

在区块链中,区块头通常包含以下几个主要元素:

  • 版本(Version):用于跟踪区块链软件的版本。

  • 上一个区块的哈希(Previous Block Hash):这确保了区块之间的连续性。

  • 默克尔树根(Merkle Root):一个用于验证交易集合完整性的数据结构。

  • 时间戳(Timestamp):标记该区块创建的时间。

  • 难度目标(Difficulty Target):这与挖矿过程中需要解决的数学问题有关。

  • 随机数(Nonce):一个随机数,用于挖矿。

区块链就是一个单向链表,链表的头是第一个区块。

  • 创世区块(Genesis Block):区块链中的第一个区块

  • 区块结构:

    • 区块头:包含该区块的元数据,如前一个区块的哈希值、时间戳等。

    • 区块体:包含实际的交易数据。

  • 哈希指针:每个新区块都有一个哈希指针,该指针是前一个区块头的哈希值。

比特币的区块链里有两种哈希,一个是区块之间的哈希链,一个是每个区块体内的默克尔树。