پنج هک جالب توجه ارزهای رمزنگاری شده – قسمت پنجم
مترجم: اکرم سبزمکان
حمله DAO
در 17 ژوئن 2016، شخصی از حفره موجود در DAO سوءاستفاده کرد و یک سوم از بودجه DAO را که حدود 50 میلیون دلار بود، به سرقت برد. حفرهای که هکرها کشف کرده بودند، بسیار ساده بود.
اگر کسی بخواهد از DAO خارج شود، میتواند این کار را از طریق ارسال یک درخواست انجام دهد. سپس تابع جداسازی (splitting function) دو مرحله زیر را دنبال میکند:
- بازگرداندن اتر در مقابل مبادله با توکنهایDAOهای آنها
- ثبت مبادله در دفترکل و به روزرسانی بالانس توکن داخلی
کاری که هکرها انجام دادند این بود که تابع بازگشتی در درخواست ایجاد کردند و لذا تابع جداسازی به صورت زیر اجرا شد:
- دریافت توکنهایDAO از کاربر و دادن اتر درخواستی
- قبل از این که آنها بتوانند معامله را ثبت کنند، تابع بازگشتی کد را به عقب بازگرداند و حتی اتربیشتری را برای همان توکن DAO انتقال میدهد.
این امر تا زمانی که 50 میلیون دلار اتر خارج و در یک Child DAO ذخیره شد، ادامه داشت.
نکته: قبل از ادامه مقاله، بگذارید یک تمایز را روشن کنیم. این هک به دلیل مشکلی در DAO رخ داده است نه به دلیل وجود مشکل در خود اتریوم. اتریوم در پس زمینه اجرا میشود در حالی که DAO روی آن اجرا میشود.
همان طور که گوین وود (Gavin Wood) بنیانگذار اتریوم میگوید: «سرزنش اتریوم به خاطر هک شدن DAO، مانند این است که هر زمان که وبسایتی پایین میآید، بگوییم اینترنت شکست خورده است.»
پیامد
با اتفاق نظر جامعه اتریوم، در پایان، تصمیمی اتخاذ شد که بر پایه آن، یک سافت فورک به عنوان راهحل ارائه شود. با این کار نه تنها میتوان از قابلیت برگردان جانبی در مورد اتریوم بهره برد، بلکه میتوان حمله DAO را نیز به فراموشی سپرد. بااینحال توسعهدهندگان دریافتند که با ارائه یک سافت فورک احتمال حملات DDOS بیشتر خواهد شد. در پایان این اتفاق منجر به جداسازی دو نوع اتریوم شد. یکی اتریوم اصلی که با نام اتریوم کلاسیک از آن یاد میشود و دیگری اتریوم جدید.
منبع: blockgeeks