被黑 6.1 亿美金的 Poly Network 事件分析与疑难问答

Poly Network 攻击核心

1、源链未对发起的跨链操作的数据进行检查。

2、目标链未对解析出的目标调用合约以及调用参数进行检查。

3、EthCrossChainData 合约的 owner 为 EthCrossChainManager。

4、 bytes4(keccak256(abi.encodePacked(_method, "(bytes,bytes,uint64)")))

可以被 hash 碰撞。

Basic Channel 安全问题

Darwinia outbound channel

submit(address target, bytes4 sig, bytes calldata)

Ethereum light client

  1. 通过轻客户端预提交的 commitment.
  2. 通过额外的Oracle系统确认 commitment 以确保消息的可靠性.

TODO