首页 > 解决方案 > 如何在区块链和超级账本结构中检测到区块链或世界状态中的数据篡改(已添加区块的数据)?

问题描述

我是区块链技术的新手。关于区块链的防篡改机制,我有几个问题。

1)我的理解:我知道[哈希上一个块+当前块的内容]的哈希将作为下一个块的哈希。如果我们篡改一个块的内容,哈希将改变,并且到下一个块的链接将被破坏。

我的问题:如果嫌疑人在添加块后很长时间更改了块的内容,哈希的计算和将哈希放入下一个块中会自动发生吗?假设如果有人已经非法更改了内容并且链接已断开,是否有自动机制触发链接已断开的事件?被篡改的区块链副本什么时候会被识别并失效?

2)我的理解:在超级账本结构中,我理解账本 = 区块链 + 世界状态。世界状态是基于区块链计算的。应用程序将依赖于世界状态值,应用程序不会遍历区块链来查找值。

我的问题是:i)重新计算世界状态的频率如何?

ii) 在重新计算世界状态时是否会检测到断链(如果被篡改)

iii) 如果嫌疑人篡改了对等体的世界状态怎么办。这种情况如何设置正确?在共识或任何其他活动期间是否会检测到篡改?

我阅读并了解区块链是防篡改的,但真的想了解哪些流程可以保护 BC 吗?

标签: hyperledger-fabrichyperledgerblockchain

解决方案


想象一个区块链世界,其中链有1000 blocks100 nodes

现在node x蛋彩画block 950和改变它的hash。结果是所有连续块的hash变化。所以node x现在有了一个chain不同于其他的版本99 nodes。由于大多数节点仍然具有相同的节点,chain因此将确定node x有故障chain,并且node x在创建新块时不会考虑该决定。这就是区块链如何成为防篡改的方式。

现在让我们考虑一个边缘情况。在 100 个节点中,有 51 个节点带有block 950并更改其hash. 现在这些51 nodes有一个错误chain但相同的chain. 结果,这chain将占上风,实际chain将被丢弃。这被称为51% attack.


推荐阅读