区块链的基础数据结构

简介: 区块链的基础数据结构

我们应该都对普通链表比较熟悉。链表中有许多个节点,节点之间通过指针保持连接。


指针指的是一个节点对象在内存中的首地址

image.png

顾名思义,区块链也是一种链表结构,不过它与普通链表不同的地方在于,连接节点的指针是哈希指针,哈希指针包含两个部分,一是其指向节点所占用内存的首地址,二是其指向节点所有内容的哈希值

image.png

如果其指向的节点内容发生了任何变化,那么哈希指针的哈希值也会发生变化。这样,我们就可以轻松感知到节点中的内容是否被修改。


可以用下图表达一个区块链

image.png

如图所示,哈希指针中的哈希值,是对应节点的全部内容算出来的哈希值。这里的全部内容自然也包括指向下一个节点的哈希指针,因此,当其中一个节点内容发生变化时,会导致上一个节点的哈希指针发生变化,也就意味着,上一个节点内容也发生了变化。


这样的影响是持续不断的,直到根节点。

image.png

任何节点的变化,最终都会导致根节点的哈希指针发生变化。因此,我们只需要在系统中记录根节点的变化,就可以感知并找到具体是哪一个节点发生了变化。


我们可以分析出这样的链表结构的一些特性。


任何一次变动都会牵一发而动全身,因此效率是非常低下的。但是他能够准确的记录每一次改动。因此这样的结构对于需要记录变动和防止篡改的场景非常有用


也正是由于这个特性,我们只需要在每个节点上保存好根节点的哈希值到底是多少,那么对于个人节点而言,就不需要完整的保存链上的所有的节点内容,只需要保存常用的附近几千个节点即可。


接下来一章,我们进一步介绍基于这种数据结构,如何做到分布式,以及会面临什么样的问题

相关文章
|
3月前
|
搜索推荐 算法 测试技术
数据结构:一篇拿捏十大排序(超详细版)
数据结构:一篇拿捏十大排序(超详细版)
41 0
|
3月前
|
算法 程序员 C语言
速学数据结构 | (超级干货)业界程序员公认的实现栈最简单的方法!太简单了
速学数据结构 | (超级干货)业界程序员公认的实现栈最简单的方法!太简单了
31 0
|
安全 区块链
图解区块链:14张图看懂什么是“区块链技术”?
图解区块链:14张图看懂什么是“区块链技术”?
1908 0
图解区块链:14张图看懂什么是“区块链技术”?
|
存储 缓存 算法
夯实基础,常见的数据结构
数据结构内容很多,早在 1968 年就被作为一门独立的课程在大学中设立。我们引入数据结构的基本介绍,不求面面俱到,旦求要点尽有,可作初学构建印象、或温习梳理体系的用处。
|
存储 人工智能 搜索推荐
数据结构与——八大经典排序算法详解
📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段和数据结构阶段>——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程,会持续分享学习成果和小项目的 📖作者主页:热爱编程的小K 📖专栏链接:数据结构 🎉欢迎各位→点赞👏 + 收藏💞 + 留言🔔​ 💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🐾 ———————————————— 版权声明:本文为CSDN博主「热爱编程的小K」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_
|
存储 算法
攻克数据结构和算法——第四天:字典
字典有顺序存储,链式存储和散列表示三种存储方式,其中,链式存储又有跳跃链表和树形结构两种方式存储。
79 0
攻克数据结构和算法——第四天:字典
|
存储 区块链
区块链技术中的数据结构
比特币中的数据结构
86 0
|
存储 算法 物联网
用Python实现区块链
用Python实现区块链
424 0
用Python实现区块链
|
算法
409王道数据结构强化——算法题(二)
409王道数据结构强化——算法题
103 1
409王道数据结构强化——算法题(二)
|
算法
408王道数据结构强化——算法题(一)
408王道数据结构强化——算法题
326 1
408王道数据结构强化——算法题(一)