InterValue使用Merkle tree来验证区块是否被篡改

InterValue团队在开发快速同步功能时,采用Merkle Tree来验证共识节点的区块数据。通过Merkle Tree,节点可以快速发现并重新下载有问题的区块,提高同步效率。文章介绍了Merkle Tree的实现及在InterValue中的应用,包括NodeContent、FamedRootHash、MerklePath和CalculatedRootHash等关键概念,并提供了验证区块的伪码流程。
摘要由CSDN通过智能技术生成

1.梅克尔树 / Merkle Tree

通常来讲,首先我们对数据块进行hash化(例如:使用sha256就会使不同大小的块变为256定长),而后对相邻的两个hash结果进行拼接,再进行hash,这样操作直到只有一个顶层hash。当然,有一种特殊情况:如果数据块数量为奇数(如果图上还有L5的话),就可以增加一个L5来进行计算(图上就变为L1,L2,L3,L4,L5,L5进行配对)。

Merkle Tree现有的理论比较成熟,机制原理也较容易理解。问题在于它的应用场景的细节没有相关说明。另外由Java语言实现的,成熟的商业开源方案还处于凤毛麟角的状况。

2.业务需求

最近,InterValue研发团队在开发一个快速同步功能(fast sync),需要把共识节点的海量区块快速同步到新加入的节点,这里面有一个关键的任务是:需要同步区块的节点能主动发现其中有问题的区块,发现后只需要重新下载有问题的区块(例如,如果有100个区块共同下载到同步节点,其中2个块有问题,只需要重新下载有问题的2个块,不需要全部重新下载,提高下载效率),并且下载的区块验证数据大小不能呈指数级上升。

3.InterValue用Java语言实现标准的Merkle Tree

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值