由于微信限制了第三方应用的跳转,请使用以下方法。
1. 点击右上角的
2. 选择在浏览器中打开
现有的主链-平行链共识机制中,平行链节点执行完平行链区块的交易后,将该平行链区块链的执行结果发送给主链进行共识,平行链节点再同步主链的共识结果以完成平行链共识。
主链节点正常完成共识并生成了正确的共识结果,将正确的共识结果保存在数据库中,例如,小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通过在平行链节点上配置数据的验证机制,在主链节点上数据回滚机制,使得平行链节点不盲目同步主链节点的数据,能够尽快的发现主链节点数据库被篡改,并能够很好的提示被篡改的主链节点尽快回滚数据,提高了共识结果的准确性,也提高了平行链节点的共识效率。
来源:
发布人:火讯用户3938
声明:该文观点仅代表作者本人,不代表火讯财经立场。火讯财经系信息发布平台,仅提供信息存储空间服务。
如文章涉及侵权, 请及时致函告之,本站将第⼀时间删除⽂章。邮箱:840034348@qq.com