区块链原理学习-区块链结构

区块链包括区块链头、序列化区块链、交易、钱包和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
阅读更多

更多精彩内容