区块数据的相关定义主要包括区块、父块、区块头、区块体、哈希值/散列值、时间戳、随机数、梅克尔树、区块容量、未花费的交易输出。
1.区块
区块是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和之前一个区块的哈希值数据结构,用网络的共识机制来验证并确认区块中的交易。
2.父块
父块是指区块的前一个区块。区块链通过在区块头记录区块及父块的哈希值来进行时间上的排序。
3.区块头
区块头记录当前区块的元信息,包括当前版本号、上一区块的哈希值、时间戳、随机数、Merkle Root的哈希值等。此外,区块体的数据记录还会通过梅克尔树的哈希过程生成唯一的Merkle Root,记录在区块头。
4.区块体
区块体记录一定时间内生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或其他信息,是账本的一种表现形式。
5.哈希值
哈希值也叫散列值,通常用一个短的随机字母和数字组成的字符串来代表,是一组任意长度的输入信息使用哈希算法得到的“数据指纹”。计算机的底层机器码采用的是二进制模式,通过哈希算法得到的任意长度的二进制值映射为较短的固定长度的二进制值,即哈希值。它是一段数据唯一、异常紧凑的数值表示形式,通过哈希一段明文得到哈希值,即使仅更改该段明文中的任意一个字母,得到的哈希值也是不同的。
6.时间戳
时间戳从区块生成的那一刻起就存在于区块中,是用于标识交易时间的字符序列,具备唯一性;时间戳是用来记录并表明存在的、完整的、可验证的数据,是每次交易记录的认证。
7.随机数
在挖矿中,有一种用于挖掘加密货币的、自动生成的、毫无意义的随机数,在解决数学难题的过程中,一旦被使用一次,如果无法解决该难题,该随机数就会被拒绝;而一个新的随机数也会被测试出来,直到问题解决;当问题解决时,矿工就会得到一定的加密货币作为奖励。在区块结构中,随机数是基于工作量证明而设计的随机数字,通过难度调整来增加或减少其计算时间;在信息安全中,随机数是在加密通信中只能使用一次的数字;在认证协议中,随机数是一个随机或伪随机数,可以有效避免重放攻击。
8.梅克尔树
梅克尔树,又叫哈希树,是一种二叉树,也是一种高效、安全的组织数据方法,可以用来快速查询验证特定交易是否存在,由一个根节点、一组中间节点和一组叶节点组成。其使用哈希算法将大量的书面信息转换成一串独立的字母或数字,底层的叶节点包括存储数据或其哈希值,各中间节点都是其两个子节点内容的哈希值,根节点也由它的两个子节点内容的哈希值组成。
9.区块容量
区块容量就是承载区块数据的数量,代表了一个区块能容纳多少数据的能力。区块链的每个区块都是用来承载某个时间段内的数据的,各区块通过时间的先后顺序,使用密码学技术将其串联起来,形成一个完整的分布式数据库。
10.未花费的交易输出
这是一个包括交易数据和执行代码在内的数据结构,是收到的但尚未花费的加密货币清单。比特币和其他加密货币在其区块链技术中使用UTXO,可以验证一个人是否拥有未使用的加密货币。