حمله DAO ۲۰۱۶؛ درسهای امنیت و انشعاب در تاریخ اتریوم
حمله تاریخی به DAO در سال ۲۰۱۶؛ درسهای امنیتی و تأثیرات انشعاب در تاریخ بلاکچین و اتریوم
حمله تاریخی DAO در ۲۰۱۶، درسهای امنیتی، انشعاب شبکه، تاثیرات در اتریوم، هاردفورک و امنیت بلاکچین را بررسی میکند.

در بهار سال ۲۰۱۶، پروژه The DAO (سازمان خودمختار توزیعشده) بر بستر بلاکچین اتریوم راهاندازی شد. هدف اصلی این پروژه ایجاد یک شرکت سرمایهگذاری مخاطرهپذیر بود که قوانین و فرآیندهای تصمیمگیری آن به صورت کدهای برنامهنویسی تعریف شده و خودکار باشد، و نیاز به مستندات و نهادهای حاکم بر آن حذف گردد. این پروژه در زمان خود به عنوان یکی از نخستین تلاشهای جمعسپاری و پروژههای برجسته در بستر اتریوم شناخته شد و توانست حدود ۱۵۰ میلیون دلار اتر (ETH) جمعآوری کند.
با این حال، کمتر از سه ماه پس از راهاندازی، The DAO مورد هک قرار گرفت و حدود ۶۰ میلیون دلار اتر سرقت شد. این حادثه، یکی از بزرگترین بحرانهای امنیتی در تاریخ رمزارزها محسوب میشود و تأثیر قابل توجهی بر اعتماد سرمایهگذاران و آینده پروژههای مبتنی بر قراردادهای هوشمند داشت.
منظور سازمان خودمختار توزیعشده (DAO) چیست؟
پس از وقوع خسارت بزرگ، جامعه اتریوم (Ethereum) تصمیم گرفت تا با انجام هارد فورک، وضعیت شبکه را به حالت قبل از هک بازگرداند و وجوه سرقتشده را به سرمایهگذاران بازگرداند. این اقدام منجر به تعطیلی DAO و بازسازی شبکه شد. اما در میان اعضای جامعه اتریوم، نظرات متفاوتی درباره این هارد فورک وجود داشت، که در نتیجه منجر به انشعاب شبکه و ایجاد دو زنجیره بلاکچین مجزا شد: اتریوم (Ethereum) و اتریوم کلاسیک (Ethereum Classic).
DAO یا سازمان خودگردان توزیعشده، در اصل یک سازمان مبتنی بر بلاکچین است که توسط گروهی از افراد با هدف مشترک تشکیل میشود. برخلاف سازمانهای سنتی که ساختار مدیریت متمرکز دارند، قوانین DAOها به صورت کد و قراردادهای هوشمند نوشته و اجرا میشوند. این نوع سازمانها بر اساس فناوری بلاکچین، از رویکرد حکمرانی دموکراتیک بهره میبرند، بهطوریکه ذینفعان و سرمایهگذاران در تصمیمگیریهای کلان رأی میدهند. هدف اصلی DAOها، تحقق کنترل و مدیریت غیرمتمرکز در داخل سازمان است.
برای راهاندازی یک DAO مؤثر، توسعهدهندگان قراردادهای هوشمند نوشته و آنها را برای مدیریت و اداره پلتفرم طراحی میکنند. سپس دوره تأمین مالی اولیه آغاز میشود، در طی آن افراد با خرید توکنهای پروژه از طریق عرضه اولیه سکه (ICO) یا فروش جمعی، منابع مالی لازم را تامین میکنند. پس از پایان دوره تأمین مالی، DAO فعالیت خود را آغاز میکند و اعضا میتوانند با رأیگیری، پیشنهادات و تصمیمات مربوط به پروژه را تصویب کنند.
نکته مهم این است که توکنهای خریداریشده در یک DAO، سهام حقوقی نیستند، بلکه نوعی مشارکت است که به دارندگان امکان رأیدادن میدهد، بدون اینکه مالکیت واقعی در آن سازمان داشته باشند. به عنوان نمونه، DAO که توسط استارتاپ آلمانی اسلاک.آیت (Slock.it) راهاندازی شد، یک سازمان خودگردان مبتنی بر بلاکچین بود که هدف آن ساخت قفلهای هوشمند برای اشتراکگذاری املاک، قایقها و خودروها بود؛ شبیه نسخه غیرمتمرکز Airbnb.
تاریخچه مختصر هک داو
در سال 2015، جامعه نوپای اتریوم (Ethereum) ایده شکلگیری «دیاِیاو» (The DAO) را مطرح کرد. هدف از این پروژه، ایجاد سازوکاری برای هماهنگی تلاشهای انسانی بر پایه اجرای کدهای قابلاثبات، یعنی قراردادهای هوشمند، و تصمیمگیری غیرمتمرکز در چارچوب پروتکلهای جامعه بود. در سال 2016، تقریباً یک سال پس از راهاندازی شبکه اصلی اتریوم، دیاِیاو به طور رسمی در تاریخ ۳۰ آوریل همان سال راهاندازی شد. این پروژه به عنوان یک صندوق سرمایهگذاری غیرمتمرکز و کنترلشده توسط جامعه اتریوم، طراحی شده بود و اعضای آن میتوانستند با واریز اتریوم (ETH) در فرآیندهای سرمایهگذاری مشارکت کنند.
پس از موفقیت اولیه، اعضای جامعه اتریوم شروع به خرید توکنهای دیاِیاو کردند و ETHهای خود را به عنوان سرمایهگذاری در صندوق واریز نمودند. این صندوق، داراییهای جمعآوریشده را بر اساس تصمیمگیریهای جمعی، در پروژههای مختلف سرمایهگذاری میکرد. با توجه به نو بودن قراردادهای هوشمند و دیاِیاوها، این پروژه توانست توجه زیادی را جلب کند و نزدیک به ۱۵۰ میلیون دلار ETH از بیش از ۱۱ هزار عضو جمعآوری کند. این میزان سرمایهگذاری، بزرگترین جمعسپاری در تاریخ اتریوم محسوب میشود و فراتر از انتظار سازندگان آن بود.
با گسترش فعالیتهای دیاِیاو، نگرانیهایی درباره آسیبپذیری کدهای آن در برابر حملات سایبری مطرح شد. این نگرانیها پس از پایان دوره جمعآوری سرمایه، شدت یافت. در تاریخ ۱۲ ژوئن، یکی از بنیانگذاران دیاِیاو، استفان توال (Stephan Tual)، اعلام کرد که در نرمافزار این پروژه، حفرهای از نوع recursive call وجود دارد که خطری جدی برای سرمایهها ندارد. در آن زمان، دارندگان توکنهای دیاِیاو در حال بررسی بیش از ۵۰ پیشنهاد پروژه بودند.
در تاریخ ۱۷ ژوئن ۲۰۱۶، تنها شش روز پس از اعلام وجود حفره، یک هکر با نفوذ به سیستم، حملهای سایبری علیه دیاِیاو راهاندازی کرد و توانست حدود ۱۵۰ میلیون دلار ETH را از قرارداد هوشمند این پروژه سرقت کند. تا روز ۱۸ ژوئن، هکر موفق شد بیش از ۳.۶ میلیون ETH را به «دیاِیاو فرزند» (Child DAO) منتقل کند که ساختاری مشابه دیاِیاو داشت. او مدعی شد اقدام او در چهارچوب قوانین و مقررات قضایی است و نمیتوان علیه او اقدام قانونی انجام داد، چرا که این اقدام با بهرهگیری از یک حفره در سیستم بوده است.
در حالی که حمله صورت گرفت، هکر باید ۲۸ روز منتظر میماند تا بتواند ETHهای سرقتشده را برداشت کند. هرگونه تلاش برای برداشت از دیاِیاو فرزند، زنگ هشدارها را به صدا درمیآورد و ریسک کشف عملیات را افزایش میداد.
نحوه حمله هکر به پلتفرم مورد حمله
در حملهای که بهعنوان یکی از نمونههای معروف در تاریخ هکهای بلاکچین شناخته میشود، هکر از یک خلأ در قرارداد هوشمند The DAO (دِیاِیاو) بهرهبرداری کرد. این حمله که به نوع «reentrancy» معروف است، از قابلیتهای خاص تابع fallback در Solidity، زبان برنامهنویسی قراردادهای هوشمند، سوءاستفاده میکند.
در این حمله، هکر ابتدا یک قرارداد هوشمند مخرب راهاندازی میکند که نقش «سرمایهگذار» را ایفا میکند و مقدار مشخصی اتریوم (ETH) در The DAO واریز میکند. سپس با فراخوانی تابع withdraw، این قرارداد درخواست برداشت اتریوم میکند، که در نتیجه تابع fallback فعال میشود. این تابع ممکن است خالی باشد یا حاوی کد مخرب، اما در هر صورت مقدار ETH را دریافت میکند.
با اجرای تابع fallback، فرآیند برداشت در قرارداد The DAO مجدداً شروع میشود، و این حلقه تا زمانی ادامه مییابد که عملیات انتقال ETH کامل شود. در هر بار اجرای تابع withdraw، قرارداد The DAO مقدار ETH معادل واریزی هکر را به حساب او منتقل میکند، اما در عین حال وضعیت موجودی هکر در قرارداد بهروز نمیشود تا عملیات انتقال کامل گردد.
مشکل این است که تراکنش انتقال ETH نمیتواند کامل شود، مگر زمانی که تابع fallback بهدرستی اجرا و خاتمه یابد. بنابراین، در این حالت، قرارداد The DAO بدون کاهش موجودی هکر، مقدار ETH بیشتری را به حساب او واریز میکند، و در نتیجه داراییهای این پروژه در قالب ETH بهسرعت تخلیه میشود.
پاسخ به حمله هکری به DAO
پس از اعلام حمله سایبری به The DAO، سرمایهگذاران این پروژه در وضعیت بحرانی قرار گرفتند و نظارهگر برداشت بیوقفه داراییهای خود از پلتفرم بودند. این هک، نه تنها اعتماد سرمایهگذاران به The DAO بلکه اعتبار شبکه اتریوم (Ethereum) را نیز به شدت زیر سوال برد. در پی این رخداد، ذینفعان پروژه به بحث و تبادل نظر درباره راهکارهای مقابله با این حمله پرداختند.
در ادامه، تیمی متشکل از هکرهای «وایتهت» (whitehat) شکل گرفت تا تلاش کند حمله را متوقف و وجوه باقیمانده سرمایهگذاران را نجات دهد. این تیم پیشنهاد داد با بهرهگیری از روشهای مشابه، مانند حملات reentrancy، روند تخلیه داراییها را سریعتر از مهاجم انجام دهد. در همین حال، سرمایهگذاران با استفاده از «اسپیسپادز» (escape pods) اقدام به خروج از پلتفرم کردند تا پیش از س siphoning داراییهایشان، آنها را حفظ کنند.
در مواجهه با این حمله، بنیاد اتریوم و تیم توسعهدهندگان DAO به بررسی راهکارهای توقف حمله و تضمین امنیت شبکه اتریوم و قراردادهای هوشمند آن پرداختند. چندین پیشنهاد در این زمینه مطرح شد که مهمترین آنها در ادامه بررسی میشود.
پیشنهاد نرمافزاری برای بهروزرسانی شبکه
در تاریخ ۱۷ ژوئن ۲۰۱۶، ویتالیک بوترین، بنیانگذار اتریوم، پیشنهاد اجرای یک نرمافزار سافتفورک (soft fork) برای شبکه اتریوم را مطرح کرد. در بیانیهای که منتشر شد، بوترین تأکید کرد که هکرها در حال حمله به پروژه «دیاِیاو» (The DAO) هستند و او راهحلی را طراحی کرده است که بر مبنای اجرای این سافتفورک استوار است، اما بدون امکان بازگشت یا برگرداندن تراکنشها و بلوکها.
در این فرآیند، قرار بود بخشی از کد در هسته اتریوم وارد شود تا هکر شناسایی و از انجام هرگونه جابجایی اتریوم از «دیاِیاو» و زیرمجموعههای آن جلوگیری کند. در نتیجه، میلیونها توکن که توسط هکر تصاحب شده بود، عملاً مسدود میشد.
پس از اطلاعرسانی درباره این پیشنهاد، فردی ناشناس در قالب نامهای سرگشاده به جامعه اتریوم و پروژه «دیاِیاُ» اعلام کرد که دریافت این توکنها بر اساس قرارداد هوشمند قانونی است و تهدید کرد که در صورت تلاش برای لغو این عملیات و بازگرداندن توکنهای دزدیدهشده، اقدام قانونی خواهد کرد.
علاوه بر این، فرد مذکور از طریق واسطهای در کانال Slack «دیاِیاُ» اعلام کرد که قصد دارد با رشوه دادن به ماینرهای اتریوم تا یک میلیون اتریوم (ETH) و ۱۰۰ بیتکوین (BTC)، مانع اجرای سافتفورک شود و شبکه اتریوم را به سمت انشعاب (split) سوق دهد. این ادعاها، وضعیت را پیچیدهتر کرد و چالشهای فنی در پیادهسازی این طرح را افزایش داد.
اما پیش از آنکه جامعه اتریوم بتواند اجرای سافتفورک را عملیاتی کند، یک نقص در کد بهروز رسانی کشف شد که آن را در برابر حمله آسیبپذیر مینمود. این موضوع منجر به پیشنهاد اجرای هاردفورک (hard fork) شد که در نهایت منجر به انشعاب شبکه و جدا شدن اتریوم کلاسیک (Ethereum Classic) از اتریوم اصلی گردید.
پیشنهاد اصلاح ساختار شبکه
پس از شکست نرمافزار اصلاح (soft fork)، توسعهدهندگان اتریوم پیشنهاد اجرای یک hard fork را دادند که میتوانست تاریخچه بلاکچین اتریوم را تغییر دهد. در حالی که تیم توسعهدهنده اتریوم توانایی اجرای این اصلاح را به تنهایی داشت، اما قدرت انحصاری برای اعمال آن در اختیار نداشت.
برای اجرایی شدن این تغییر، نهادهای مختلفی از جمله صرافیها، ماینرها و اپراتورهای نود باید رأی میدادند. پس از بحثهای گسترده در انجمنهای عمومی، در تاریخ ۲۰ ژوئیه ۲۰۱۶، hard fork در بلوک ۱۹۲،۰۰۰ اجرایی شد. این اصلاح عمدتاً تاریخچه شبکه اتریوم را به قبل از حمله به The DAO بازگرداند و Etherهای متعلق به The DAO را به قرارداد هوشمند جدیدی منتقل کرد تا سرمایهگذاران بتوانند داراییهای خود را برداشت کنند.
پاسخها به بروزرسانی سختافزاری
توسعه سختافزاری شبکه اتریوم (Ethereum) با واکنشهای منفی گستردهای در فضای رمزارز مواجه شد و جنجالآفرین شد، چرا که اصول اولیه بلاکچینها بر مقاومت در برابر سانسور و غیرقابل تغییر بودن استوار است. منتقدان این تغییر معتقد بودند که بنیاد اتریوم نباید در پروژههایی مانند The DAO (دیاِیاو) دخالت کند، زیرا این پروژهها باید زیرساختهای پایهای باشند که پروژهها و آزمایشهای مختلف بر آن شکل میگیرند.
برخی مخالفان توسعه سختافزاری ادعا کردند که این تغییر، تمرکززدایی و یکپارچگی بلاکچین اتریوم را تهدید میکند و نشان داد که پروژههایی مانند دیاِیاو میتوانند بر بنیانهای اصلی اتریوم تأثیرگذار باشند. در نتیجه، پس از اجرای این توسعه، دو شاخه جداگانه از بلاکچین اتریوم شکل گرفت؛ طرفداران توسعه جدید، بلاکچین اتریوم جدید را ایجاد کردند، در حالی که مخالفان آن، اتریوم کلاسیک (ETC) را راهاندازی کردند.
در پی این رویداد، سرمایهگذاران پس از اجرای توسعه، وجوه خود را بازپس گرفتند، اما مهاجم حمله همچنان داراییهای سرقتشده را در زنجیره اتریوم کلاسیک در اختیار داشت. بر اساس گزارشها، ارزش این داراییها در ماههای پس از حمله، حدود ۸.۵ میلیون دلار در ETC برآورد شد.
کلمات پایانی
حمله به DAO (دیاِیاو) به عنوان یک درس ارزشمند در حوزه بلاکچین و امنیت شبکههای توزیعشده محسوب میشود. این حمله عمدتاً ناشی از نقصهای موجود در قرارداد هوشمند DAO بود و ربطی به مشکل در زنجیرهبلوک اتریوم (Ethereum) نداشت. در واقع، DAO تمامی سرمایهها را در یک آدرس واحد اتریوم نگهداری میکرد و کد قرارداد هوشمند نیز حفرهای داشت که هکری هوشمند توانست از آن بهرهبرداری کند.
این رویداد، همچنین، اهمیت درسگیری از تصمیمات سرنوشتساز در حوزه توسعه بلاکچین را بهوضوح نشان داد. تصمیمگیریهای سخت و استراتژیک و همچنین رأیگیریهای جامعه اتریوم، بهویژه در زمان وقوع حمله و پس از آن، نقش کلیدی در ادامه حیات این شبکه داشتند. در نتیجه، پس از حمله، تیم توسعهدهندگان اتریوم و ویتالیک بوترین (Vitalik Buterin) تصمیم گرفتند زنجیرهبلوک را برای مقابله با آسیبها، بهوسیله هاردفورک، اصلاح کنند.
این رویداد، نقطه عطفی در تاریخ اتریوم محسوب میشود و منجر به تثبیت امنیت و پایداری بیشتر در توسعه پلتفرمهای مبتنی بر آن شد. هاردفورک پس از حمله، زمینهساز دورهای جدید در زنجیرهبلوک اتریوم شد که اعتماد و امنیت بیشتری برای توسعهدهندگان و کاربران فراهم آورد.
منبع: کریپتو.نیوز