比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

DoDo Research:從合約層面解析跨鏈橋機制設計弱點_Chain

Author:

Time:1900/1/1 0:00:00

近期BNB跨鏈橋受攻擊,導致近$570M損失。這一事件再次把跨鏈橋的安全性問題推上熱議。根據Messari8月的研報數據,過去一年內共有8起跨鏈橋攻擊事件,構成將近$2B美金的資產損失。

Dr.DODO今天通過深度分析PolyNetwork,Multichain及BNB橋事件,從合約層面展示跨鏈橋機制設計弱點。

首先,讓我們簡要回顧跨鏈橋的基本概念,以及設計機制分類。

不同的公鏈如同孤立的無需許可的計算機,具有不同的共識機制,相互之間無法直接通訊。跨鏈橋的存在就是為了使信息能夠不被篡改地從一個計算機傳遞到另一個計算機上。

跨鏈橋的核心是解決一個共識問題:跨鏈橋如何確定源鏈上的狀態已發生改變,進而在目標鏈上鑄造等量的資產?

不同的跨鏈橋對這個共識問題有不同解決方案,如采用中心化的橋,委員會,PoS機制,輕客戶端等。而不同的解決方案在信息傳遞的安全性,成本,延遲性上有所取舍。

Fake_Phishing76349地址已將23枚ETH轉入TornadoCash:金色財經報道,據CertiK監測,被Etherscan標注為Fake_Phishing76349 已將23枚ETH(約42.9K美元)經由EOA地址(0xAe98f)轉入Tornado Cash。[2023/4/9 13:52:58]

詳細分析可以參考此前文章《跨鏈漫談:深度解析16個跨鏈方案權衡》:

接下來,我們進一步的把跨鏈流程進行拆解,了解跨鏈具體涉及到哪些步驟,這樣在討論不同攻擊的時候,我們可以更好的理解出錯的點在哪里。

跨鏈流程:

1.當源鏈用戶發起一個狀態改變,如一筆交易;此事件將由源鏈驗證者進行驗證出塊。

2.此時跨鏈橋去監聽此跨鏈事件,下載并對進行驗證、簽名。

3.接下來被驗證簽署后的事件被傳輸至目標鏈。

4.由目標鏈上的驗證者進行驗證出塊。

5.由此,源鏈上發起的狀態改變得以在目標鏈被執行。

過去一周CircleUSDC流通量減少5億美元:金色財經報道,據官方消息,9月15日至9月22日期間,Circle共發行18億美元USDC,贖回22美元USDC,USDC流通量減少5億美元。截至9月22日,USDC總流通量為500億美元,儲備量為501億美元,其中現金116億美元,短期美國國債385億美元。[2022/9/24 7:18:52]

講述跨鏈橋機制分類的文章已經很多,我們在此按驗證方法把跨鏈橋分為:

-外部性驗證:PoS

-樂觀性驗證

-本地驗證:輕客戶端

按資產轉移方式把跨鏈橋分為:

-燃燒+鑄造

-鎖定+鑄造

-在源鏈/目標鏈部署流動性池

郵儲銀行采購5.75萬張數字人民幣準賬戶硬錢包:金色財經報道,中國郵政儲蓄銀行股份有限公司啟動新市民數字人民幣親情暖心錢包制卡及個人化服務采購項目,準賬戶模式標準卡式硬件錢包制卡及個人化服務,用于新市民親情暖心錢包試點發行,采購數量預估5.75萬張。(移動支付網)[2022/8/12 12:20:44]

PolyNetwork攻擊案例分析

簡單來說,PolyNetwork的工作機制是作為中間鏈去接收發送鏈的區塊頭,相當于所有它連接的鏈的輕客戶端。

比如,當Ontology上發起一筆交易,區塊頭會被送到PolyNetwork上。區塊頭含有stateroothash,當交易與證明到達PolyNetwork,這上面的keepers就可以進行驗證。若合法,PolyNetwork會自己發送一個event,目標鏈的relayer聽到后,會轉發到目標鏈的EthCrossChainManager合約上。

Zipmex由于技術問題將交易錢包維護期延長至7月22日:7月21日消息,加密貨幣交易所Zipmex更新稱,由于技術問題將交易錢包(Trade Wallet)的維護期延長至2022年7月22日(GMT+7)。Zipmex今日下午表示,會于2022年7月21日19:00重新為交易錢包(Trade Wallet)啟用提現和存款功能,交易功能將繼續保持禁用,直至另行通知。另外,Zipmex正在探索籌款、法律訴訟和重組等方案。[2022/7/21 2:29:42]

在了解PolyNetwork工作機制之后,我們來看受攻擊的合約。

首先,LockProxy是控制資產的合約。其次,EthCrossChainManager(CCM)的優越性有兩點:

1)只有它能調用LockProxy進行unlock或者burn資產。

2)CCM掌管著CrosschainData,合約保存著PolyNetwork的keeper公鑰名單。

印度市場監管機構因未正確披露Facebook交易而對Reliance處以罰款:金色財經報道,印度市場監管機構周一對Reliance及其兩名官員處以罰款,原因是他們沒有正確披露Facebook在2020年4月對Jio Platforms的 57 億美元投資。

印度證券交易委員會表示,媒體已在 3 月份報道了當時即將達成的交易,這促使該集團公司的股價上漲。(一些棒球內部人士:金融時報在 3 月份爆料稱,當時稱為 Facebook 的 Meta 正處于談判的后期階段,以對 Reliance Industries 的數字部門 Jio Platforms 進行數十億美元的投資。該消息很快被多家媒體放大。)

