BNB CrossChain Bridge被黑简要分析

共 1358字,需浏览 3分钟

 ·

2023-05-20 17:35

2022年10月7日BNB Chain跨链桥BSC Token Hub 遭遇攻击。攻击者利用跨链桥合约漏洞分两次铸造了200多玩枚BNB,合计超过5.7亿美元。(BSC token hub是BNB信标链(BEP2)和BNB链(BEP20 或 BSC)之间的跨链桥)。

19b089b36a21593a23eff8bc2d435b48.webp

简单分析:

1.首先在BNB Chain与BSC跨链的过程中,会先由BSC上部署的跨链合约调用预编译的0x65合约对提交的appHash、key、value、proof进行IVAL树验证。
2.验证主要是由IAVLValueOp与MultiStoreProofOp的两个op进行,IAVLValueOp会先通过ComputeRootHash计算roothash并进行验证。验证通过后将输出的roothash给到MultiStoreProofOp,MultiStoreProofOp将检测获得的roothash是否和lightClient获得的一致。

32ac8a6422d086ea41e9287e31777631.webp

b305e0e42edbe4e841996a1908df8fd1.webp

3.ComputeRootHash将通过leaf hash与rest path(innernode)进行递归hash并检查是否与last path node的right一致。

48ededa8b7b444096a6341df4b725d10.webp

4.在leafnode与innernode的hash计算中可以看到left为空时将计算leaf与right的hash,当right为空时将计算leaf与left的hash。但当left与right都存在的情况下,那么将忽略right,计算leaf与left的hash,roothash将不会受到right影响。

5cce38adcf9c26387f3c62b0919333fb.webp

因此我们可以知道在path中,当left与right都存在的情况下忽略right,返回leaf与left的hash,在递归hash检查中则会检查此hash与last path node的right是否一致。这就出现了在递归检查中检查了right,而在roothash计算中却忽略了right的情况。导致攻击者可以在path中加入一个leaf与innernode的hash作为last path node的right并添加了一个空的innernode确保可验证。使得在保持roothash不受影响的情况下插入恶意数据从而盗取资金。
说说自己想说的

这次攻击事件黑客地址曾与多个DAPP交互,比如Multichain、Venus Protocol等。在攻击发生之后,BNB官方关停,黑客在BSC上超4.1亿美元并没有转移。在Defi的概念里,去中心化金融按道理来说是不能由人为操控的,合约开源。而BNB官方却在发生黑客事件时却能私自关停。由此可见,BNB本质还是Cefi。(猜测:况且这么大的金额,人见了难免不眼红,由官方操控着,这次黑客事件或许……)


(F****BNB)

浏览 70
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报