前言
隨著ETH升級PoS共識系統,原有的PoW機制的ETH鏈在部分社區的支持下成功硬分叉。但是,由于某些鏈上協議在設計之初沒有對可能的硬分叉做好準備,導致對應的協議在ETHW分叉鏈存在一定的安全隱患,其中最為嚴重的安全隱患則是重放攻擊。在完成硬分叉后,ETHW主網出現了至少2起利用重放機制進行的攻擊,分別是OmniBridge的重放攻擊和PolygonBridge的重放攻擊。本文將以這兩個事件作為案例,分別分析重放攻擊對分叉鏈的影響,以及協議應如何防范此類攻擊。重放的類型
首先,在開始分析之前,我們需要先對重放攻擊的類型做一個初步的了解,一般而言,我們對重放攻擊分成兩類,分別是交易重放和簽名消息重放。下面,我們來分別說下這兩類重放機制的區別交易重放
交易重放指的是將在原有鏈的交易原封不動的遷移到目標鏈的操作,屬于是交易層面上的重放,重放過后交易也是可以正常執行并完成交易驗證。最著名的案例莫過于Wintermute在Optimism上的攻擊事件,直接導致了超2000萬OP代幣的損失。但是在EIP155實施以后,由于交易的簽名本身帶有chainId(一種用于鏈本身區別與其他分叉鏈的標識符),在重放的目標鏈chainId不同的情況下,交易本身是無法完成重放的。簽名消息重放
Cobo將于近期推出MPC協管方案:金色財經報道,Cobo宣布將于近期推出MPC協管方案,Cobo的MPC方案是多方分片保管私鑰,保證平臺處理資金用途的透明度,讓用戶有效掌控自己的資金走向,使第三方無法越過持有者挪用資金。
Cobo認為MPC是有效推動行業憑借技術向前發展的重要托管技術利器。Cobo已經開始內部測試MPC協管方案,將于近期推出市場,有效避免中心化機構挪用客戶資產。[2022/11/9 12:37:29]
簽名消息重放區別于交易重放,是針對的用私鑰簽名的消息(e
在這個函數中,首先會根據#L2行的簽名檢查來確定提交的簽名是不是由指定的validator進行簽名,然后再在#L11行對data消息進行解碼。從解碼內容上看,不難發現,返回字段中包含了chainId字段,那么是不是說明無法進行簽名消息重放呢?我們繼續分析。function_executeMessage(bytes32msgId,addresssender,addressexecutor,uint32gasLimit,uint8dataType,uint256memorychainIds,bytesmemorydata)internal{require(_isMessageVersionValid(msgId));require(_isDestinationChainIdValid(chainIds));require(!relayedMessages(msgId));setRelayedMessages(msgId,true);processMessage(sender,executor,msgId,gasLimit,dataType,chainIds,data);}通過追查_executeMessage函數,發現函數在#L11行對chaindId進行了合法性的檢查function_isDestinationChainIdValid(uint256_chainId)internalreturns(boolres){return_chainId==sourceChainId();}functionsourceChainId()publicviewreturns(uint256){returnuintStorage;}通過繼續分析后續的函數邏輯,不難發現其實針對chainId的檢查其實并沒有使用evm原生的chainId操作碼來獲取鏈本身的chainId,而是直接使用存儲在uintStorage變量中的值,那這個值很明顯是管理員設置進去的,所以可以認為消息本身并不帶有鏈標識,那么理論上就是可以進行簽名消息重放的。由于在硬分叉過程中,分叉前的所有狀態在兩條鏈上都會原封不動的保留,在后續xDAI團隊沒有額外操作的情況下。分叉后ETHW和ETH主網上OmniBridge合約的狀態是不會有變化的,也就是說合約的validator也是不會有變化的。根據這一個情況,我們就能推斷出validator在主網上的簽名也是可以在ETHW上完成驗證的。那么,由于簽名消息本身不包含chainId,攻擊者就可以利用簽名重放,在ETHW上提取同一個合約的資產。PolygonBridge
Cobo公布2021年鑒:交易管理金額超1000億美元 累計服務300+行業機構客戶:據官方消息,亞太加密貨幣托管服務商 Cobo 公布 2021 年鑒,個人錢包業務支持代幣數量 1658,支持公鏈數量 62,累計幫客戶盈利1.26億美金,企業托管累計服務300+行業機構客戶,其中交易所用戶占比85%以上,交易管理金額超 1000 億美元,攔截風險轉賬的次數達9504,其中特色體系內 0 手續費轉賬系統 Loop 聯盟,截止2021年,累計為客戶節約手續費上千萬美元。[2022/2/15 9:52:54]
和OmniBridge一樣,PolygonBridge是用于在Polygon和ETH主網進行資產轉移的橋。與OmniBridge不同,PolygonBridge依賴區塊證明進行提款,邏輯如下:functionexit(bytescalldatainputData)externaloverride{//...省略不重要邏輯//verifyreceiptinclusionrequire(MerklePatriciaProof
Cobo Custody宣布與TZ APAC達成戰略合作:據官方消息,Cobo Custody正式宣布與TZ APAC達成深度戰略合作,TZ APAC是公鏈咨詢公司,為Tezos生態系統提供支持。此次強強聯合,雙方將在全球區塊鏈企業市場共同拓展Tezos生態,Cobo Custody所有客戶均可零門檻對接Tezos,無需額外開發。
Cobo Custody是企業級數字資產錢包開發及托管服務平臺,以最高安全級的HSM加密機、多簽及冷溫熱分離存儲為安全保障基礎,服務于交易所、錢包、資管平臺等全球機構客戶。
Tezos是開放源代碼的去中心化平臺,提供資產、應用程序的區塊鏈及生態系統,具有良好記錄,可自我升級,無縫采用未來的創新技術,由驗證者、研究人員、開發人員和建造者等全球參與者共同支持。
TZ APAC由Tezos基金會支持,通過自下而上的方法與Tezos生態系統中的區塊鏈專家和其他利益相關者緊密合作,為企業和創建者設計了增值的區塊鏈轉型策略。[2021/5/17 22:09:50]
通過函數邏輯,不難發現合約通過2個檢查確定消息的合法性,分別是通過檢查transactionRoot和BlockNumber來確保交易真實發生在子鏈(PloygonChain),第一個檢查其實可以繞過,因為任何人都可以通過交易數據來構造屬于自己的transactionRoot,但是第二個檢查是無法繞過的,因為通過查看_checkBlockMembershipInCheckpoint邏輯可以發現:function_checkBlockMembershipInCheckpoint(uint256blockNumber,uint256blockTime,bytes32txRoot,bytes32receiptRoot,uint256headerNumber,bytesmemoryblockProof)privateviewreturns(uint256){(bytes32headerRoot,uint256startBlock,,uint256createdAt,)=_checkpointManager
安永將與BSN展開合作 基于FISCOBCOS底層框架部署兩大區塊鏈平臺:安永將與BSN展開深入合作。基于BSN全球區塊鏈網絡上FISCOBCOS底層框架,部署其“安永BlockchainAnalyzer”和“安永OpsChain”兩大平臺。安永將通過BSN網絡提供控制機制,實現與部署在海外的以太坊網絡的互聯互通,持續為客戶提供更加合規、安全、高效的產品解決方案。[2021/2/10 19:21:57]
對應的headerRoot是從_checkpointManager合約中提取的,順著這個邏輯我們查看_checkpointManager設置headerRoot的地方functionsubmitCheckpoint(bytescalldatadata,uintcalldatasigs)external{(addressproposer,uint256start,uint256end,bytes32rootHash,bytes32accountHash,uint256_borChainID)=abi
動態 | 新型加密惡意軟件“WebCobra”出現 挖礦Monero或Zcash:網絡安全研究實驗室McAfee Labs的研究人員最近透露,一種被稱為“WebCobra”的新型加密惡意軟件正在感染用戶的機器,使其暗中挖礦Monero (XMR)或Zcash (ZEC)。[2018/11/15]
此變量最早在EIP712中定義,該變量中含有chainId,在設計之初就包含可能的多鏈場景的重放預防,但是根據uniswapV2pool合約的邏輯,如下:constructor()public{uintchainId;assembly{chainId:=chainid}DOMAIN_SEPARATOR=keccak256(abi
DOMAIN_SEPARATOR在構造函數中已經定義好,也就是說在硬分叉后,就算鏈本身的chainId已經改變,pool合約也無法獲取到新的chianId來更新DOMAIN_SEPARATOR,如果未來用戶在ETHW上進行相關授權,那么ETHW上的permit簽名授權可以被重放到ETH主網上。除了Uniswap外,類似的協議還有很多,比如特定版本下的yearnvault合約,同樣也是采用了固定DOMAIN_SEPARATOR的情況。用戶在ETHW上交互的時候也需要防范此類協議的重放風險。協議設計之初的防范措施
對于開發者而言,在為協議本身定制消息簽名機制的時候,應該考慮后續可能的多鏈場景,如果路線圖中存在多鏈部署的可能,應該把chainId作為變量加入到簽名消息中,同時,在驗證簽名的時候,由于硬分叉不會改變分叉前的任何狀態,用于驗證簽名消息的chainId不應該設置為合約變量,而應該在每次驗證前重新獲取,然后進行驗簽,保證安全性。影響
對用戶的影響
普通在協議不支持分叉鏈的情況下,應盡量不在分叉鏈上進行任何操作,防止對應的簽名消息重放到主網上,造成用戶在主網上損失資產對交易所和托管機構的影響
由于很多交易所本身都支持了ETHW代幣,所以這些由于攻擊而提取出來的代幣都有可能充值到交易所中進行拋售,但需要注意的是,此類攻擊并不是鏈共識本身的問題而導致的惡意增發,所以對交易所而言,此類攻擊無需進行額外的防范總結
隨著多鏈場景的發展,重放攻擊從理論層面逐步變成主流的攻擊方式,開發者應當仔細考量協議設計,在進行消息簽名機制的設計時,盡可能的加入chainId等因子作為簽名內容,并遵循相關的最佳實踐,防止用戶資產的損失。
Tags:AINChainHAICHABlockchain Store TokenChainge FinanceiotchainVikingsChain
人們常說,創新會在熊市中誕生。今年夏天與2017年的"DeFi之夏"相差甚遠,但Layer2卻得到了長遠的發展。其中廣受歡迎的Abritrum就是其中之一.
1900/1/1 0:00:00Solana基金會很高興地宣布Solana夏令營編程馬拉松的結果,這是全球性的比賽,目的是將下一波有巨大影響力的項目引入Solana生態系統.
1900/1/1 0:00:00TL;DR1.SBT是一個關系證明而不是權威證明,其價值在于數據的大量積累,復雜、豐富和多樣性會是SBT數據源的核心競爭力.
1900/1/1 0:00:00Odaily星球日報譯者|念銀思唐 摘要: -FuelLabs完成8000萬美元融資,BlockchainCapital和StratosTechnologies領投.
1900/1/1 0:00:002013年11月,在比特幣創世區塊誕生近5年之后,以太坊白皮書問世。 2013年的VitalikButerin「這份初稿是我對我們稱之為『密碼學貨幣2.0』領域長達幾個月的思考和工作的結晶.
1900/1/1 0:00:00合并已經結束,以太坊代幣經濟學發生了巨大的變化,ETH的供應顯著降低。以太坊正在產生更多的收入,并大大提高了在與BTC競爭中的地位.
1900/1/1 0:00:00