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

慢雾科技Dipublikasikan tanggal 2022-07-12Terakhir diperbarui pada 2022-07-12

Abstrak

2022 年 7 月 10 号,一个火热的 NFT 项目 TheSaudis 开启了 freemint 活动(白名单用户可以免费铸造其 NFT)。

背景信息

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

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

钻石协议介绍

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

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

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

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

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

放大镜(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

Bacaan Terkait

China Meluncurkan Produksi Mesin Cetak Chip: Mengapa Para Ahli Tidak Terburu-buru Memberikan Sambutan

Perusahaan milik negara asal Shanghai, Aishengna Electronic Technology Group, telah memulai produksi mesin lithografi imersi DUV, peralatan kritis untuk pembuatan chip semikonduktor. Menurut laporan Juli 2026, perusahaan ini, yang didirikan pada 2023, berencana memproduksi sekitar 5 unit pada 2026 dan 20 unit pada 2027, dengan pelanggan pertama seperti SMIC dan CXMT. Namun, para ahli menyatakan skeptisisme. Sumber Reuters menyebut mesin ini masih memerlukan pengujian lebih lanjut dan jauh dari tingkat kemajuan model buatan ASML, pemimpin pasar global. Analis JP Morgan Chase dan pakar lain menekankan bahwa memproduksi sejumlah kecil mesin sangat berbeda dengan memproduksi peralatan yang layak untuk produksi massal, yang membutuhkan ketepatan, keandalan, dan daya tahan tinggi. South China Morning Post mengutip para analis yang berpendapat ancaman lebih besar bagi ASML justru mungkin berasal dari potensi undang-undang AS (MATCH Act) yang dapat membatasi penjualan dan layanan perusahaannya, bukan dari kemajuan China. Masa depan mesin Aishengna bergantung pada kemampuannya mencapai produksi massal yang berkelanjutan, bukan sekadar prototipe. Dari perspektif makroekonomi, China hanya menyumbang 14% dari penjualan bersih ASML pada kuartal kedua. Pola historis juga menunjukkan bahwa perkembangan China di bidang lithografi, seperti prototipe EUV di Shenzhen pada 2025, seringkali membutuhkan waktu bertahun-tahun untuk beralih dari tahap laboratorium ke produk massal. Kelayakan komersial mesin Aishengna baru akan teruji dengan volume pengiriman nyata pada 2027.

cryptonews.ru51m yang lalu

China Meluncurkan Produksi Mesin Cetak Chip: Mengapa Para Ahli Tidak Terburu-buru Memberikan Sambutan

cryptonews.ru51m yang lalu

Keputusan Penting Fed Akan Berlangsung Besok! Apa Harapan? Mungkin Tidak Seakhir Seperti Sebelumnya!

Besok, Federal Reserve (Fed) akan mengumumkan keputusan penting mengenai suku bunga pada pukul 21:00. Pasar memperkirakan kemungkinan suku bunga tetap tidak berubah sebesar 80%, sementara peluang kenaikan 25 basis points sekitar 19%. Fed telah mempertahankan suku bunga acuan di kisaran 3,50–3,75% sejak Desember. Kenaikan harga energi dan komentar keras dari beberapa pejabat Fed baru-baru ini telah meningkatkan kemungkinan kenaikan suku bunga di pasar berjangka. Namun, data inflasi yang lebih rendah dari perkiraan dan meredanya ketegangan militer antara AS dan Iran menunjukkan bahwa ambang batas untuk kenaikan suku bunga minggu ini mungkin lebih tinggi daripada yang diperkirakan pasar. Para ekonom mencatat bahwa jika Fed menaikkan suku bunga setelah jeda yang lama, hal ini tidak akan dilihat sebagai tindakan satu kali. Secara historis, ketika Fed memulai siklus kenaikan atau penurunan suku bunga, mereka biasanya melanjutkan tren yang sama dalam beberapa pertemuan berikutnya. Oleh karena itu, kenaikan potensial dapat ditafsirkan sebagai sinyal kuat bahwa kenaikan lebih lanjut mungkin menyusul di masa depan, meskipun diyakini para pejabat Fed belum siap untuk serangkaian kenaikan beruntun. James Bullard, mantan Presiden Federal Reserve Bank of St. Louis, juga menyatakan bahwa Fed biasanya tidak melakukan perubahan suku bunga satu kali. Ia menambahkan bahwa komite kebijakan moneter perlu memutuskan apakah mereka siap memulai serangkaian kenaikan, dan menurutnya, "Saya tidak berpikir mereka siap untuk melakukannya dalam pertemuan ini."

cryptonews.ru1j yang lalu

Keputusan Penting Fed Akan Berlangsung Besok! Apa Harapan? Mungkin Tidak Seakhir Seperti Sebelumnya!

cryptonews.ru1j yang lalu

Posisi Long Bitcoin Senilai $134 Juta 'Menguap' saat Harga BTC Jatuh di Bawah $63.000 Menjelang Rapat Penting Fed

Harga Bitcoin (BTC) turun tajam pada Selasa, sempat menyentuh level terendah di bawah $63.000 sebelum sedikit pulih dan diperdagangkan di sekitar $63.660. Penurunan ini menyebabkan likuidasi posisi long (beli) senilai $134 juta yang didanai dengan leverage di pasar derivatif, sementara posisi short (jual) yang dilikuidasi bernilai $22 juta. Secara total, likuidasi terkait BTC melebihi $156 juta. Meski mengalami kerugian bulanan 4%, Bitcoin tetap berada di jalur untuk mencatatkan keuntungan bersih pada Juli, membalikkan tren penurunan dari Juni. Namun, pekan terakhir Juli ini dianggap kritis untuk menentukan tren pasar pada paruh kedua tahun 2026. Para ahli menyoroti beberapa faktor kunci yang akan mempengaruhi pasar: pertemuan Komite Pasar Terbuka Federal Reserve (FOMC), data indeks inti Pengeluaran Konsumsi Pribadi (PCE), serta laporan pendapatan dari raksasa teknologi seperti Apple, Microsoft, dan Amazon. Mike McCloskey, pakar pasar, menekankan bahwa konferensi pers Ketua Fed Kevin Warsh akan memberikan sinyal penting mengenai pandangan bank sentral terhadap inflasi dan kemungkinan pelonggaran kebijakan moneter. McCloskey menambahkan bahwa kombinasi data PDB kuartal II yang solid dan penurunan inflasi inti PCE dapat mendukung narasi disinflasi dan memberi ruang bagi Fed untuk mempertahankan suku bunga. Skenario ini berpotensi mendorong Bitcoin menuju kisaran $68.000-$70.000 pada Agustus. Sebaliknya, data yang lebih kuat dari perkiraan atau retorika 'hawkish' dari Fed, ditambah dengan hasil perusahaan yang mengecewakan, dapat mendorong BTC kembali ke kisaran $58.000-$60.000. Pasar telah menunggu selama enam minggu, dan pekan ini akan menentukan apakah kesabaran itu terbayarkan.

cryptonews.ru2j yang lalu

Posisi Long Bitcoin Senilai $134 Juta 'Menguap' saat Harga BTC Jatuh di Bawah $63.000 Menjelang Rapat Penting Fed

cryptonews.ru2j yang lalu

Trading

Spot
活动图片