前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多链架构设计必读:平行链节点如何快速发现主链数据被篡改?

多链架构设计必读:平行链节点如何快速发现主链数据被篡改?

原创
作者头像
用户7358413
修改2020-07-02 09:56:40
4140
修改2020-07-02 09:56:40
举报

现有的主链-平行链共识机制中,平行链节点执行完平行链区块的交易后,将该平行链区块的执行结果发送给主链进行共识,平行链节点再同步主链的共识结果以完成平行链共识。

主链节点正常完成共识并生成了正确的共识结果,将正确的共识结果保存在数据库中,例如,小A与小B的初始余额为10,小A将5个通证转账给小B,交易完成后小A的最终余额为5,小B的最终余额为15。

但是,数据库容易被黑客攻击,假设黑客篡改数据库中的共识结果,将小A的最终余额更改为10,而平行链节点在不验证共识结果的情况下完成平行链共识,平行链节点将记录被篡改的共识结果,即平行链节点记录的信息为小A的最终余额为10,小B的最终余额为15。

平行链节点在若干区块高度后会发现共识结果被篡改,但在发现之前,若还有其他交易中用到了小A的余额信息,则相当于得到更多的错误结果,造成巨大的损失。

针对上述问题,chain33为平行链节点配置数据的验证机制,假设有如下应用场景,平行链节点根据平行链交易tx1(平)、tx2(平)生成平行链区块block(50),及根据block(50)的执行结果生成共识交易tx50,将tx50发送给主链节点;主链节点对tx50进行共识后,平行链节点同步主链节点上经共识的tx50。 具体的验证过程如下:

1、平行链节点从主链节点同步共识交易tx50,平行链节点执行同步到的共识交易生成执行结果m1。

2、平行链节点执行tx1(平)、tx2(平),生成执行结果m2。

3、平行链节点对比m1与m2。

3.1若m1与m2相同,则证明共识结果未被篡改。

3.2若m1与m2不同。

则证明有如下可能:

(1)共识结果被篡改

(2)平行链节点本身故障,本文仅讨论共识结果被篡改这一场景:当m1与m2不同时,共识结果被篡改,平行链节点向主链节点发送一条数据错误的交易,主链节点接收到该数据错误的交易时,判断m1与m2不同的原因是否主链造成。

chain33还为主链节点配置了数据回滚机制,当发现m1与m2不同的原因的确是主链造成时,对被黑客攻击的主链节点进行回滚操作。

chain33通过在平行链节点上配置数据的验证机制,在主链节点上数据回滚机制,使得平行链节点不盲目同步主链节点的数据,能够尽快的发现主链节点数据库被篡改,并能够很好的提示被篡改的主链节点尽快回滚数据,提高了共识结果的准确性,也提高了平行链节点的共识效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档