背景信息
2022 年?7 月 10 號,一個火熱的 NFT 項目 TheSaudis 開啟了 freemint 活動(白名單用戶可以免費鑄造其 NFT)。而就在 mint 活動結束后,一位名叫 RIGHTBLOCK 的用戶在市場上大量地拋售該 NFT,項目方發現后迅速鎖定到了該用戶并對合約進行改動以此來將該用戶手里的大量 NFT 轉移回來,他們之后承諾會將這些 NFT 回饋給社區用戶。
那么為什么項目方可以將該用戶手里的 NFT 轉移呢?經過我們的分析發現該 NFT 項目的合約采用了 EIP-2535 協議也叫做鉆石協議,項目方利用該協議重寫了合約的功能,以此來實現這些 NFT 的轉移。接下來慢霧安全團隊將會為大家介紹下這個鉆石協議(EIP-2535)的細節。
Juno Network 發布向從 Terra 遷移至 Juno 上項目提供激勵的提案:5月15日消息,Cosmos 生態智能合約公鏈 Juno Network 發布向從 Terra 遷移至 Juno 上項目提供激勵的提案。該提案建議提供 100 萬枚 JUNO(社區池提供 70 萬,發展基金提供 30 萬),用于項目遷移和持續開發,且該部分資金將由多簽地址管理。[2022/5/15 3:17:19]
EIP-2535 是以太坊上一個將合約進行代碼模塊化組合的提案,其目的是為了讓大型的智能合約突破 24kb 大小的最大限制,并且讓合約更方便地更新功能。
要理解鉆石協議,首先有幾個相關的概念定義需要知道:
鉆石(diamond): 鉆石可以理解為代理合約(Proxy),也是與用戶進行交互的主合約
bant.io公司宣布將從 2021 年第四季度開始接受加密貨幣支付服務:金色財經報道,一家 B2B 多合一的潛在客戶生成和銷售加速服務公司bant.io在一份聲明中宣布,它將從 2021 年第四季度開始接受加密貨幣支付服務。bant.io 創始人 Andrei Breaz 在接受采訪時解釋說:在過去五年中,我們創新了 B2B 潛在客戶生成,同時提供了業內最靈活的付款計劃之一。現在,通過接受除法定貨幣之外的加密貨幣,我們打算為我們的客戶提供更加靈活和無縫的支付流程,這也將滿足行業不斷增長的需求。
bant.io 為世界各地的公司制定個人和獨特的戰略,以實現其銷售目標并帶來新的業務線索。(live bitcoin news)[2021/10/4 17:22:48]
切面(facet): 正如真正的鉆石有不同的側面一樣,一個鉆石合約也有著不同的面,鉆石合約的每個功能所需要調用的合約對應一個切面,所以也可以理解為實現合約 (Implementation)
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]
鉆石切割(diamondCut): 鉆石協議標準擴展了一種叫鉆石切割的功能,其主要作用從鉆石中增加、替換或刪除切面和功能,可以理解為合約的升級 (Upgrade)
動態 | 2千萬枚 USDT從 Tether Treasury轉至 Bitfinex交易所:據 Whale Alert監測,剛剛2千萬枚 USDT從 Tether Treasury轉至 Bitfinex交易所。[2019/7/4]
放大鏡(The Loupe): 鉆石協議標準中的放大鏡功能主要是返回關于切面的信息和鉆石存在的功能,這些信息是保存在鉆石合約內部的存儲結構——DiamondStorage 中
整個鉆石模型類似下圖:
通過使用鉆石標準規范去創建鉆石合約,這個合約可以像使用當前合約的代碼一樣使用任何數量的其他切面合約的代碼。
在該鉆石合約中不同的函數功能需要調用對應的不同的切面合約的代碼來實現,并且可以利用鉆石切割的功能來對鉆石合約中的函數功能進行修改(添加、替換或刪除)。
這與市面上大多數使用一個代理合約和一個實現合約來實現交互與升級的方式有所區別。
事件分析
接下來回頭分析下 The Saudis 這次事件中的一些細節,在該項目的 DiamondCutFacet.sol 合約中,可以看到實現了 diamondCut 功能的函數。
該函數首先會調用 LibDiamond 庫的 enforceIsContractOwner 函數來判斷調用者是否是合約的 owner,如果是 owner 調用的話會調用 LibDiamond 庫的 diamondCut 函數來實現鉆石合約的功能更新。
跟進到該函數我們發現鉆石切割會根據傳入的不同的 action 來判斷進行添加、替換或刪除功能,故接下來跟進看看項目方調用該函數的交易。
我們發現傳入了新的切面合約 0x70d8ccaf6b50b051ab1e8fa238626163e45a8b03(未開源),傳入的 action 設置為 1 則應該是調用了 replaceFunctions ?來實現替換功能。
從 replaceFunctions 函數中可以分析出該函數首先會為傳入的地址新增一個切面,接著從存儲中循環讀取傳入的每個函數選擇器對應的舊的切面進行刪除,并為這些函數的切面添加為傳入的新的切面地址。
至此可得知 The Saudis 項目方就是利用了鉆石切割函數來重寫了轉賬功能,以此來將用戶 RIGHTBLOCK 手中的 NFT 轉移回自己的賬戶。
相關信息
The Saudis 合約地址:
0xe21ebcd28d37a67757b9bc7b290f4c4928a430b1
用戶 Rightblock 地址:
0x80266b1e3f0C2cAdAE65A4Ef5Df20f3DF3707FfB
項目方更新合約的交易:
0xbc559a72f73e6c9a53416fd13a3ebaaa76dca5855ff8b79511585f514eaf2390
Tags:COSMTHEcosmosCOSCOSMICtogetherbnb可以推到的有誰3X Long Cosmos TokenCOSHI價格
NFT為什么要和實體商品結合?當NFT形成一種熱潮時,我們不禁會思考,今后的世界是完全數字化的世界嗎?這種猜想在早期似乎會成為現實.
1900/1/1 0:00:00撰文:Sleepy 最近幾條關于 NFT IP 授權的新聞扎堆出現,讓很多人終于開始關注這一賽道。在這幾天,有的無聊猿被掛到「人才市場」,有的無聊猿則穿上了新的系列套裝.
1900/1/1 0:00:007月7日,Uniswap Labs在社交媒體向用戶征求NFT產品功能意見,這預示著Uniswap 的NFT交易業務進入上線倒計時.
1900/1/1 0:00:00撰文:Julian 原文標題及鏈接:《十余家Web3獨角獸場外估值下跌50%,熊市一級市場也疲軟了》很多有潛力的項目其實都是在熊市底部孕育的,從過往周期來看,有九成的項目都會倒在熊市當中.
1900/1/1 0:00:00對沖基金億萬富翁 Alan Howard 一直在悄悄打造一個龐大且不斷增長的數字資產帝國,其中包括基于加密貨幣的問答游戲、賽馬 NFT 和專注于隱私的項目.
1900/1/1 0:00:00從 2020 年開始,整個加密貨幣市場經歷了一波巨大的牛市,這波牛市浪潮也讓很多賽道和熱點下的資產獲得了巨大的漲幅,不乏千倍幣甚至萬倍幣.
1900/1/1 0:00:00