哈希指针链的探讨

哈希指针是一类数据结构,除了包含通常的指针外,还包含一些数据信息以及与这些信息相关的密码哈希值,这就使得正常的指针可用于取回信息,哈希指针用于验证信息是否发生改变。

区块链就可以看作一类使用哈希指针的链表。这个链表链接一系列的区块,每个区块包含数据以及指向表中前一个区块的指针。区块链中,前一个区块指针由哈希指针所替换,因此每个区块不仅仅告诉前一个区块的位置,也提供一个哈希值去验证这个区块所包含的数据是否发生改变。

我们可以使用区块链去构造一个防篡改的日志系统。在这个系统中,基于区块链的日志节点链表被用来存储数据,链表节点通过哈希指针链接,新节点追加在日志链表的尾部。同时,日志链表的头哈希指针所指向的头节点内容不可改变。若日志链表中的某个节点的数据被篡改,则系统能够检测出来。

不妨假定攻击者改变了节点k的数据,由于其后继节点k+1存储了节点k的哈希值,由于密码哈希函数的抗碰撞性,通过简单地计算节点k的数据的哈希值,就能发现计算出的值与节点k+1的哈希指针值不一致,于是可以断定节点k或节点k+1的信息被篡改。当然,攻击者可能能够连续改变前一个节点的哈希值来掩盖不同,但这个策略在处理日志链表的头节点时将会失败。特别地,一旦我们将链表头部的哈希指针存储在不能改变的地方,攻击者将不能改变任何节点而不被发觉。

因此,若攻击者想在日志链表中的任意位置改变数据,为保持一致性,他必须向表头方向修改所有的哈希指针,最终由于不能改变链表头部而失败。因此,只需单个哈希指针,基本上就能保证整个链表的哈希值的一致性,从而达到防篡改的目的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值