背景信息
2022年?7月10號,一個火熱的NFT項目TheSaudis開啟了freemint活動。而就在mint活動結束后,一位名叫RIGHTBLOCK的用戶在市場上大量地拋售該NFT,項目方發現后迅速鎖定到了該用戶并對合約進行改動以此來將該用戶手里的大量NFT轉移回來,他們之后承諾會將這些NFT回饋給社區用戶。
那么為什么項目方可以將該用戶手里的NFT轉移呢?經過我們的分析發現該NFT項目的合約采用了EIP-2535協議也叫做鉆石協議,項目方利用該協議重寫了合約的功能,以此來實現這些NFT的轉移。接下來慢霧安全團隊將會為大家介紹下這個鉆石協議的細節。
Yield Protocol:已從 Euler Finance 遭攻擊影響中完全恢復:6月27日消息,固定利率借貸協議 Yield Protocol 宣布已從 Euler Finance 遭攻擊影響中完全恢復。3 月中旬,Euler Finance 遭到黑客攻擊,損失金額近 2 億美元,之后攻擊者歸還全部盜取資金。由于 Yield 的流動性提供者系統中的一些資金存放在 Euler 中,因此也受到了影響。[2023/6/28 22:04:12]
鉆石協議介紹
EIP-2535是以太坊上一個將合約進行代碼模塊化組合的提案,其目的是為了讓大型的智能合約突破24kb大小的最大限制,并且讓合約更方便地更新功能。
要理解鉆石協議,首先有幾個相關的概念定義需要知道:
應用研究機構 Other Internet 從 Uniswap 贈款計劃獲得 100 萬美元贈款:11月25日消息,應用研究機構 Other Internet 從 Uniswap 贈款計劃(Uniswap Grants Program,UGP)獲得 100 萬美元贈款,將用于在明年擴展其研究計劃并在 Uniswap 生態系統中進行新的治理實驗。
注,Other Internet 已于今年夏天完成對 Uniswap 鏈下治理和 Discord 社區的分析。[2021/11/25 7:10:00]
鉆石:鉆石可以理解為代理合約,也是與用戶進行交互的主合約
切面:正如真正的鉆石有不同的側面一樣,一個鉆石合約也有著不同的面,鉆石合約的每個功能所需要調用的合約對應一個切面,所以也可以理解為實現合約
Cosmos 創始人 Jae Kwon 從 AIB 及 ICF 基金會離職 全職開發 Gno 智能合約語言:Cosmos 創始人 Jae Kwon 宣布從 Cosmos 網絡軟件開發公司 AIB (All in Bits)及 The Interchain 基金會(ICF)離職,全職開發 Gno 智能合約語言。The Interchain 基金會是位于瑞士的非盈利基金會以支持 Cosmos 的生態建設,而 AIB 是負責開發 Cosmos 網絡的軟件開發公司,這意味著 Cosmos 創始人 Jae Kwon 將離開 Cosmos 生態中最核心的支持機構。Jae Kwon 表示,Gno 是適用于 Cosmos 生態的下一代的智能合約編程語言。[2021/2/15 19:47:00]
鉆石切割:鉆石協議標準擴展了一種叫鉆石切割的功能,其主要作用從鉆石中增加、替換或刪除切面和功能,可以理解為合約的升級
動態 | KARMA 從 EOS 離開轉到 WAX:近期,KARMA 宣布了它準備從 EOS 遷移到 WAX,因為他們團隊認為主網中仍存在一些問題,無法實現他們的目標。Karma 是 EOS 上第一個啟動的社交網絡應用,自發布以來就一直在推動著創新的,例如,他們創造了一種能為所有用戶支付 RAM 的方式,并且是 EOS 上第一個啟用“ We Pay CPU”的應用程序。讓他們想要離開 EOS 的問題如下:
1、BP 對 EIDOS 狀況和升級缺少溝通和反應
2、帳戶創建的成本(約在 2.8-10.5 元間)
3、CPU /帶寬的成本 -缺乏 WPS 功能
對于這個計劃的實施,所有當前的 KARMA 用戶將使用相同的公鑰和相同數量的 KARMA 代幣創建一個免費的 WAX 帳戶。這樣,用戶的過渡將非常簡單快捷,無需進行重大的更改。切換到 WAX 之后,EOS 上的所有 KARMA 代幣將被凍結,不再被使用。[2019/12/2]
放大鏡:鉆石協議標準中的放大鏡功能主要是返回關于切面的信息和鉆石存在的功能,這些信息是保存在鉆石合約內部的存儲結構——DiamondStorage中
整個鉆石模型類似下圖:
通過使用鉆石標準規范去創建鉆石合約,這個合約可以像使用當前合約的代碼一樣使用任何數量的其他切面合約的代碼。
在該鉆石合約中不同的函數功能需要調用對應的不同的切面合約的代碼來實現,并且可以利用鉆石切割的功能來對鉆石合約中的函數功能進行修改。
這與市面上大多數使用一個代理合約和一個實現合約來實現交互與升級的方式有所區別。
事件分析
接下來回頭分析下TheSaudis這次事件中的一些細節,在該項目的DiamondCutFacet.sol合約中,可以看到實現了diamondCut功能的函數。
該函數首先會調用LibDiamond庫的enforceIsContractOwner函數來判斷調用者是否是合約的owner,如果是owner調用的話會調用LibDiamond庫的diamondCut函數來實現鉆石合約的功能更新。
跟進到該函數我們發現鉆石切割會根據傳入的不同的action來判斷進行添加、替換或刪除功能,故接下來跟進看看項目方調用該函數的交易。
我們發現傳入了新的切面合約0x70d8ccaf6b50b051ab1e8fa238626163e45a8b03,傳入的action設置為1則應該是調用了replaceFunctions?來實現替換功能。
從replaceFunctions函數中可以分析出該函數首先會為傳入的地址新增一個切面,接著從存儲中循環讀取傳入的每個函數選擇器對應的舊的切面進行刪除,并為這些函數的切面添加為傳入的新的切面地址。
至此可得知TheSaudis項目方就是利用了鉆石切割函數來重寫了轉賬功能,以此來將用戶RIGHTBLOCK手中的NFT轉移回自己的賬戶。
相關信息
TheSaudis合約地址:
0xe21ebcd28d37a67757b9bc7b290f4c4928a430b1
用戶Rightblock地址:
0x80266b1e3f0C2cAdAE65A4Ef5Df20f3DF3707FfB
項目方更新合約的交易:
0xbc559a72f73e6c9a53416fd13a3ebaaa76dca5855ff8b79511585f514eaf2390
Tags:THEcosmosOSMOOSMEcho Of The Horizon3X Short Cosmos TokenOSMO幣COSMIK價格
雙碳目標已在全球各國達成共識,脫碳革命成為趨勢。ESG理念逐步深入人心,利用區塊鏈技術的創新來幫助應對氣候變化成為重要趨勢.
1900/1/1 0:00:00一只腳踏在工業時代,另一只腳踩在信息時代。 人類的搖籃 自古以來,智人一直是群居動物,他們自然地自我組織成群體,最終促進了個體之間的交流和資源共享.
1900/1/1 0:00:0021:00-7:00關鍵詞:Genesis、Otherdeed、英國央行、德意志銀行1.Genesis確認對三箭資本的風險敞口;2.
1900/1/1 0:00:00作者:Ivans 編者按:GBTC的套利玩法已不適用,即使BTC再度走牛,GBTC也難以回到從前的巔峰.
1900/1/1 0:00:00???首先看一下行情,昨天行情再次出現大跌,行情跌一度跌破1萬9,以太就更慘啦,直接掉到了1000以下!那么這個地方再次能不能抄底呢?這個問題很關鍵!???個人認為.
1900/1/1 0:00:00雖然期權交易是傳統金融中資深投資者的工具,但DOV可供所有類型的投資者使用,它代表了向大眾金融民主化邁出的重要一步.
1900/1/1 0:00:00