1、概述
区块链由一个个的区块链接起来,形成一个单向链。每个区块保留了上一个区块的hash值(hash值可以理解为区块的唯一标志),这样区块就形成了一条单向链。
每个区块内部由区块头、区块体两部分组成。区块链是单向链,子区块会记录服区块的hash值,父区块不记录子区块的hash值。
原因是先有的父区块,父区块添加到链上之后,内容就不能再更改了,这时候才创建的子区块,此时无法再对父区块的内容进行更改。
2、区块头
我们看一个实际的区块头的例子,访问地址为:https://www.blockchain.com/btc/block/607016
我们按照属性的重要程度,来介绍一下各个属性的含义:
序号 | 属性名称 | 属性描述 |
---|---|---|
1 | hash | 摘要值,该区块的唯一标识,是对区块中所有内容进行摘要得到的。 |
2 | PrevHash | 上一区块的摘要值。图中没有体现,但是肯定是存在的。 |
3 | Nonce | 随机数,区块链工作量证明的目标是要生成一个满足指定条件的hash,区块中的内容是固定的,为了能生成不同的hash值,引入了Nonce。拿到了正确的Nonce,就能获取到满足条件的hash。该hash值即是属性1。 |
4 | Difficulty | 难度值,该值会对目标值造成影响。难度值越大,目标值越小。 |
5 | Bits | 目标值,生成的hash值需要小于该值 |
6 | Timestamp | 时间戳,区块的创建时间。 |
7 | Merkle root | 默克尔树根的hash值,是该区块所有交易信息的hash值。 |
8 | Version | 版本号。 |
9 | Confirmations | 确认次数,等价于该区块之后的区块数量。 |
10 | Height | 高度值,从创世区块开始(高度为0),每增加一个区块,高度加1。但是如果有分支的话,该值会出现重复值。 |
11 | Miner | 矿工,记录该区块的节点 |
12 | Number of Transactions | 交易的数量 |
13 | Transaction Volume | 交易总金额 |
14 | Block Reward | 矿工奖励,币基交易 |
15 | Fee Reward | 手续费,也属于对矿工的奖励 |
16 | Weight | 是隔离见证(Segregated Witness)技术激活之后用来计算区块大小的方式,详细情况后面专门开个章节介绍。 |
17 | Size | 区块总大小 |
3、区块体
区块的例子:https://www.blockchain.com/btc/tx/b7b30d704295bf9c0c5c0beee6bfda6044a02cf8b584d534deafcd3b84534d57
序号 | 属性名称 | 属性描述 |
---|---|---|
1 | hash | 摘要值,该交易的唯一标识,是对交易中所有内容进行摘要得到的。 |
2 | inputs.address | 付款方的地址,就是支付人。 |
3 | inputs.value | 付款方支付的金额。 |
4 | inputs.index | 交易的下标从0开始。 |
5 | inputs.pkscript | 加锁脚本,该脚本在交易验证过程中起到决定性作用。 |
6 | inputs.Sigscript | 解锁脚本,该脚本在交易验证过程中起到决定性作用。 |
7 | inputs.witness | 证人,不知道做什么用的? |
8 | outputs.address | 收款方的地址,就是收款人。 |
9 | outputs.value | 收款方收到的金额。 |
10 | outputs.index | 交易的下标从0开始。 |
11 | outputs.pkscript | 加锁脚本,该脚本在交易验证过程中起到决定性作用。 |
12 | Status | 状态,不知道流转图是什么? |
13 | Received Time | 交易广播到网络的时间 |
14 | Size | 交易数据的大小 |
15 | Weight | 是隔离见证(Segregated Witness)技术激活之后用来计算交易大小的方式,详细情况后面专门开个章节介绍。 |
16 | Included in Block | 交易所属的区块 |
17 | Confirmations | 确定的次数,需要明确是什么次数,区块还是交易? |
18 | Total Input | 总支付金额 |
19 | Total Output | 总收取金额 |
20 | fee | 手续费=Total Input-Total Output |
21 | Fee per byte | =fee/size |
22 | Fee per weight unit | =fee/weight |
23 | Value when transacted | 比特币转换为美元的价格 |
4、参考资料
解密比特币的那些核心技术原理
理解与计算比特币难度值Difficulty
下章介绍如何抢夺区块记账权。
来源:CSDN
作者:丨知耻而后勇丨
链接:https://blog.csdn.net/u013252773/article/details/103845465