BNB CrossChain Bridge被黑简要分析
2022年10月7日BNB Chain跨链桥BSC Token Hub 遭遇攻击。攻击者利用跨链桥合约漏洞分两次铸造了200多玩枚BNB,合计超过5.7亿美元。(BSC token hub是BNB信标链(BEP2)和BNB链(BEP20 或 BSC)之间的跨链桥)。
2.验证主要是由IAVLValueOp与MultiStoreProofOp的两个op进行,IAVLValueOp会先通过ComputeRootHash计算roothash并进行验证。验证通过后将输出的roothash给到MultiStoreProofOp,MultiStoreProofOp将检测获得的roothash是否和lightClient获得的一致。
说说自己想说的
简单分析:
1.首先在BNB Chain与BSC跨链的过程中,会先由BSC上部署的跨链合约调用预编译的0x65合约对提交的appHash、key、value、proof进行IVAL树验证。2.验证主要是由IAVLValueOp与MultiStoreProofOp的两个op进行,IAVLValueOp会先通过ComputeRootHash计算roothash并进行验证。验证通过后将输出的roothash给到MultiStoreProofOp,MultiStoreProofOp将检测获得的roothash是否和lightClient获得的一致。
3.ComputeRootHash将通过leaf hash与rest path(innernode)进行递归hash并检查是否与last path node的right一致。
4.在leafnode与innernode的hash计算中可以看到left为空时将计算leaf与right的hash,当right为空时将计算leaf与left的hash。但当left与right都存在的情况下,那么将忽略right,计算leaf与left的hash,roothash将不会受到right影响。
因此我们可以知道在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)
评论