2021 年 8 月 10 日晚,跨链项目 Poly Network 遭遇黑客攻击。在其连接的 3 个跨链网络(以太坊、BSC、Polygon)上,共计约有 6.1 亿美金的资产被盗。

奚海峰领导的边界智能跨链技术团队通过分析跨链管理合约代码发现,和以往单链(如以太坊等)智能合约安全事件不尽相同,这次黑客攻击是利用了跨链协议的合约实现本身存在的漏洞

从跨链的角度来看,此次安全事件的逻辑在于:

  • 黑客构造一个合法的跨链合约调用交易,调用远端链的跨链管理子合约的方法
  • https://github.com/polynetwork/eth-contracts/blob/d16252b2b857eecf8e558bd3e1f3bb14cff30e9b/contracts/core/cross_chain_manager/logic/EthCrossChainManager.sol#L183
  • 这个调用篡改了远端链的 Poly Network 轻客户端的共识状态,即验证人公钥集
  • https://github.com/polynetwork/eth-contracts/blob/d16252b2b857eecf8e558bd3e1f3bb14cff30e9b/contracts/core/cross_chain_manager/data/EthCrossChainData.sol#L45
  • 黑客就此劫持了远端链和 Poly Network 之间的可信连接,可以随意构造以远端链为目标链的跨链交易(如跨链协议应用层的资产解锁等)

综上,尽管跨链之「盾」——轻客户端验证仍然如预期在工作,但黑客通过调用存在漏洞的跨链合约修改了验证的基础(即验证人公钥)。这个智能合约上的漏洞也实际上成为了整个链条上的最薄弱环节,导致了跨链整体性的安全问题。

因此,在跨链合约开发时,边界智能建议应特别注意跨链合约交互的安全性,发布在各个参与链上的跨链管理合约对于收到的跨链请求要进行检查,不允许该跨链请求调用目标链上的跨链管理合约或其子合约。

边界智能官网:
  • https://www.bianjie.ai/
  • IRITA 官网:
  • https://irita.bianjie.ai/
  • 加入 IRITA 技术社区:
  • https://github.com/bianjieai/irita