区块链中的基础数据结构

区块

这里写图片描述

区块/Block

区块是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和之前一个区块哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。

父块/Parent Block

父块是指区块的前一个区块,区块通过早去块头记录区块以及父块的哈希值来在时间上排序。

区块头

记录当前区块的元信息,包含当前版本号、上一区块的哈希值、时间戳、随机数、Merkle树根的哈希值等的数据。此外,区块体的数据记录通过Merkle树的哈希过程生成唯一的Merkle根记录于区块头。

区块体/Block Body

记录一定时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或者是其他信息。可以理解为账本的一种表现形式。

哈希值/散列值/Hash Values/Hash Code/Hash Sums/Hashes

哈希值通常用一个短的随机字母和数字组成的字符串来代表,是一组任意长度的输入信息通过哈希算法得到的“数据指纹”。此外,哈希值是一段数据唯一且极其紧凑的数值表示形式,如果通过哈希一段明文得到哈希值,哪怕只更改该段明文中的任意一个字母,随后得到的哈希值都将不同。

时间戳

时间戳从区块生成的那一刻起就存在于区块之中,是用于标识交易时间的字符序列,具备唯一性,时间戳用以记录并表明存在的、完整的、可验证的数据,是每一次交易记录的认证。

随机数/ 一次性的随机数/ Nonce

Nonce 是指“只使用一次的随机数”,在挖矿中是一种用于挖掘加密货币的自动生成的、毫无意义的随机数,在解决数学难题的问题中被使用一次之后,如果不能解决该难题则 该随机数就会被拒绝,而一个新的 Nonce 也会被测试出来并且直到问题解决,当问题 解决时矿工就会得到加密货币作为奖励。在区块结构中,Nonce 是基于工作量证明所设 计的随机数字,通过难度调整来增加或减少其计算时间;在信息安全中,Nonce 是一个 在加密通信只能使用一次的数字;在认证协议中,Nonce 是一个随机或伪随机数,以避免重放攻击。

区块容量

区块链的每个区块,都是用来承载某个时间段内的数据的,每个区块通过时间的先后顺序,使用密码学技术将其串联起来,形成一个完整的分布式数据库,区块容量代表了一个区块能容纳多少数据的能力。

未花费的交易输出/ Unspent Transaction Output/ UTXO

未花费的交易输出是一个包含交易数据和执行代码的数据结构,可以理解为收到的但尚未花费的加密货币清单。比特币和其他加密货币在其区块链技术中使用UTXO,以验证一个人是否拥有未使用的加密货币可用于支出。

梅克尔树

这里写图片描述
梅克尔树(又叫哈希树)是一种二叉树,是一种高效和安全的组织数据的方法,被用来快速查询验证特定交易是否存在,由一个根节点、一组中间节点和一组叶节点组成。它使用哈希算法将大量的书面信息转换成一串独立的字母或数字。最底层的叶节点包含存储数据或其哈希值,每个中间节点是它的两个子节点内容的哈希值,根节点也是由它的两个子节点内容的哈希值组成。

链式结构

链/Chain

链是由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态变化的日志记录。

链下/Off-Chain

区块链系统从功能角度讲,是一个价值交换网络,链下是指不存储于区块链上的数据。

无代币区块链/Token-Less Blockchain

即区块链并不通过代币进行价值交换,一般出现在不需要在节点之间转移价值并且仅在不同的已被信任方之间共享数据的情况下,如私有链。

创世区块/Genesis Block

区块链中的第一个区块被称为“创世”区块。创世区块一般用于初始化,不带有交易信息。

区块高度/Block Height

一个区块的高度是指在区块链中它和创世区块之间的块数。

分叉/Fork

在区块链中,由矿工挖出区块并将其链接到主链上,一般来讲同一时间内只产生一个区块,如果发生同一时间内有两个区块同时被生成的情况,就会在全网中出现两个长度相同、区块里的交易信息相同但矿工签名不同或者交易排序不同的区块链,这样的情况叫做分叉。

软分叉/Soft Fork

指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布 后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。

幽灵协议/Ghost Protocol

通过幽灵协议,区块可以包含不只是他们父块的哈希值,也包含其父块的父块的其他子块(被称为叔块)的陈腐区块的哈希值,这确保了陈腐区块仍然有助于区块链的安全性,并能够获得一定比例的区块奖励,减少了大型矿工在区块链上的中心化倾向问题。

孤块/Orphan Block

孤块是一个被遗弃的数据块。因为很多节点都在维护区块链并同时创建多个区块,但是一次只能有一个被继续继承,而其它被遗弃的数据块就是孤块。

陈腐区块/Stale Block

是父块的父块的“其他”子块,或更一般的说是祖先的其他子块,但不是自己的祖先,如果A是B的一个叔块,那B是A的一个侄块。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值