توسعه دهنده نرم افزار | علاقه مند به بلاکچین و سیستم های توزیع شده و رمزنگاری | دانشجوی پزشکی
حمله SleepMinting چیست و چگونه اصالت NFT ها را تهدید میکند؟
توکن های غیرمثلی یا همون NFT ها در واقع یک سری قراردادهای هوشمند ERC-721 هستند که مالکیت اون ها در یک زمان در دست یک آدرس شبکه است. فرض کنید سه آدرس مجزای صاحب چندین NFT داریم که اینجا برای راحتی کار، از اسامی به جای آدرس استفاده میکنیم. state فرضی ما اینگونه خواهد بود:
Alice: 1
Booble: 2
Malory: 3
در یک فروش معمولی و سالم، Alice یک توکن برای Booble ارسال میکند. بنابراین state اینگونه خواهد شد:
Alice:
Booble: 3
Malory: 3
در طراحی قراردادهای ERC-721 به طور کلی قاعده طراحی smart-contract به این صورت هست که هر اکانت در شبکه توانایی ارسال NFT هایی رو داره که صاحب اون ها هست (ownership). این در واقع حالتیست که توسط توسعه دهنده های smart-contract پیاده میشه تا هر اکانت ثالثی قادر به دستکاری و فراخوانی توابع یا ارسال توکن های تحت مالکیت صاحب اون قرارداد نباشه.
حالا اگر توسعه دهنده ها این قاعده رو بر هم بزنن چی؟
ماشین مجازی اتریوم قاعده ای برای تشخیص smart-contract های خوب یا بد نداره و هر قرارداد هوشمندی که با موفقیت روی شبکه دیپلوی بشه، طبق دستوراتی که برای اون تعریف شده برای همیشه عمل میکنه.
در پیاده سازی یک قرارداد ما عموما با استفاده از مفهوم ownership قابلیت دسترسی به یک سری توابع مهم (مثل تابع خالی کردن موجودی قرارداد یا تابع انتقال ownership) رو محدود میکنیم تا یک آدرس/آدرسهای خاص بتونن به اون توابع دسترسی داشته باشن.
همین موضوع میتونه باعث بشه قابلیت جعل اصالت NFT ها فراهم بشه. وقتی NFT ها مینت میشن، در واقع توسط آدرس 0 (address(0)) ایجاد شده و بعد ownership به نام اکانت مینت کننده زده میشه.
با ویرایش اینترفیس ERC-721 میتونیم برای یک اکانت دیگه NFT مینت کنیم که تراکنش مینت کردن به صورت زیر خواهد بود:
mint 1: address(0) ===> Booble (executed by Malory)
اینجا مالوری به عنوان یه bad-actor یه NFT برای بوبل مینت میکنه. در حالی که صدا زننده قرارداد هوشمند مالوری بوده، اما از طریق ویرایش اینترفیس ERC-721، مالکیت NFT برای Booble خواهد بود.
حالا فرض کنید این بوبل، همون beeple خالق اثر "Everydays - The First 5000 Days" هست. حمله کننده میتونه از طریق یه قرارداد هوشمند یه NFT برای beeple مینت کنه و داخل قرارداد، به اکانت خودش اجازه انتقال این NFT رو بده. حمله گر به راحتی از طریق sleepminting با استفاده از اعتبار و محبوبیت beeple، میتونه یک NFT جعلی درست کنه و بفروشه...
source: https://timdaub.github.io/2021/04/22/nft-sleepminting-beeple-provenance/
مطلبی دیگر از این انتشارات
پیشرفت Meta در توسعه فناوری متاورس؛ سرویس NFT اینستاگرام در صد کشور راهاندازی شد!
مطلبی دیگر از این انتشارات
چگونه بر روی ارزهای دیجیتال سرمایه گذاری کنیم؟
مطلبی دیگر از این انتشارات
پیش پردازش داده در داده کاوی