“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
NBA球員Spencer Dinwiddie公布其加密貨幣4大持倉:NBA布魯克林籃網隊球星斯賓塞·丁威迪(Spencer Dinwiddie)在推特上公布其加密貨幣持倉的前4位,分別是:BTC,Hbar,Flow和Link。[2021/5/26 22:47:01]
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
狗狗登月通過審計公司CertiK的安全審計:據官方消息,DogMoon今日通過CertiK的安全審計,提供了安全審計報告,審計報告中證明了LP私鑰被銷毀,轉入黑洞,資金池安全。
狗狗登月上線15天,持幣地址突破83300,資金池突破21000HT。
如需查詢審計情況,請登錄官方網站進行搜索查詢。[2021/5/25 22:42:48]
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
Aave推出自動做市商(AMM)市場,Uniswap和Balancer LP代幣可作為抵押品:3月16日消息,Aave推出自動做市商(AMM)市場,用戶可以開始從Aave AMM Liquidity Pool存入和借入加密資產,允許Uniswap V2和Balancer的流動性提供者( LP)使用其LP代幣作為Aave協議中的抵押品。[2021/3/16 18:49:54]
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
我們對交易進行了解碼,得到了以下參數映射。
去中心化交易所Balancer通過BAL流動性挖礦治理提案:Balancer協議于北京時間今日凌晨通過社區治理投票,再次修改其流動性挖礦獎金分配方案。Balancer以治理BAL為獎勵為流動性提供者每周發放獎勵。在新通過的提案中,每周14.5萬的BAL獎金(約合350萬美金)中將會有4.5萬(約合108萬美金)分發給BAL其它代幣交易對的流動性提供者。該提案被認為更偏向于以BAL為基礎的流動性池。[2020/8/25]
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
Balancer批準三項流動性挖礦相關提案:上周末,Balancer對其新的治理提案進行了第一輪投票,三份提案都得到了利益相關者的批準。據悉,自動流動性和資產管理協議每周為向Balancer平臺提供流動性的人分配145000 BAL。代幣分配與每個地址的流動性貢獻對應。為了得出一個管理分配的公式,Balancer上周發布了其最小治理工具,并就這一計算結果提出了三項提案。
第一個提案被稱為“balFactor”,鼓勵持有者使用他們的BAL代幣來獲得流動性,而不僅僅是兌現;第二項提案是通過降低對高收費池的挖礦處罰來修改“feeFactor”;第三項提案是將“wrapFactor”定為0.7,來應用于每對軟錨定代幣的流動性,以吸引更多有用的流動性加入協議。(BeInCrypto)[2020/7/20]
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:NCEBALANCERKdeCraft Financehotcoinglobal騙局INS3.FinanceTerkehh
在最近的EthCC2021大會上,ProtocolLabs創始人JuanBenet進行了演講,闡述了為什么Filecoin和以太坊的結合,能夠引領我們走向實現Web3的道路.
1900/1/1 0:00:00Tethe作為全球最大的穩定幣發行方,截至2021年5月,流通的Tether代幣超過600億美元.
1900/1/1 0:00:00AxieInfinity帶火了鏈游,CryptoPunks帶火了頭像類NFT。CryptoPunks始創于2017年,作為NFT領域的元老級項目,在今年3月和最近一個月分別迎來兩次成交量高潮.
1900/1/1 0:00:00從監管方面看,國內對加密貨幣市場的態度應該沒有什么緩沖的余地了,甚至會持續打擊。今天央行副行長在相關會議上再次提及到了加密貨幣,而且是主管這方面工作的副行長,其態度應該是表示了上面對這個市場最直.
1900/1/1 0:00:00是時候做好首屆REVVRacing錦標賽的準備了,除了在出發前擁有一個REVVRacingNFT,別無任何要求.
1900/1/1 0:00:00收錄于話題 #每日期權播報 播報數據由Greeks.live格致數據實驗室和Deribit官網提供。大宗交易作為市場預警信號,目前看來確實是有效的。注意這里說的是預警信號,而不是交易信號.
1900/1/1 0:00:00