区块链技术学习笔记(2)-数据结构

区块链通过哈希指针确保数据完整性,篡改任一区块会导致后续区块哈希改变。全节点存储所有交易信息,轻节点仅存储块头,使用Merkleproof验证交易。Merkletree能高效检测数据修改并提供交易验证路径,Merkleproof通过父节点哈希验证特定交易的存在,时间复杂度为Ω(log(n))。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.指针和哈希指针

区块链与普通的链表的区别:哈希指针代替了普通指针,每个区块都包含了指向前一个区块的哈希指针(最后一个区块的哈希保存在系统里)

因为这个性质,在区块链中,如果某一区块的数据被篡改,那么之后所有的区块哈希指针都会改变。所以只需要检查最后一个区块的哈希值就能完成对整个区块的检查

比特币分为:

全节点:保存所有区块的内容(块头、块身、交易的具体信息)

轻节点:只保存块头(如果向轻节点证明某个交易被写入到区块链中,使用Merkle proof)

2.Merkle tree

 

每个数据块代表一笔交易,区块分为块头和块身。这个区块头中,有根哈希值,这个区块所包含的所有交易组成的Merkle tree,都包含在区块头中,交易的具体内容都在块身

Merkle tree优点:

        1.只要记住根哈希值,就能检测出对树中任何部位的修改。

        2.提供Merkle proof(找到该交易,顺着父节点往上直到找到根节点,其路径就为Merkle proof)

3.Merkle proof:

如果轻节点需要证明Merkle tree中某个数据节点记录的一笔交易被写入区块链中,需要将向上所有父节点中的另一个哈希值(黄色),通过请求到的哈希值与本地哈希值结合,依次从底自上计算该父节点哈希值(绿色),算出根哈希值比较验证。时间复杂度Ω(log(n))

如果对交易内容哈希值进行排序,将要查的交易算出哈希,再求这笔交易是否在块中。也能够完成验证。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值