织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

Poly Network被盗事件对于主打跨链的波卡来说,有什么借鉴的地方?(3)

时间:2021-08-24 20:43来源:未知 作者:admin 点击:
无论求财还是求名,毫无疑问,这名黑客做到了,这件惊天大案会被区块链历史载入史册。然而这是否代表了跨链相关协议的不可靠,笔者认为,在任何类

  无论求财还是求名,毫无疑问,这名黑客做到了,这件惊天大案会被区块链历史载入史册。然而这是否代表了跨链相关协议的不可靠,笔者认为,在任何类型的早期项目发展中,无可避免的会出现一些瑕疵。作为开拓者的他们需要摸着石头过河,而这个过程中磕磕碰碰在所难免,我们不能因为一时的挫折而完全不信任跨链相关协议,因噎废食。总的来说,作为异构跨链领域,首先解决了各区块链间算法和底层架构差异大、跨链信息交互执行速度低、信息不安全等技术难点的Poly Network依旧有其价值所在。

  那么究竟为何会出现这样的问题,并且及时有效的修改和避免它成为了大家最关注的话题。黑客究竟是如何做到的?目前在全网流传着一个形象的比喻,“黑客拿着房主证明找物业拿钥匙,证明是假的,却从物业那里拿到了真的钥匙”。

  那么让我们来简单的进行进一步的剖析。

  2、黑客手法及事件总结

  要想理解黑客的手法,我们需要先看一看Poly Network的架构。Poly Network的架构分为SRC chain(源链)、Poly chain、DST chain(目标链)三个部分,简单的讲,就是源链发起的跨链交易确认后,RelayerA将区块头信息同步至Poly chain,之后Poly chain将区块链信息同步至目标链RelayerB,目标链RelayerB将验证信息转移到目标链进行验证并执行交易。

  在这样的架构中,Relayer的作用非常的重要。而黑客抓住了智能合约中的漏洞,将EthCrossChainData合约的keeper通过EthCrossChainManager合约进行修改,继而通过EthCrossChainManager合约的verifyHeaderAndExecuteTx函数经由_executeCrossChainTx函数盗取资金。

  简单的说就是,黑客在源链上初始化的未被充分检查的的攻击交易被RelayerA纳入了Merkle tree并进行了签名,黑客利用有效的Merkle证明,再利用RelayerB将keeper改成了黑客控制的公钥,继而盗取了资金。

  究其缘由在于,RelayerB的Merkle证明并没有对验证其所收到的信息是否被破坏和修改。而任意用户都可以调用verifyHeaderAndExecuteTx函数进行交易的执行,并且在其内部进行call调用时可以调用用户名。同时EthCrossChainManager合约中对Keeper的修改权限,使得黑客能够通过数据异常调用修改keeper,并对交易进行签名。毫无疑问这是合约权限管理逻辑中的问题。

  而这也为Poly Network及类似的相关协议敲响了警钟,在跨链交易事件的验证及合约权限管理的设计上,项目方似乎需要更加精心的打磨。

  对于波卡的启示1、波卡面对跨链攻击会有怎样的情况呢?

  其实从黑客对于这次跨链攻击的手法来看,此次PolyNetwork主要的问题还是在于跨链功能中扮演中继作用的组件对链上跨链过来的消息的验证上存在缺陷,以及合约权限的管理逻辑存在问题,这使得黑客能让恶意的跨链消息被接收并在对应的链上进行了跨链消息所指定的操作。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容