市場監管機構認為,當 Reliance 獲悉信息即將發布時,它“有責任”通過證券交易所或其他方式“自行作出適當澄清”。[2022/6/21 4:41:35]

也就是說,當跨鏈交易的數據發到CCM之后,合約可以從這個數據中恢復出一些簽名的地址。

然后它會拿這些地址和它自己存的keeper名單做對比,看看是不是有2/3的keeper在這些地址里面。如果有,就認為發送過來的數據是合法的。

黑客通過bruteforce撞出了CCM中特定的“SolidityfunctionID”,從而得以調用EthCrossChainData的合約,并把其中存的keeper名單里的公鑰匙換成自己的,這樣他就可以任意的給CCM發信息,自己去進行簽署,從而操作lockproxy。

所以上述攻擊出現的問題有兩點:

1)任意的用戶可以進行的遠程調用合約。在這個事件之后,項目方加入了白名單機制,只有指定方可以調用這個非常特別的合約。

2)合約之間的從屬關系,導致關鍵的合約容易被篡改。

Multichain攻擊案例分析

Multichain是可實現跨鏈路由的橋,通過封裝資產“anyToken”,Multichain可實現任意資產的任意跨鏈。首先,當用戶把DAI放到池子里,等量的anyDAI就會被鑄造出來,然后由網絡中的驗證人確定這一事件,在B鏈鑄造出等量的anyDAI,然后燃燒掉A鏈的anyDAI。

受攻擊的合約中,關注下圖標記的1,2,3行:首先,從anyDAI?這個合約拿到它底層資產合約的地址,即DAI。其次,permit()?使用戶通過簽名來允許路由器從用戶地址中提款。最后,safetransferfrom是一個真正的提款動作。

注:簽名了的交易被表示為(v,r,s)

可以看到黑客惡意部署的代幣地址,和無效的簽名。

回顧8.1中的三行代碼,黑客重新部署了anyDAI導致底下OUTPUT的底層資產解析出來是WETH的地址。在此,Multichain在這里的失誤就是它應該檢驗代幣地址是不是來自Multichain的代幣。

第二個微妙的問題就是permit是erc20的一個擴展協議,但是由于比weth出來的時間晚,所以weth沒有支持這個特性。那么如果去調用一個合約的一個不存在的方法,EVM會自動去調用這個合約的fallback方法;然而,fallback方法在這個情況下也沒報錯,所以,permit功能也被成功執行。

而第三行之所以可以執行,我們可以認定因為Multichain之前請求了WETH無限的花費上線,黑客通過濫用了這個approval把WETH從受害者的賬戶轉出。但值得注意的是很多的協議都會使用,以幫助用戶節省gas費用。

BNB橋攻擊案例簡述

Binance事件的黑客用RangeProof偽造Merkleproof證明某些數據存在Merkletree。

Proof理論上難偽造。

BNB橋涉及數據結構IAVL:可理解為等價于以太坊的Merklepatriciatrie,是一種custommerklizedbalancebinarysearchtree,InnerNode分為Left和Right兩個字段。

在這里IAVL的RangeProof存在的重要問題就是它允許Left和Right兩個字段可以同時被填充。而當Left與Right都存在的情況下會忽略Right進行RootHash計算。

擊者基本上通過將信息粘貼到Right字段中的優勢,而這些信息從未得到驗證,也從未影響哈希計算,以使驗證者相信某些Leaf是Tree的一部分。從而,成功地偽造了MerkleProof。

關于BNB橋攻擊中更復雜的合約調用邏輯可以閱讀:

https://mp.weixin.qq.com/s/y9jiMKrGThN8J4agFnFpJw

Tags:CHAETHAINChainVIPchainETHE幣GAIN價格AwardChain

比特幣交易
ENSEverywhere:在L2購買、交易和橋接ENS域名_ENS

DeFi市場迅猛發展,促使越來越多的交易活動轉至L2,但ENS并未隨之轉移。目前,用戶無法在L2上注冊和交易ENS域名,其必須繼續支付L1的Gas費才能與ENS交互.

1900/1/1 0:00:00
一文讀懂 Chainlink 代幣經濟 2.0 關鍵亮點_LINK

本文將展開分析LINK將如何快速發展成為能夠獲得實際價值的生產性資產。 增加網絡收入 對于像Chainlink這樣的去中心化Web3服務平臺來說,經濟效益至關重要.

1900/1/1 0:00:00
3 分鐘了解 EIP 4337 (賬戶抽象)如何改善以太坊 UX_BUND

以太坊的主要缺點之一是用戶體驗復雜,讓我們了解一下由nethermind以及opengsn研究者提出的?EIP4337?是如何嘗試用賬戶抽象來解決這個問題的。 那么,讓我們從帳戶抽象的意義開始.

1900/1/1 0:00:00
Layerzero:常被誤認為跨鏈橋的協議層產品_LAYER

在剛剛過去的這輪長達兩年的牛市中,市場不但見證了多鏈生態的迅速崛起,更直接目睹了眾多跨鏈橋產品的迅速爆發.

1900/1/1 0:00:00
ZkSync將于本月在主網上發布:一覽您需要了解的情況_SYNC

快速獲取 ●以太坊第二層網絡zkSync將于10月28日在主網上運行。●預計將在今年年底進行的全面啟動之前,用戶將無法使用。●這是第一次在實時環境中對以太坊的新擴展方法進行壓力測試.

1900/1/1 0:00:00
Arbitrum 生態頭部衍生品協議 GMX 熱度直上,再回顧其代幣設計及潛在風險_比特幣

在本文中你將了解: 1.GMX如何與其他協議區分開來;2.?GMX?代幣的價值是如何累積的;3.GMX的潛在風險和解決方案.

1900/1/1 0:00:00
ads