宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 火币APP > 正文

从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的转移。接下来慢雾安全团队将会为大家介绍下这个钻石协议的细节。

数据:50,000,000枚USDT从Tether财政部转移到Bitfinex:金色财经报道,据Whale Alert数据显示,50,000,000枚USDT从Tether财政部转移到Bitfinex。[2022/8/21 12:38:20]

智能合约突破24kb大小的最大限制,并且让合约更方便地更新功能。

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

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

1.25亿枚USDT从Tether Treasury转出:金色财经报道,Whale Alert数据显示,北京时间12月25日02:20,1.25亿枚USDT从Tether Treasury转入TCTrwC开头未知钱包地址,随后于02:22转入TYDzsY开头未知钱包地址,交易哈希分别为:d7c50653ed142474c2c79a6bc0affd5a6b0775c00926adb3d05c8437d3144f46、735b5e95f4d5ec2ee912b71dfcda0bccda4acf830114d762697fbc601bd43ded。[2020/12/25 16:26:47]

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

500万枚USDT从Tether Treasury钱包转出:WhalAlert数据显示,北京时间5月4日20:02, 500万枚USDT从Tether Treasury钱包转入TJyf3b开头地址,按当前价格计算,价值约504.7万美元。[2020/5/4]

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

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

整个钻石模型类似下图:

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

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

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

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

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

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

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

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

标签:THENFTUSDtetherBABYTETHERFeisty Doge NFTusdp币盈利模式Mexican Peso Tether

火币APP热门资讯
Cloud Exchange上线BI的公告

尊敬的CloudExchange用户:CloudExchange即将上线BI/USDT交易对,详情如下:币种名称:BI币种全称:BITOKEN(币)发行量:750000000BI流通量:114808986BI充币时间:2021/12/.

1900/1/1 0:00:00
Cloud Exchange 锁仓最低数量调整的公告

尊敬的CloudExchange用户:CloudExchange关于锁仓最低数量调整的详情如下:调整日期:2022-04-06调整内容:最低锁仓30CDE数字广告提供商Permission宣布集成至Google Cloud Marke.

1900/1/1 0:00:00
Upbit运营商Dunamu拟在5年内投资约3.81亿美元,并创造1万个新工作岗位

7月12日消息,Upbit运营商Dunamu宣布将在未来5年内投资5000亿韩元,并在首尔总部和地区办公室创造1万个新工作岗位.

1900/1/1 0:00:00
關於新版API文檔上線

为了提供功能丰富的API接口和优化用户体验????,AAX发布了新版本的API文档。 優化 ●在最近24小時行情數據、獲取當前K線數據、獲取歷史K線數據restful接口以及訂閱Tickers數據和訂閱Kline數據websocket.

1900/1/1 0:00:00
BIKA关于新增域名的公告

尊敬的BIKA用户:为提高全球网站访问性能,给您提供更加安全、稳定、快速的网络访问服务,BIKA平台已完成网络环境的优化及升级,并正式启用新域名:www.bika.todayBiKi平台LIT.

1900/1/1 0:00:00
《百万FORT空投强力来袭》活动奖励发放完毕

《百万FORT空投强力来袭》活动奖励发放完毕亲爱的PEARCOIN用户:雪梨交易所《百万FORT空投强力来袭》活动已结束,已经对满足活动要求的全部有效用户发放奖励,您可在个人账户查看奖励明细.

1900/1/1 0:00:00