区块结构
字段 | 大小 | 格式 | 描述 |
---|---|---|---|
Version | 4 字节 | 小端序 | 区块版本号 |
Previous Block | 32 字节 | 自然字节序 | 前一个区块的区块哈希 |
Merkle Root | 32 字节 | 自然字节序 | 区块中包含的所有交易ID的默克尔根 |
Time | 4 字节 | 小端序 | 当前时间的 Unix 时间戳 |
Bits | 4 字节 | 小端序 | 目标值的紧凑表示 |
Nonce | 4 字节 | 小端序 | 随机数,用于尝试找到有效哈希 |
Transaction Count | 动态 | compact size | 区块中包含的交易数量 |
Transactions | 动态 | 交易数据 | 区块中包含的所有原始交易数据 |
Previous Block
表示当前区块的前一个区块的哈希值。正因为该字段, 每一个区块(除了创世区块)都连接到自己的前一个区块, 构成了链条一样的结构, 故被称为区块链。
区块哈希
区块哈希是一个区块的唯一标识符, 它是由矿工根据区块头的内容计算出来的。计算区块哈希的过程称为挖矿, 只要计算出的区块哈希值小于当前的目标值, 即可成功挖矿。
例如:
- 创世区块的区块哈希 - 区块高度 0
- 隔离见证激活区块的区块哈希 - 区块高度 481824
计算区块哈希的结果是自然字节序(大端序), 在实际使用中, 以小端序显示, 如下是区块 481824
的区块头数据最后一次哈希计算结果:
Hash256 计算器
对给定的数据进行双重sha256 计算
16进制数据
结果
- 区块哈希:
0000000000000000001c8018d9cb3b742ef25114f27563e3fc4a1902167f9893
- 哈希结果:
93987f1602194afce36375f21451f22e743bcbd918801c000000000000000000
可以看出区块哈希是哈希结果的小端序显示。
衡量算力
衡量算力的标准是哈希率, 即每秒可以进行多少次 Hash256
计算。例如:
- 1 H/s 表示每秒 1 次哈希计算。
- 1 KH/s 表示每秒 1 千次哈希计算
- 1 MH/s 表示每秒 1 百万次哈希计算。
- 1 GH/s 表示每秒 1 亿次哈希计算。
- 1 TH/s 表示每秒 1 万亿次哈希计算。
- 1 PH/s 表示每秒 1 千万亿次哈希计算。
- 1 EH/s 表示每秒 1 百万亿亿次哈希计算。
目的
区块头中包含前一个区块哈希是构建可信赖且防篡改的分布式账本的关键机制。这种设计巧妙地创造了一个密码学保护的链式结构,其中每个区块都与其前序区块紧密相连。若尝试篡改某个历史区块的内容,该操作将不可避免地导致该区块哈希值的改变。这种变化会产生连锁反应,使得所有后续区块与这个被修改的区块失去有效连接,进而导致从该点开始的整个区块链分支失效。
这种哈希链接机制不仅确保了单个区块的完整性,更保证了整个区块链数据的不可篡改性。它为比特币等加密货币提供了一个坚不可摧的信任基础,使得任何对历史记录的恶意修改尝试都能被网络中的参与者迅速检测并拒绝。
相关 RPC
根据最近的 n 个区块估算全网算力, 返回哈希率
参数列表
参数名 | 类型 | 必选 | 默认值 | 描述 |
---|---|---|---|---|
nblocks | number | 120 | 从最近的多少区块中估算 | |
height | number | -1 | 根据给定高度开始估算 |
返回值
名称 | 类型 | 描述 |
---|---|---|
n | number | 全网每秒哈希次数估算值 |
返回最长链最新区块的哈希值
返回值
名称 | 类型 | 描述 |
---|---|---|
hex | string | 区块哈希值 |