背景信息
2022 年?7 月 10 号,一个火热的 NFT 项目 TheSaudis 开启了 freemint 活动(白名单用户可以免费铸造其 NFT)。而就在 mint 活动结束后,一位名叫 RIGHTBLOCK 的用户在市场上大量地抛售该 NFT,项目方发现后迅速锁定到了该用户并对合约进行改动以此来将该用户手里的大量 NFT 转移回来,他们之后承诺会将这些 NFT 回馈给社区用户。
那么为什么项目方可以将该用户手里的 NFT 转移呢?经过我们的分析发现该 NFT 项目的合约采用了 EIP-2535 协议也叫做钻石协议,项目方利用该协议重写了合约的功能,以此来实现这些 NFT 的转移。接下来慢雾安全团队将会为大家介绍下这个钻石协议(EIP-2535)的细节。
EIP-2535 是以太坊上一个将合约进行代码模块化组合的提案,其目的是为了让大型的智能合约突破 24kb 大小的最大限制,并且让合约更方便地更新功能。
ZEC重回230美元关口:火币全球站数据显示,ZEC短线上涨,突破230美元关口,现报230.11美元,日内跌幅达到15.86%,行情波动较大,请做好风险控制。[2021/4/19 20:33:55]
要理解钻石协议,首先有几个相关的概念定义需要知道:
钻石(diamond): 钻石可以理解为代理合约(Proxy),也是与用户进行交互的主合约
切面(facet): 正如真正的钻石有不同的侧面一样,一个钻石合约也有着不同的面,钻石合约的每个功能所需要调用的合约对应一个切面,所以也可以理解为实现合约 (Implementation)
钻石切割(diamondCut): 钻石协议标准扩展了一种叫钻石切割的功能,其主要作用从钻石中增加、替换或删除切面和功能,可以理解为合约的升级 (Upgrade)
放大镜(The Loupe): 钻石协议标准中的放大镜功能主要是返回关于切面的信息和钻石存在的功能,这些信息是保存在钻石合约内部的存储结构——DiamondStorage 中
整个钻石模型类似下图:
数据:XRP今日开始向上突破,XRP4L 24小时涨178.83%:MXC抹茶交易数据,XRP短线突破0.36USDT,24小时涨45.18%。XRP4L 24小时涨178.83%,报0.74USDT。买入XRP4L表示4倍做多XRP,卖出则表示平仓。
MXC抹茶现已支持XRP4L/4S、XRP3L/3S相关ETF交易对。MXC抹茶杠杆ETF是锚定现货涨跌幅的永续杠杆产品,采用再平衡风控,自动复利,无需保证金,无爆仓规则,仓位利用率更高,近期MXC抹茶对杠杆ETF交易深度和交易体验进行了大幅优化。[2021/1/7 16:40:29]
通过使用钻石标准规范去创建钻石合约,这个合约可以像使用当前合约的代码一样使用任何数量的其他切面合约的代码。
在该钻石合约中不同的函数功能需要调用对应的不同的切面合约的代码来实现,并且可以利用钻石切割的功能来对钻石合约中的函数功能进行修改(添加、替换或删除)。
这与市面上大多数使用一个代理合约和一个实现合约来实现交互与升级的方式有所区别。
事件分析
接下来回头分析下 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
标签:NFTAMOdiamondAmonNFTM币DIAMONDHANDSBNB DiamondWrapped Bitcoin Diamond
随着2022年上半年的结束,比特币已经锁定了历史上最糟糕的月度价格表现之一。在过去的30天里,比特币的价格下跌了37.9%,仅次于2011年的熊市,成为历史上最糟糕的月份之一。就规模而言,2011年时,BTC的价格在10美元以下。 本周比特币价格进行了盘整,消化了本月的损失,并在2017年2万美元的历史高点附近保持了稳定的交易区间。
原文作者: Keiran Flynn 创作者:Hahaho 审核者:DAOctor 原文: The Tokenization of Energy 链上能源是超乎寻常的。来源: Chameleon 我们需要着眼于我们星球以外的新解决方案来解决气候危机问题。为了扭转全球变暖,首先需要解决的能源生产问题。
随着Terra 生态系统的崩溃、以及加密领域重要参与者(BlockFi、Celsius 和 3AC)的暴雷我们正在经历着史无前例的“加密寒冬”。然而,不在逆境中消亡就在逆境中爆发,在这个特殊时期,区块链从业者们若能将危机视为一次高难度的挑战,积极应对,相信很快便会守得云开见月明。
金色财经报道,据北京时间7月6日晚间消息,以太坊Sepolia测试网已完成合并。 这是以太坊主网合并前的测试工作之一,Sepolia测试网是运行PoW的Ethash算法的测试网,其使用的EVM版本是London升级的版本。 在合并执行前,Sepolia测试网优先推出了Bepolia许可信标链,获得批准的各方可以成为Bepolia运行验证器。
外媒消息指出,迪士尼已将 Polygon、Flickplay、Lockerverse、Inworld、Obsess和Red 6列为参与其以Web3为重点的加速器计划的公司。 迪士尼宣布了一项为Web3初创公司启动加速器的计划,该项目是一个商业和发展项目,旨在激励世界各地的创新公司的发展。这家全球娱乐巨头表示,该计划将针对专注于打造沉浸式体验未来的项目。
北京时间2022年7月6日18:18:26和2022年7月6日上午18:37:59,一个假冒的Shade Inu Token项目部署者从流动性池中移除大量的流动性。 该假冒的Shade Inu Token部署者移除了大约10.1万美元(424 BNB)的流动性。