区块链技术与应用【肖臻老师】笔记整理之------03-BTC-数据结构

注:没有全部复原,抽取了主体知识,加入了一些自己的理解,强烈建议去学习肖臻老师的课程,
这绝对算得上是国内区块链讲解的*教程,纯学术和技术

Blockchain is a linked list using hash pointers.区块链就是一个使用哈希指针链表

哈希指针

理解一下哈希指针和普通指针的区别
指针我们都知道是指向存储数据的位置。
哈希指针,就是一个指向数据存储位置,以及该存储位置里面的数据的哈希值的指针,区别就在于多了一个数据的哈希值存储,

一个普通的指针可以告诉你数据存储的位置,而哈希指针不但可以告诉你数据存储的位置,还可以让你验证数据没有被篡改过[哈希函数的特性]
区块链技术与应用【肖臻老师】笔记整理之------03-BTC-数据结构
如上图,一个哈希指针包含了一段数据的位置和这段数据原始的哈希值
这样,区块整体形成一个链接,像洋葱一样,想要改某一层必须将其他层剥离。

Merkle Tree(默克尔树)

Merkle Tree本质是一颗二叉树,它没有搜索树,排序树等多余特性,就是将各个区块的Hash值进行一层一层的存储,最后到达顶层是一个root hash,根哈希。
Block header里面存储了root header
一个区块里所有的交易组成的Merkle Tree最后生成的root hash存在block header
Block header里面没有交易的具体内容,只有一个根哈希值
Block body里面是有交易的列表的
Merkle Tree的用途:

提供Mekle Proof;如果某一个交易出现问题或者轻节点有什么疑问,全节点不需要去遍历整棵树,而是沿着路径一点点排查就可以自上而下找到出问题的Hash值进而定位出有问题的区块。

上一篇:【观点】比特币在几分钟内暴跌3%:这是否意味着集会已经完成?


下一篇:OKLink链上周报:DeFi延续火热,以太坊矿工收益超过比特币