精通比特币之区块.pdf

返回 相似 举报
精通比特币之区块.pdf_第1页
第1页 / 共2页
精通比特币之区块.pdf_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述:
谈谈区块链( 28)精通比特币之区块 区块( block)是组成区块链( blockchain)的基础。每个区块含有一个编号或称索引( index),从 0 开始。第一个区块(即 0 号区块)也称为创世区块( genesis block)。区块的编号也称为高度( height),第 0 号区块也被称为高度为 0 的区块。 每个区块由区块头部( block header)和交易信息两部分组成。 区块头部( block header) 区块头部由 80 个字节组成,含有版本号、前一个区块的 hash 值(计算区块hash 时只计算区块头部 hash)、默克尔根 hash、时间、目标值和随机值。每个区块头部都含有上一个区块的 hash 值,因而形成了环环相扣的区块链。 头部详细字段如下表 字节 名称 数据类型 描述 4 版本号 version Int32_t 当前区块的版本号。历史上的版本号信息如下 Version 1 创世区块开始 - Version 2 bitcoin core 0.7.0 - Version 3 bitcoin core 0.10.0 - Version 4 bitcoin core 0.11.2 - 32 前一个区块的 hash 值 prev_block_hash Char[32] 前一个区块的 hash 值,此值将区块形成环环相扣的区块链。 Hash 值算法 Block hash dSHA256block_header dSHA265SHA256SHA256 32 默克尔根 hashmerkle_root_hash Char[32] 该区块所包含所有交易的默克尔树的根 hash。 计算方法默克尔树计算规则(详见默克尔树章节) Hash 算法 dSHA256 4 时间 time Uint32_t 记录打包该交易的矿工 miner开始计算 hash值的时间 Unix 时间,又称 POSIX 时间)。该时间必须大于上一个区块的时间,并且不能超过当前时间 2个小时以上。 4 目标值 nBits Uint32_t 通过该目标值计算出当前 block hash 的目标阈值。 block hash 必须小于等于该目标阈值才被认为有效。 4 随机值 nonce Uint32_t 矿工们要去不断尝试的随机数(从 0、 1.不断尝试),以让当前区块的 hash 值符合 目标值的要求。如果所有可能已被穷举仍然不能满足要求,矿工们将修改时间以及调整所包含的交易(新的默克尔根值),并重新开始计算。 一个标准的区块头部例子( hex 打印) 02000000 . 版本号 2 b6ff0b1b1680a2862a30ca44d346d9e8 910d334beb48ca0c0000000000000000 . 前一区块的 hash 值 9d10aa52ee949386ca9385695f04ede2 70dda20810decd12bc9b048aaab31471 . 默尔克根 hash 24d95a54 . 时间 1415239972 30c31b18 . 目标值 0 x1bc330 *256**0 x18-3 fe9f0864 . 随机数 区块( block) 在当前的比特币协议中,区块的大小不能超过 1MB。一个区块中含有的信息如下 字节 名称 类型 描述 80 区块头 block header Block_header 区块头部 变长 交易数量 txn_count compatSize uint 当前区块的交易数量(包含 coinbase 交易) 变长 交易 txns Raw transaction 所有交易,一个一个按顺序排序(和默克尔根值的形成顺序一致,不可排乱),第一个交易总是coinbase 交易。 所有交易中的第一个交易称为 coinbase交易。 coinbase交易是一个特殊的交易,是矿工用来收集区块奖励和交易手续费的交易。 区块奖励 比特币协议对区块奖励做了如下设定初始时,每个区块奖励 50 个 BTC,每210,000 块后减半(约 4 年)。当区块高度达到 6,930,000(约 132 年)后,将取消区块奖励,届时矿工只能收取交易手续费。
展开阅读全文

最新标签

网站客服QQ:123120571
环境100文库手机站版权所有
经营许可证编号:京ICP备16041442号-6