“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
Polyhedra Network推出zkBridge忠誠度計劃:5月12日消息,ZK基礎設施初創公司Polyhedra Network近期推出由Galxe提供支持的zkBridge忠誠度計劃,zkBridge用戶現在可以積累忠誠度積分并在未來解鎖各種專屬獎勵。
zkBridge忠誠度計劃允許用戶在參與zkBridge的跨鏈產品、與社交媒體互動以及參與社區時獲得忠誠度積分。這些忠誠度積分作為參與生態系統的證明。[2023/5/12 14:59:01]
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
加密友好支票賬戶應用Juno已支持Polygon上USDC:9月21日消息,加密友好支票賬戶應用Juno已支持Polygon上USDC,JunoApp用戶可以買賣以、發送和接受Polygon上的USDC而無需支付交易手續費,也可以通過賬戶憑證登錄并輸入Polygon地址后直接將法幣轉換為USDC。[2022/9/21 7:11:53]
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
Polygon Avail測試網現已上線,每秒可處理420筆交易:8月30日消息,Polygon宣布其擴容方案Avail測試網現已上線,Polygon表示,目前Avail的出塊時間為20秒,每個區塊能夠保存大約2MB的數據。假設平均事務大小為250字節,今天的每個Polygon Avail區塊可以容納大約8400個事務(每秒420個事務)。[2022/8/31 12:58:41]
我們對交易進行了解碼,得到了以下參數映射。
Polkadot 官方提醒:貢獻賬戶至少保留 1 個 DOT:11月10日消息,Polkadot 官方發推,提醒大家注意 DOT 賬戶的最低余額(存在存款)。在 Polkadot 上,如果你貢獻的帳戶中剩余額少于 1 個 DOT,則剩余部分將被清除。要么貢獻一切,要么留下超過 1 個 DOT。但無論是哪種方式,你的 DOT 都會在到期后返回到你的賬戶中![2021/11/10 6:43:48]
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
Polygon即將宣布推出的專注于鏈游NFT的工作室:7月14日,Polygon中國區市場顧問Sharon透露Polygon即將宣布推出的專注于鏈游NFT的工作室,將致力于構建Metaverse,不斷賦能鏈游,NFT等賽道,正式公告將于幾日后發出。[2021/7/14 0:51:53]
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定義如下:哈希樹可以用來驗證計算機中和計算機之間存儲、處理和傳輸的任何種類的數據。它們可以幫助確保從點對點網絡中的其他對等體收到的數據塊是未被破壞和未被改變的,甚至可以檢查其他節點是否撒謊和發送假塊。
Tags:POLOLYPOLYERKpolkawallet-ioPOLYDOGE幣2023年polygon幣Terkehh
巴比特訊,BSC鏈上收益聚合器PineconeFinance今日發布補償計劃,項目團隊及投資人共持有491萬枚代幣,將用所有代幣補償用戶.
1900/1/1 0:00:00巴比特訊,Rooter-Man是一家在北美擁有776多個服務點的管道、化糞池和下水道清潔特許經營商,全天候提供快速友好的管道服務,它與MyCryptoCheckout合作開發了一項試點計劃.
1900/1/1 0:00:00原標題:《數字化慈善:我們可以做得更好》區塊鏈技術不僅會使在線捐贈變得更容易,還將為新的慈善籌款形式鋪平道路.
1900/1/1 0:00:00來源:TheBlockResearch正如TheBlock的數據儀表板所顯示的那樣,7月份NFT市場的交易量剛剛超過3億美元.
1900/1/1 0:00:00巴比特訊,根據etherchain以及ultrasound.money數據顯示,自8月5日20:33以太坊倫敦升級后,截至8月13日20:33已經有37121ETH被燒毀.
1900/1/1 0:00:00據TheAthletic9月3日消息,多位俱樂部人士表示,NFL上個月通知各球隊,他們暫時不能向加密貨幣交易公司出售贊助。此外,球隊也不能出售NFT代幣.
1900/1/1 0:00:00