BTC数据结构

BTC数据结构
哈希指针:
在这个数据结构里有一个重要的概念就是哈希指针,哈希指针不同于普通的指针哈希指针不仅要存储结构体的地址还要存储结构体的哈希值,一般用H()表示这样做的好处是可以检测这个结构体的数据有没有被篡改因为保存的哈希值,比特币中的一个最基本的数据机构就是区块链,而区块链是什么简单来说就是一个一个的区块组成的链表,那么区块链与普通的链表有什么区别呢?一个区别就是哈希指针代替了普通的指针(Block chain is a linked list using hash pointers)(区块链是一个使用哈希指针的链表)

注意这个哈希是怎么算出来的呢?比如说从这个黄色的区块开始算后面的哈希,是把黄色的哈希指针的数值和这个区块的数值和在一起所算出下一个区块的数值以此类推
通过这样的数据机构可以实现tamper-erident log,打个比方如果有人篡改了黄色区块的数据会导致篡改这个区块后面的区块都要跟着改,所以这中的数据机构的好处是我只要记住最后系统保存的哈希值就可以检测出前面的有没有被改动,这个是区块链和普通的链表的区别,有这个性质后比特币中的有些节点就不一定要全部的区块链了,可以只保存最近的几千个区块,如果要用以前的节点怎么办呢?可以去问系统中的其它节点要这个区块有些节点是有恶意的(这是一个去中心化的系统),那你怎么知道别人给的这个区块有没有恶意呢?这就用到哈希指针的性质假如我只保存了红色的区块,那我要怎么知道别人给的这个棕色的区块有没有被篡改呢?其实很简单只要算一个这个棕色区块的所有数据是不是和我红色区块的哈希指针是不是一致的就行了。
比特币中另外一个数据结构是Merkle Tree(默克尔树)使用了哈希指针代替了普通指针,比特币当中各个区块用哈希指针连接在一起,每个区块所包含的交易是组织成一个Merkle Tree(默克尔树)的形式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值