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

来源:互联网 发布:sql存储过程返回值 编辑:程序博客网 时间:2024/04/29 15:44
区块链包括区块链头、序列化区块链、交易、钱包和P2P网络。区块链头包括版本号、前一区块链头哈希、默克尔树根节点、时间戳、区块复杂度、工作量值。其具体的关系如下表所示:
序号  位数 名称 数据类型 描述 1 4 版本号 int32 区块链版本号用于确定区块集的验证规则; 2 32 前一区块头的哈希值 char一个SHA256的哈希值,这保证迁移区块不能保证 332  默克尔树根哈希 char 一个SHA256哈希值。默克尔树是由此区块的所有交易生成。其确保交易的不可变动性。 4 4 时间戳 uint32
 时间戳是一个Unix时间,它记录矿工开始挖矿的时间。它的值要大于之间的11个区块的时间戳。另外,
其他区块不接受2小时之后的时间戳。
 5 4 nbits uint32 一个加密的困难值,区块的头哈希必须小于或者等于它的值。 6 4 nonce uint32 矿工产生的一个小于等于困难值的哈希。
一个区块链头的例子:
 02000000 ........................... Block version: 2
b6ff0b1b1680a2862a30ca44d346d9e8910d334beb48ca0c0000000000000000 ... Hash of previous block's header9d10aa52ee949386ca9385695f04ede270dda20810decd12bc9b048aaab31471 ... Merkle root24d95a54 ........................... Unix time: 141523997230c31b18 ........................... Target: 0x1bc330 * 256**(0x18-3)fe9f0864 ........................... Nonce
区块链版本:根据比特币的不同软分叉,形成了不同的版本,目前的版本分为1,2,3,和4.
默克尔树是由区块的TXIDS构成,其构成按照一定的一致性规则形成。形成的规则包括:创始快必须是第一个;一个输入可以消费一个输出。按照从小到上的规则形成默克尔树根。例如Example Merkle Tree Construction
区块链的结构分为区块头、压缩大小和原始交易信息。链创始者能够得到原始的区块奖励,最初50个比特币奖励,每四年减半。
区块链中的交易包括区块操作符、地址转换、交易格式、压缩签名和交易值。
参考文献:
https://bitcoin.org/en/developer-reference#opcodes