火星链 火星链
Ctrl+D收藏火星链

tether:从The Saudis NFT事件浅析EIP-2535钻石协议

作者:

时间:1900/1/1 0:00:00

背景信息

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

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

4亿枚USDT从Tether Treasury转出至未知地址:Whale Alert数据显示,北京时间2月17日21:56,4亿枚USDT从Tether Treasury转出至TCTrwC开头的未知地址 ,交易哈希为:8f2edb3f68f1d77b2d290551a2746509f0bf21094d2c44fa44d77aa18a52fd35。[2021/2/17 17:24:44]

EIP-2535是以太坊上一个将合约进行代码模块化组合的提案,其目的是为了让大型的智能合约突破24kb大小的最大限制,并且让合约更方便地更新功能。要理解钻石协议,首先有几个相关的概念定义需要知道:钻石:钻石可以理解为代理合约,也是与用户进行交互的主合约切面:正如真正的钻石有不同的侧面一样,一个钻石合约也有着不同的面,钻石合约的每个功能所需要调用的合约对应一个切面,所以也可以理解为实现合约钻石切割:钻石协议标准扩展了一种叫钻石切割的功能,其主要作用从钻石中增加、替换或删除切面和功能,可以理解为合约的升级放大镜:钻石协议标准中的放大镜功能主要是返回关于切面的信息和钻石存在的功能,这些信息是保存在钻石合约内部的存储结构——DiamondStorage中整个钻石模型类似下图:

1900万枚USDT从Tether Treasury钱包转入交易所:据WhaleAlert数据显示,北京时间08月02日15:44,1900万枚USDT从Tether Treasury钱包转入交易所,按当前价格计算,价值约1901.4万美元。[2020/8/2]

通过使用钻石标准规范去创建钻石合约,这个合约可以像使用当前合约的代码一样使用任何数量的其他切面合约的代码。在该钻石合约中不同的函数功能需要调用对应的不同的切面合约的代码来实现,并且可以利用钻石切割的功能来对钻石合约中的函数功能进行修改。这与市面上大多数使用一个代理合约和一个实现合约来实现交互与升级的方式有所区别。

1500万枚USDT从Tether Treasury钱包转入Huobi交易所:据WhaleAlert数据显示,北京时间07月12日16:56,1500万枚USDT从Tether Treasury钱包转入Huobi交易所,按当前价格计算,价值约1504.5万美元。[2020/7/12]

事件分析

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

1100万枚USDT从Tether Treasury钱包转入Binance交易所:据WhaleAlert数据显示,北京时间05月14日07:33,1100万枚USDT从Tether Treasury钱包转入Binance交易所,按当前价格计算,价值约1104.7万美元。[2020/5/14]

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

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

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

从replaceFunctions函数中可以分析出该函数首先会为传入的地址新增一个切面,接着从存储中循环读取传入的每个函数选择器对应的旧的切面进行删除,并为这些函数的切面添加为传入的新的切面地址。至此可得知TheSaudis项目方就是利用了钻石切割函数来重写了转账功能,以此来将用户RIGHTBLOCK手中的NFT转移回自己的账户。相关信息

TheSaudis合约地址:0xe21ebcd28d37a67757b9bc7b290f4c4928a430b1用户Rightblock地址:0x80266b1e3f0C2cAdAE65A4Ef5Df20f3DF3707FfB项目方更新合约的交易:0xbc559a72f73e6c9a53416fd13a3ebaaa76dca5855ff8b79511585f514eaf2390

标签:THEREAtetherUSDthegardenofedenBreakoutTether CNHUSDS币

以太坊最新价格热门资讯
区块链:桑坦德银行巴西分行计划提供加密货币交易服务

Odaily星球日报译者|余顺遂据当地媒体FolhadeS.Paulo报道,西班牙银行业巨头桑坦德集团的巴西子公司BancoSantanderS.A.正在考虑为其客户推出加密货币交易服务.

1900/1/1 0:00:00
GEM:GEM Digital「壕」投背后:一场隐蔽而离奇的砸盘游戏

在加密市场陷于疲软、风投机构纷纷放缓投资频次之际,一家新兴风投机构以高频的投资速度、夸张的投资金额吸引行业的颇多关注,它就是GEMDigital.

1900/1/1 0:00:00
BEAM:Moonbeam创始人解读多链新概念Connected Contract

日前,Moonbeam创始人Derek受邀参加RiRi的直播。点击观看视频回放,以下为直播内容精选:Moonbeam&Moonriver构建初衷Moonbeam致力于构建一个针对开发者的.

1900/1/1 0:00:00
POW:浅析以太坊分叉Token的价值与成功概率

摘要在这篇文章中,我们讨论了以太坊合并时分裂出新链,从而产生一个ETH2Token和一个新的ETHPoWToken的可行性.

1900/1/1 0:00:00
PLAN:新项目|Planet:绑定ENS的Web3个人网站

TL,DR近期Odaily星球日报发现一个有趣的Web3个人站平台Planet:它是基于ENS与IPFS的去中心化的产品,能够帮助用户建立个人网站与聚合推送文章.

1900/1/1 0:00:00
DAP:从L1链旋转理论,回顾上一轮加密牛市周期

原文来源:ChainLinkGod原文编译:ChinaDeFi 牛市优化叙事,熊市优化基本面。虽然这种说法过于笼统,但它可以作为参与者在不同市场环境下应该如何思考和反应的基本逻辑.

1900/1/1 0:00:00