“黑客拿着房主证明找物业拿钥匙,证明是假的,却从物业那里拿到了真的钥匙”
事件回顾
2021年8月10日,PolyNetwork遭受了跨链攻击,被转移了6亿美金的加密资产。攻击者在多条公链上进行了攻击交易,并通过跨链管理合约和中继器组件完成了攻击。
用上面物业的例子来解释的话,黑客用假房主证明,从物业那里拿到了真的钥匙(AllianceChain上经过签名的Merkle证明)。
攻击解析
一、黑客在源链上初始化了一个本应是无效的攻击交易。
Polygon Labs总裁:当监管不符合新技术时,美国就会失去相对于其他国家的竞争优势:金色财经报道,美国众议院能源和商业委员会创新、数据和商业小组委员会于6月7日讨论区块链技术和Web3的未来?。包括Polygon Labs总裁Ryan Wyatt和几位法律专家在内的加密行业成员出席了委员会会议参与后来被证明是建设性的对话。?Polygon Labs总裁Ryan Wyatt表示,在当前的互联网时代,通常被称为Web2,大型集中式科技公司通过对商品和服务收取费用并为他们的利益收集用户数据来从用户那里获取价值。而区块链通过使互联网民主化并创建基于去中心化和透明系统的 Web3 来解决这个问题。区块链使用密码学和计算机网络来保护和维护信息,从而消除了对中央集权机构的需求。在这个 Web3 模型中,用户可以控制他们的数据并选择何时、如何以及是否与应用程序和服务共享数据。
Wyatt提到当前的监管环境是一个重大障碍。通过培育监管良好的区块链生态系统,美国可以保持其竞争优势并确保技术行业在国内蓬勃发展,当监管不符合新技术时,美国就会失去相对于其他国家的竞争优势。[2023/6/8 21:24:13]
二、攻击交易在没有被充分检查的情况下被写入源链,之后被中继器纳入了AllianceChain的Merkletree并签字,然后发布到AllianceChain区块中。
Optimism上衍生品协议Polynomial Protocol推出比特币期权Vault:金色财经消息,Optimism上衍生品协议Polynomial Protocol推出比特币期权Vault,用户可向比特币看跌期权Vault中存入sUSD,向比特币看涨期权Vault中存入sBTC来获取收益。[2022/5/6 2:53:42]
三、黑客在目标链上用步骤二的有效Merkle证明,调用PolyNetwork的ECCM合约,将keepers改成黑客控制的公钥。
四、获得keepers权限后,黑客就可以在多条公链上任意解锁资产了。
这里值得注意的是,PolyNetwork在有些链上的中继器没有通过攻击交易,所以即使智能合约相似,某些目标链上资产并未受影响。
Spatial LABS宣布正在研发基于Polygon的元宇宙可穿戴设备:3月16日,Spatial LABS 宣布正在研发可作为物理入口点的元宇宙可穿戴设备,该设备将基于 Polygon 网络研发。该研发项目目前定名为 LNQ,服装、可穿戴物品和其他实物可以作为 LNQ 生态系统中的体验点,为用户提供完全身临其境的元宇宙体验。[2022/3/16 13:59:41]
细节分析
一、黑客于北京时间2021年8月10日17:32:32在源链发起了一笔攻击交易。
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
Polygon链上DeFi协议总锁仓量为49.3亿美元:金色财经报道,据DefiLlama数据显示,目前Polygon链上DeFi协议总锁仓量为49.3亿美元,24小时减少3.02%。锁仓资产排名前五分别为AAVE(22亿美元)、Quickswap(6.79亿美元)、Curve(3.18亿美元)、SushiSwap(2.69亿美元)、Balancer(1.99亿美元)。[2022/2/2 9:27:26]
我们对交易进行了解码,得到了以下参数映射。
二、此攻击交易调用了一个method"66313231333138303933",其对应的签名等于0x41973cd9。这笔交易应该是无效交易,可是却被写入源链并被中继器纳入了AllianceChain的Merkletree并签字,然后发布到AllianceChain区块中。Merkletree是用来证明交易是否真实存在的。其产生的跨链交易如下:
动态 | 前Polychain合作伙伴Ryan Zurrer将离开Web3创建DAO:据CoinDesk报道,Web3基金会证实了前Polychain合作伙伴Ryan Zurrer的离开,其将在本月晚些时候的Web3峰会上宣布与他合作的新的公司。目前Zurrer分享了新DAO白皮书的草稿,并发布在他的Github页面上。[2019/8/6]
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定义如下:哈希树可以用来验证计算机中和计算机之间存储、处理和传输的任何种类的数据。它们可以帮助确保从点对点网络中的其他对等体收到的数据块是未被破坏和未被改变的,甚至可以检查其他节点是否撒谎和发送假块。
标签:OLYPOLYPOLChainpolydoge币创始人Polymath NetworkPolkaDogeLafite Chain
摘要:一个名为矮胖企鹅的基于以太坊的NFT项目现在正在市场爆炸。仅在过去24小时内,该系列的NFT就已在二级市场上销售额价值超过1100万美元.
1900/1/1 0:00:00要点:DuneAnalytics在由联合广场风投领投的A轮融资中筹集了800万美元。该公司首席执行官FredrikHaga表示,Dune希望扩大其团队,推出新的数据平台,并支持更多区块链.
1900/1/1 0:00:00原标题:《如何理解Paradigm的乘方永续合约?》顶级投资机构Paradigm在上周发布了一篇介绍新型金融衍生品「乘方永续合约」的论文.
1900/1/1 0:00:00据Coindesk8月17日消息,惠誉评级机构警告说,萨尔瓦多采用比特币作为法定货币存在"额外的监管和运营风险",因为比特币的实际执行情况还没有被全球监管机构所定义.
1900/1/1 0:00:00据TheBlock9月5日消息,知名基金投资大鳄BillMiller旗下价值型基金MillerOpportunityTrust在周五的投资者更新报告中提到其比特币敞口.
1900/1/1 0:00:00本文来自?Decrypt原文作者:TimHakkiOdaily星球日报译者|余顺遂摘要:SneakyVampireSyndicate团队希望其项目能发展成一个元宇宙社区.
1900/1/1 0:00:00