前言
隨著ETH升級PoS共識系統,原有的PoW機制的ETH鏈在部分社區的支持下成功硬分叉。但是,由于某些鏈上協議在設計之初沒有對可能的硬分叉做好準備,導致對應的協議在ETHW分叉鏈存在一定的安全隱患,其中最為嚴重的安全隱患則是重放攻擊。在完成硬分叉后,ETHW主網出現了至少2起利用重放機制進行的攻擊,分別是OmniBridge的重放攻擊和PolygonBridge的重放攻擊。本文將以這兩個事件作為案例,分別分析重放攻擊對分叉鏈的影響,以及協議應如何防范此類攻擊。重放的類型
首先,在開始分析之前,我們需要先對重放攻擊的類型做一個初步的了解,一般而言,我們對重放攻擊分成兩類,分別是交易重放和簽名消息重放。下面,我們來分別說下這兩類重放機制的區別交易重放
交易重放指的是將在原有鏈的交易原封不動的遷移到目標鏈的操作,屬于是交易層面上的重放,重放過后交易也是可以正常執行并完成交易驗證。最著名的案例莫過于Wintermute在Optimism上的攻擊事件,直接導致了超2000萬OP代幣的損失。但是在EIP155實施以后,由于交易的簽名本身帶有chainId(一種用于鏈本身區別與其他分叉鏈的標識符),在重放的目標鏈chainId不同的情況下,交易本身是無法完成重放的。簽名消息重放
Cobo COO:目前有140家企業正在申請香港虛擬資產交易所牌照:6月19日消息,Cobo首席運營官Lily Z King表示,截止到目前,香港只有兩家企業此前已經獲得虛擬資產交易所業務所需的牌照,包括9號牌在內,目前還有140家企業在申請。Lily透露,牌照申請以及合規運營的成本非常昂貴,“每年的營運成本可能在2000萬港幣左右,初期成本可能在3000萬至4000萬港幣。”如果參考國外的情況,日本在剛開始發牌時有超過100家公司申請,結果拿到牌照的不超過20家,最后持續經營的大概只有4至5家。
此前消息,Cobo COO表示,香港虛擬資產業務牌照申請者中包括很多傳統金融企業。[2023/6/19 21:47: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推出DeFi as a Service產品Cobo Argus:金色財經消息,Cobo團隊宣布推出DeFi as a Service產品Cobo Argus,Cobo Argus是一種全新的服務形式,目的是幫助機構團隊和DAO組織高效并安全地訪問鏈上DeFi協議。
據官方介紹,Cobo Argus可以在三種環境中實現:集中式(托管)平臺、智能合約平臺和專用區塊鏈(支持跨鏈、跨層的資產管理和協議交互)。Cobo Argus根據機構用戶團隊成員所扮演的不同角色,比如交易員、流動性礦工、基金管理人、會計、財務人員等,授予與其職位相當的權力,將整體資產的控制權分層。[2022/8/4 5:21:48]
和OmniBridge一樣,PolygonBridge是用于在Polygon和ETH主網進行資產轉移的橋。與OmniBridge不同,PolygonBridge依賴區塊證明進行提款,邏輯如下:functionexit(bytescalldatainputData)externaloverride{//...省略不重要邏輯//verifyreceiptinclusionrequire(MerklePatriciaProof
Cobra:推特黑客為比特幣營銷所做貢獻比所有大V加起來還要多:7月16日,針對很多名人推特被黑并發布數字貨幣釣魚騙局一事,Bitcoin.org網站共同所有者Cobra發推稱,這些黑客為比特幣營銷所做的貢獻,比那些所有有推特影響力的人加起來還要多。[2020/7/16]
通過函數邏輯,不難發現合約通過2個檢查確定消息的合法性,分別是通過檢查transactionRoot和BlockNumber來確保交易真實發生在子鏈(PloygonChain),第一個檢查其實可以繞過,因為任何人都可以通過交易數據來構造屬于自己的transactionRoot,但是第二個檢查是無法繞過的,因為通過查看_checkBlockMembershipInCheckpoint邏輯可以發現:function_checkBlockMembershipInCheckpoint(uint256blockNumber,uint256blockTime,bytes32txRoot,bytes32receiptRoot,uint256headerNumber,bytesmemoryblockProof)privateviewreturns(uint256){(bytes32headerRoot,uint256startBlock,,uint256createdAt,)=_checkpointManager
動態 | Sucden Financial采用區塊鏈公司Cobalt的交易后外匯基礎設施:基于區塊鏈的交易后基礎設施提供商Cobalt周三宣布,Sucden Financial已成為最新一家加入該公司交易后技術網絡的外匯業務機構。Cobalt的目的是重新設計交易后的外匯基礎設施和流程。為此,系統的自動技術將交易的所有版本匹配為一個“可信副本”。通過創建受信任的副本,基礎設施生成一個不可更改的外匯交易數據集。根據協議,Sucden Financial將能夠利用Cobalt的一系列中后臺貿易解決方案,包括其核心信貸模塊。這是通過IHS Markit的連接服務實現的。(Finance Magnates)[2020/2/19]
對應的headerRoot是從_checkpointManager合約中提取的,順著這個邏輯我們查看_checkpointManager設置headerRoot的地方functionsubmitCheckpoint(bytescalldatadata,uintcalldatasigs)external{(addressproposer,uint256start,uint256end,bytes32rootHash,bytes32accountHash,uint256_borChainID)=abi
聲音 | 眼鏡蛇Cobra:今年Ledger表現超越Trezor 加密貨幣領域的技術必須保持創新:比特幣官方論壇Bitcoin.org持有人眼鏡蛇Cobra發推表示,今年Ledger的表現完全超越Trezor,令人難以置信。Trezor過去占據主導地位,但Ledger最近絕對在扼殺它。他們籌集7500萬美元的巨額投資,設計更好的時尚產品,與Blockchain合作,新推出Nano X,非常注重UX等。Cobra指出,創新才能成功。Trezor因為沒有創新被拋在后面。同樣的事情也會發生在加密貨幣上。技術必須永遠進步,否則就會消亡。[2019/1/8]
此變量最早在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等因子作為簽名內容,并遵循相關的最佳實踐,防止用戶資產的損失。
每個人都在期待以太坊合并事件,這一事件預計在9月15日發生。 有一個老生常談的話題:MEV,從三明治攻擊到剝削NFT賣家.
1900/1/1 0:00:00一人多錢包地址是加密世界的普遍現象,而賬號真實性則切實影響著加密世界的運轉。對普通用戶來說,坐擁數百乃至數千錢包地址的“羊毛黨”將他們的空投收益極大的稀釋,對項目方來說讓他們無法甄別出誰才是真正.
1900/1/1 0:00:00北京時間9月16日下午2點45分,以太坊共識機制從PoW工作量證明過渡到PoS權益證明,加密社區五年多來一直期待的“合并”歷史性壯舉終于順利完成了.
1900/1/1 0:00:00之前,我已經討論了為什么以太坊應該取消danksharding:4844andDone。在這里,我將更進一步說明,即使是最初的danksharding也太復雜了,現在我們應該專注于一個被遺忘的珍.
1900/1/1 0:00:00互聯網持續飛速發展,從未停下腳步。過去二十年中,互聯網的連接性實現了前所未有的提升,全球各地的人們都享受到了高速通信的福利,參與到各類互聯網公共論壇,與幾十億網友交流互動,并能在幾秒鐘內電子轉賬.
1900/1/1 0:00:00據《金融時報》報道,FTX旗下的風險投資部門FTXVentures將購買天橋資本30%的股權,該資本是由前白宮通訊主任AnthonyScaramucci所創立,自去年開始大舉進軍加密市場.
1900/1/1 0:00:00