区块链包括区块链头、序列化区块链、交易、钱包和P2P网络。区块链头包括版本号、前一区块链头哈希、默克尔树根节点、时间戳、区块复杂度、工作量值。其具体的关系如下表所示:
序号 |
位数 |
名称 |
数据类型 |
描述 |
1 |
4 |
版本号 |
int32 |
区块链版本号用于确定区块集的验证规则; |
2 |
32 |
前一区块头的哈希值 |
char |
一个SHA256的哈希值,这保证迁移区块不能保证 |
3 |
32 |
默克尔树根哈希 |
char |
一个SHA256哈希值。默克尔树是由此区块的所有交易生成。其确保交易的不可变动性。 |
4 |
4 |
时间戳 |
uint32 |
时间戳是一个Unix时间,它记录矿工开始挖矿的时间。它的值要大于之间的11个区块的时间戳。另外,
其他区块不接受2小时之后的时间戳。
|
5 |
4 |
nbits |
uint32 |
一个加密的困难值,区块的头哈希必须小于或者等于它的值。 |
6 |
4 |
nonce |
uint32 |
矿工产生的一个小于等于困难值的哈希。 |
一个区块链头的例子:
02000000 ……………………… Block version: 2
b6ff0b1b1680a2862a30ca44d346d9e8
910d334beb48ca0c0000000000000000 ... Hash of previous block's header
9d10aa52ee949386ca9385695f04ede2
70dda20810decd12bc9b048aaab31471 ... Merkle root
24d95a54 ........................... Unix time: 1415239972
30c31b18 ........................... Target: 0x1bc330 * 256**(0x18-3)
fe9f0864 ........................... Nonce
区块链版本:根据比特币的不同软分叉,形成了不同的版本,目前的版本分为1,2,3,和4.
默克尔树是由区块的TXIDS构成,其构成按照一定的一致性规则形成。形成的规则包括:创始快必须是第一个;一个输入可以消费一个输出。按照从小到上的规则形成默克尔树根。例如
区块链的结构分为区块头、压缩大小和原始交易信息。链创始者能够得到原始的区块奖励,最初50个比特币奖励,每四年减半。
区块链中的交易包括区块操作符、地址转换、交易格式、压缩签名和交易值。
参考文献:
https://bitcoin.org/en/developer-reference#opcodes
版权声明:本文为sunhaidong886原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。