DEATHStr memulai dengan awal yang kacau. Sayangnya, saya melewatkan terburu-buru awal tetapi menemukan masalah yang diabaikan, yang saya ungkapkan kepada tim dan sekarang ditambal. DEATHStr dirancang untuk membeli NFT dan mendaftarkannya 20% lebih rendah, dengan tujuan menghancurkan lantai NFT untuk kepentingan DEATHStr itu sendiri (hasilnya digunakan untuk membeli dan membakar token). Namun, tidak ada penundaan atau mekanik lain untuk mencegah arb murni - siapa pun yang memegang Moonbird dapat secara efektif memanen 20% dari biaya kontrak kapan saja. Fungsi di atas cukup bagi setiap pemegang Moonbird untuk mengambil 20% dari biaya DEATHSTR yang tersedia secara atom dan bebas risiko. Secara berurutan, itu: - Menentukan biaya yang tersedia - membuat listingan Seaport untuk jumlah tersebut - memberi tahu DEATHSTR untuk membeli daftar itu - Membaca harga DEATHSTR mencantumkan NFT (harus diskon 20%) - Membeli kembali NFT Pengguna berakhir dengan NFT yang sama dengan yang mereka mulai, + beberapa ETH baru. Ini dapat dijalankan selama 'currentFees() * 0,2' keluar lebih dari gas untuk dieksekusi. Perbaikan yang disarankan: terapkan penundaan satu blok sebelum NFT dapat dibeli kembali dari DEATHSTR. Ini menghilangkan atomisitas dan membuatnya sehingga setiap NFT yang dijual ke protokol memiliki kesempatan yang adil untuk dibeli oleh siapa pun di dunia, jadi menjual di mana saja di bawah lantai tiba-tiba menjadi risiko, dan bahkan mungkin kerugian yang dijamin bagi pengguna. Untuk saat ini, tim baru saja menambahkan kontrol akses ke buyTargetNFT, jadi hanya alamat yang disetujui yang dapat memicu pembelian. Ini baik-baik saja jangka pendek tetapi ingin melihat solusi yang lebih terbuka dalam jangka panjang.
Saya akan menganggap ini lebih merupakan masalah naratif daripada masalah mekanis. DEATHSTR masih dibeli dan dibakar dengan cara yang sama, namun tidak ada lagi aspek apa pun yang dapat dianggap sebagai "serangan" di lantai nft. Faktanya, itu memutuskannya sepenuhnya dari koleksi yang ditargetkannya, selain fakta bahwa arbiter harus memegang nft dari koleksi target untuk memanen biaya.
15