温州网站建设方案服务,凡客诚品鞋子质量怎么样,做宠物网站还有前景嘛,搜索引擎大全排行榜大家好#xff0c;我是比特桃。本系列笔记只专注于探讨研究区块链技术原理#xff0c;不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划#xff0c;在“加快数字发展 建设数字中国”篇章中#xff0c;区块链被列为“十四五”七大数字经济重点产业之一#…大家好我是比特桃。本系列笔记只专注于探讨研究区块链技术原理不做其他违反相关规定的讨论。 区块链技术已被纳入国家十四五规划在“加快数字发展 建设数字中国”篇章中区块链被列为“十四五”七大数字经济重点产业之一迎来创新发展新机遇。 经科技部批复国家区块链技术创新中心落地北京中关村国家自主创新示范区并于2023年5月10日正式投入运行。 目录 区块链技术与应用 - 学习笔记1【引言】 区块链技术与应用 - 学习笔记2【密码学基础】 系列笔记更新中……更新完后将统一整合目录 本文主要阐述比特币的数据结构比特币主要通过哈希链表进行区块链的连接。而每个区块内的内容则通过默克尔树来组织达到高效组织记录的功能。
1. 哈希指针
比特币中的每个区块使用了哈希指针的链表组织每个区块中包含多条交易信息。传统的链表大家应该比较熟悉了它的前驱和后继均通过内存指针来指向。而哈希指针和普通指针略有不同哈希指针的结构如下图所示 每个区块所有数据会形成一个哈希值用来保障该区块的数据没有被篡改。并且每个区块除创世纪块都含有前一个区块的哈希值。而后一个区块在包含上个区块的哈希值的基础之上还要再进行一次哈希运算。所以就保障了只要你拿到最新一个区块的哈希值那么之前区块链上的所有数据都是没有被修改过的。
在实际应用中一整条链可能会被切断分开保存在多个地方。若用户仅仅具有其中一段当用到前面部分区块数据时直接问系统中其他节点要即可。当要到之后仅通过计算最后一个哈希值和自己保存哈希值是否一致就可以判断所给内容是否是区块链上真实的内容。
2. Merkle tree 默克尔树
Binary tree和二叉树的区别就是用哈希指针代表了普通的指针 区块链中的区块包含了轻节点和全节点。轻节点只有跟哈希值而全节点还有内容信息。这是因为全节点包含了所有交易信息一个区块就有1M大小。对于普通场景来说没必要存整个区块链上的账本所以只保存一个跟哈希值就可以了。普通节点只是拥有根哈希值的轻节点但当轻节点要验证该区块中的某一个交易数据是否合法。那就需要向全节点要 Merkle Proof即将上图红色绿色的哈希值传递给轻节点。轻节点拿到后就可以从底部开始对待验证的这个交易取哈希值看是否等于全节点发来的值。如果一样再加入红色算上一级依次计算。从而算出跟哈希值是一模一样的证明该次交易是合法的。
此外区块链所使用的链表是不会存在环的。因为它自身的内容包含了上一个区块的哈希值又因为下一个区块必须包含上一个区块的哈希值所以如果存在环则会出现循环依赖问题。