从 The Saudis 事件浅析 EIP-2535 钻石协议_NFT:LIVENFT价格

背景信息

2022年?7月10号,一个火热的NFT项目TheSaudis开启了freemint活动。而就在mint活动结束后,一位名叫RIGHTBLOCK的用户在市场上大量地抛售该NFT,项目方发现后迅速锁定到了该用户并对合约进行改动以此来将该用户手里的大量NFT转移回来,他们之后承诺会将这些NFT回馈给社区用户。

那么为什么项目方可以将该用户手里的NFT转移呢?经过我们的分析发现该NFT项目的合约采用了EIP-2535协议也叫做钻石协议,项目方利用该协议重写了合约的功能,以此来实现这些NFT的转移。接下来慢雾安全团队将会为大家介绍下这个钻石协议的细节。

A股收盘:深证区块链50指数上涨1.61%:金色财经消息,A股收盘,上证指数报3251.4点,收盘下跌0.44%,深证成指报11647.94点,收盘上涨0.12%,深证区块链50指数报3448.45点,收盘上涨1.61%。区块链板块收盘上涨1.25%,数字货币板块收盘上涨1.03%。[2023/3/27 13:28:49]

钻石协议介绍

EIP-2535是以太坊上一个将合约进行代码模块化组合的提案,其目的是为了让大型的智能合约突破24kb大小的最大限制,并且让合约更方便地更新功能。

要理解钻石协议,首先有几个相关的概念定义需要知道:

钻石:钻石可以理解为代理合约,也是与用户进行交互的主合约

切面:正如真正的钻石有不同的侧面一样,一个钻石合约也有着不同的面,钻石合约的每个功能所需要调用的合约对应一个切面,所以也可以理解为实现合约

彭博社:Huobi和KuCoin允许使用俄罗斯受制裁银行发行的借记卡进行交易:2月25日消息,据数字资产数据分析公司Inca Digital发布的报告,Huobi和KuCoin仍然允许人们使用Sberbank等受制裁的俄罗斯银行发行的借记卡进行加密交易。

Inca Digital首席执行官Adam Zarazinski在接受采访时表示,这可能违反了美国和欧洲的制裁政策,交易通常涉及USDT。俄罗斯人经常利用USDT将资金转移到国外。

孙宇晨、KuCoin以及Tether的代表没有立即回应置评请求。(彭博社)[2023/2/26 12:29:45]

钻石切割:钻石协议标准扩展了一种叫钻石切割的功能,其主要作用从钻石中增加、替换或删除切面和功能,可以理解为合约的升级

放大镜:钻石协议标准中的放大镜功能主要是返回关于切面的信息和钻石存在的功能,这些信息是保存在钻石合约内部的存储结构——DiamondStorage中

欧易Web3钱包将于Aptos主网上线24H内完成接入:据官方消息,欧易Web3钱包将于Aptos主网正式上线后24小时内率先完成接入,是首个支持Aptos主网的异构多链钱包。用户可通过App和插件端Web3钱包管理个人资产。

据悉,欧易Web3钱包是最全面的异构多链钱包,包含数字货币钱包、DEX、NFT 市场、DApp探索4大板块,用户无需手动配置即可在欧易Web3钱包查看、管理个人链上资产。[2022/9/29 6:01:52]

整个钻石模型类似下图:

GameStop正式推出NFT市场:金色财经报道,GameStop的NFT市场在Immutable X上上线,该平台使用Immutable X第二层扩展协议构建,将提供来自主要web3游戏的数字资产。GameStop的市场将提供Immutable X游戏的资产,如Gods Unchained、Guild of Guardians和Illuvium,以及其他web3游戏。(The Block)[2022/11/1 12:03:01]

通过使用钻石标准规范去创建钻石合约,这个合约可以像使用当前合约的代码一样使用任何数量的其他切面合约的代码。

在该钻石合约中不同的函数功能需要调用对应的不同的切面合约的代码来实现,并且可以利用钻石切割的功能来对钻石合约中的函数功能进行修改。

这与市面上大多数使用一个代理合约和一个实现合约来实现交互与升级的方式有所区别。

游戏驿站涨超13%:金色财经报道,数据显示,游戏驿站(GME.US)涨超13%,报101.105美元。该公司周一表示,将为NFT和加密货币推出数字钱包。公司将其新钱包描述为自我托管的以太坊钱包。该钱包的网络浏览器扩展插件可以从Chrome Web Store下载。[2022/5/26 3:41:58]

事件分析

接下来回头分析下TheSaudis这次事件中的一些细节,在该项目的DiamondCutFacet.sol合约中,可以看到实现了diamondCut功能的函数。

该函数首先会调用LibDiamond库的enforceIsContractOwner函数来判断调用者是否是合约的owner,如果是owner调用的话会调用LibDiamond库的diamondCut函数来实现钻石合约的功能更新。

跟进到该函数我们发现钻石切割会根据传入的不同的action来判断进行添加、替换或删除功能,故接下来跟进看看项目方调用该函数的交易。

我们发现传入了新的切面合约0x70d8ccaf6b50b051ab1e8fa238626163e45a8b03,传入的action设置为1则应该是调用了replaceFunctions?来实现替换功能。

从replaceFunctions函数中可以分析出该函数首先会为传入的地址新增一个切面,接着从存储中循环读取传入的每个函数选择器对应的旧的切面进行删除,并为这些函数的切面添加为传入的新的切面地址。

至此可得知TheSaudis项目方就是利用了钻石切割函数来重写了转账功能,以此来将用户RIGHTBLOCK手中的NFT转移回自己的账户。

相关信息

TheSaudis合约地址:

0xe21ebcd28d37a67757b9bc7b290f4c4928a430b1

用户Rightblock地址:

0x80266b1e3f0C2cAdAE65A4Ef5Df20f3DF3707FfB

项目方更新合约的交易:

0xbc559a72f73e6c9a53416fd13a3ebaaa76dca5855ff8b79511585f514eaf2390

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

ICP纵横币海:比特币以太坊行情分析2022.7.10_MECH:ECH

投资上只有一个方向,不是做多,也不是做空,只有做对的方向。我是纵横币海,一个愿陪你东山再起的朋友。一个人能有多大的成就,要看他有谁指点。希望我能是你的伯乐,陪你度难关,与你共进退.

[0:0ms0-1:132ms