“黑客拿着房主证明找物业拿钥匙,证明是假的,却从物业那里拿到了真的钥匙”
事件回顾
2021年8月10日,PolyNetwork遭受了跨链攻击,被转移了6亿美金的加密资产。攻击者在多条公链上进行了攻击交易,并通过跨链管理合约和中继器组件完成了攻击。
CertiK:谨防Twitter上宣传的Finale空投网站:金色财经消息,据CertiK官方推特发布消息,谨防Twitter上宣传的Finale空投网站,并勿与finale.website钓鱼网站互动,该网站目前连接了一个已知的wallet drainer。[2023/6/15 21:40:10]
用上面物业的例子来解释的话,黑客用假房主证明,从物业那里拿到了真的钥匙(AllianceChain上经过签名的Merkle证明)。
攻击解析
一、黑客在源链上初始化了一个本应是无效的攻击交易。
二、攻击交易在没有被充分检查的情况下被写入源链,之后被中继器纳入了AllianceChain的Merkletree并签字,然后发布到AllianceChain区块中。
三、黑客在目标链上用步骤二的有效Merkle证明,调用PolyNetwork的ECCM合约,将keepers改成黑客控制的公钥。
CertiK:SCT部署者出售了最初铸币和早期购买的代币导致代币价格下滑90%:金色财经报道,据CertiK监测,SCT代币价格下滑了90%,部署者出售了最初铸币和早期购买的代币,共计约28万6千美元。[2023/6/7 21:21:49]
四、获得keepers权限后,黑客就可以在多条公链上任意解锁资产了。
这里值得注意的是,PolyNetwork在有些链上的中继器没有通过攻击交易,所以即使智能合约相似,某些目标链上资产并未受影响。
细节分析
一、黑客于北京时间2021年8月10日17:32:32在源链发起了一笔攻击交易。
Ceramic开发商3Box Labs完成3000万美元A轮融资:2月16日消息,去中心化数据库协议Ceramic的核心开发商3Box Labs宣布完成3000万美元A轮融资,由Multicoin Capital和Union Square Ventures领投。筹集资金将用于加速Ceramic的发展和增加Web3生态中的数据可组合性。
据悉,Ceramic的分布式数据网络可以使开发人员在可组合数据的生态系统中构建应用程序。[2022/2/17 9:56:29]
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
Cere将通过Republic,DAO和Polkastarter推出80倍超额认购后的公募:据官方消息,去中心化数据云(DDC)平台Cere Network宣布在Republic(4月8日)、DAO Maker(4月15日)和Polkastarter(4月19日)上公开发售。
Cere此前已经从一系列知名VC包括Binance Labs、OKEx、Republic Labs、Arrington XRP Capital、Kenetic Capital、Fenbushi Capital和AU21 Capital等筹集了1000万美元。最近一次500万美元的融资获得了80倍的超额认购,并在Republic上公开发行前完成。
据悉,Cere于2019年推出,Cere Network得到包括Gate.io、ZB exchange、Ankr、Ledger Prime、Woodstock fund、JRR Capital、Spark Capital、LD Capital、NGC Capital、QCP Capital、Monday Capital、G1 Ventures等在内的风投财团和生态系统合作伙伴的支持。[2021/4/1 19:36:19]
我们对交易进行了解码,得到了以下参数映射。
Balancer将YFII添加进白名单:Balancer新增一批代币名单,YFII在列。
据悉,为Balancer白名单上的代币交易对提供流动性,挖矿同时可获得BAL奖励,实现YFII与BAL双挖。即便YFII减半至挖矿几近结束后,在该池提供流动性仍可获得BAL奖励。[2020/8/25]
二、此攻击交易调用了一个method"66313231333138303933",其对应的签名等于0x41973cd9。这笔交易应该是无效交易,可是却被写入源链并被中继器纳入了AllianceChain的Merkletree并签字,然后发布到AllianceChain区块中。Merkletree是用来证明交易是否真实存在的。其产生的跨链交易如下:
https://explorer.poly.network/tx/1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80
三、跨链交易在目标链上调用了PolyNetwork合约的EthCrossChainManager.verifyHeaderAndExecuteTx(),第一个参数包含了Merkle证明,解析如下:
四、这个函数解析了Merkle证明,发现证明是有效的,此攻击交易确实存在于已被签名的Merkletree中。之后调用了EthCrossChainManager._executeCrossChainTx()函数去执行此交易,即调用toContract指向合约(0xcf2afe102057ba5c16f899271045a0a37fcb10f2)中的method(0x6631313231333138303933),传入参数args(010000000000000014a87fb85a93ca072cd4e5f0d4f178bc831df8a00b)。而这个method指向putCurEpochConPubKeyBytes(bytes),因为其函数签名与步骤二中提到的method签名相同(均为0x41973cd9,此处为哈希碰撞),所以被顺利执行,将keepers的公钥改成了黑客的公钥。以太坊上的交易如下:
https://etherscan.io/tx/0xb1f70464bd95b774c6ce60fc706eb5f9e35cb5f06e6cfe7c17dcda46ffd59581
五、黑客改变公钥后,即可以随意解锁资产。
事件总结
此次攻击是由一连串交易构成的,其攻击根源分析如下:
一、攻击交易在没有充分检查的情况下被写入源链。
二、中继器会接收任意含有"makeFromOntProof"事件的交易。
三、中继器将步骤一中的交易发布到了AllianceChain上。
四、在步骤二中,此攻击交易被纳入到AllianceChain的Merkletree上,产生了有效的Merkle证明。
五、原链上的ECCM合约通过步骤二产生的Merkle证明,验证了该交易在源链上“确实存在”,原始数据并未被破坏、未被修改。不过需要强调的是,在构建将被发送到目标链的Merkle证明之前,应该对交易进行全面验证。正如设计文档中所示。
“ThemanagementcontractfetchestheblockheadersfromchainA,verifieswhetherornotthecrosschainparametersandtheproofarevalid,andthentransmitsthenecessaryinformationtochainBintheformofanevent;”
"管理合约从A链获取区块头,验证跨链参数和证明是否有效,然后将必要的信息以事件的形式传送给B链;"
因此,目标链应使用Merkle证明来验证所收到的信息是未被破坏和未被改变的,而交易信息应在发送至目标链之前进行全面验证。
附:Merkletree定义如下:哈希树可以用来验证计算机中和计算机之间存储、处理和传输的任何种类的数据。它们可以帮助确保从点对点网络中的其他对等体收到的数据块是未被破坏和未被改变的,甚至可以检查其他节点是否撒谎和发送假块。
平行链拍卖是Kusama和Polkadot的核心特征。拍卖结果决定了哪些项目可以获得平行链插槽以及需要锁定代币的数量。为了生态系统的健康,重点的是要把稀缺的插槽分配给最能充分利用它们的项目.
1900/1/1 0:00:00区块链行业一直在努力创造着更多的可能,也为从业者们实现自身价值与理想,提供了一个足够大的空间。如今,在区块链领域,越来越多的女性加入其中,她们积极投身于行业的建设中,也在过去创造出了显著的成绩.
1900/1/1 0:00:00作者|克里斯托弗·康登 编译|白泽研究院 想象一下在美国联邦储备局登录您自己的帐户。使用笔记本电脑或手机,您可以立即在任何地方使用现金。没有中间人,没有费用,无需等待存款或付款清算.
1900/1/1 0:00:007月24日晚,由顶峰AscendEX、BUKON以及PANews联合主办的“顶峰之约”加密私享酒会在数字化创新之都——杭州盛大举行.
1900/1/1 0:00:00SolvVouchers是Voucher的铸造、管理和交易平台。通过用Voucher表达锁仓额度,我们将打造一个全新的DeFi额度市场,为项目方提供更便捷、灵活、低成本的锁仓Token管理工具.
1900/1/1 0:00:00继续推进dApp前端开发 完善铸币中心和销毁机制 完成Web3Grants两个重要里程碑的代码与CloverFinance达成战略合作与StratosNetwork达成去中心化数据存储战略合作与DoraFactory达成治理机制战略合.
1900/1/1 0:00:00