در تاریخ ۲۴ اکتبر، یک مهاجم با بهرهگیری از یک وام آنی (flash loan) توانست در یک تراکنش بلاکچینی واحد، دو کرسی حاکمیتی در پروژه X100 را به دست آورد، یک تراکنش خزانه را تأیید و وام خود را بازپرداخت کند. به طور مشابه، پروتکل وامدهی Arkadiko نیز قربانی یک نقص حاکمیتی شد که در آن یک رأیگیری پنج روزه، دو روز زودتر به نفع یک قرارداد مخرب پایان یافت. این دو حادثه، شکافهای امنیتی مهمی را در فرآیندهای حاکمیتی فضای دیفای به نمایش گذاشتند.
حمله به X100: کسب قدرت و سرقت در یک تراکنش
پروژه X100 دارای یک خزانه تحت حاکمیت «سنا» است. اگرچه توکنهای X100 باید برای یک سال قفل شوند، اما آسیبپذیری اصلی این بود که برای کسب صلاحیت رأیدهی، هیچ حداقل سنی برای توکنهای استیکشده وجود نداشت. این نقص به مهاجم اجازه داد تا قدرت رأیگیری فوری به دست آورد.
در این حمله، مهاجم با استفاده از دو قرارداد کمکی، هر کدام حدود ۱۹,۰۰۰ توکن X را برای یک سال قفل کرد. این اقدام به آنها اجازه داد تا فوراً وارد رتبهبندی سنا شده و با کسب دو کرسی از سه کرسی موجود، اکثریت لازم برای اقدام فوری را به دست آورند. آنها پیشنهاد شماره ۷ را تأیید و اجرا کردند.
این پیشنهاد مخرب، ۴۰۰,۰۰۰ توکن X از خزانه را به یک استخر نقدینگی که توسط مهاجم ایجاد شده بود، منتقل کرد و در ازای آن تنها ۳۵.۶۷ USDT به خزانه بازگردانده شد. مهاجم سپس توکنها را از استخر خارج کرد، آنها را فروخت و وام آنی تقریباً ۱.۹۴ میلیون USDT خود را بازپرداخت کرد. پس از بازپرداخت وام، حدود ۴.۷۵ میلیون USDT به کیف پول نهایی مهاجم واریز شد. تحلیلهای ChainBounty این مبلغ را ۴.۸۴۸ میلیون USDT تخمین زدهاند.
نکته کلیدی این بود که کل فرآیند - از گرفتن وام تا رأیگیری، اجرای پیشنهاد و بازپرداخت وام - در یک تراکنش واحد انجام شد، زیرا هیچ دوره انتظار یا قفل زمانی (timelock) اجباری پس از تأیید پیشنهاد وجود نداشت.
آسیبپذیری آرکادیکو: خرید رأی در لحظه آخر
در پروتکل Arkadiko، پیشنهاد مخرب شماره ۱۲ در تاریخ ۱۷ اکتبر ارائه شد و در ۲۲ اکتبر به اجرا درآمد. قوانین حاکمیتی به رأیدهندگان اجازه میدادند حتی پس از شروع رأیگیری، توکن خریداری کرده و در رأیگیری شرکت کنند.
مهاجم در تاریخ ۲۲ اکتبر، تنها چند دقیقه قبل از پایان رأیگیری، با پرداخت حدود ۵۱,۰۰۰ دلار، تقریباً ۴.۵۷۳ میلیون توکن حاکمیتی DIKO خریداری کرد و رأی خود را به ثبت رساند. این اقدام باعث شد پیشنهاد به حد نصاب برسد و بدون هیچ رأی مخالفی تصویب شود.
بلافاصله پس از بسته شدن رأیگیری، قرارداد مخرب فعال شد و مهاجم توانست داراییهای موجود در صندوقهای پروتکل، از جمله حدود ۷۸۰,۰۰۰ دلار stSTX و ۱۳۵,۰۰۰ دلار sBTC را برداشت کند. مجموع زیان Arkadiko حدود ۱.۰۹ میلیون دلار برآورد میشود.
درسهایی برای امنیت حاکمیت در دیفای
این دو حمله نشان میدهند که قفل کردن طولانیمدت توکنها یا دورههای رأیگیری طولانی به تنهایی کافی نیستند. راهحلهای کلیدی برای جلوگیری از چنین حملاتی شامل موارد زیر است:
۱. استفاده از اسنپشاتهای قدیمیتر برای قدرت رأیدهی: این کار مانع از آن میشود که توکنهای تازه خریداریشده فوراً واجد شرایط رأیدهی شوند.
۲. اجرای قفل زمانی (Timelock): ایجاد یک دوره انتظار اجباری بین زمان تأیید یک پیشنهاد و زمان اجرای آن. این مکانیزم میتوانست حمله وام آنی به X100 را غیرممکن سازد، زیرا مهاجم نمیتوانست در یک تراکنش واحد هم سرقت کند و هم وام را بازپرداخت نماید.
در پاسخ به این حمله، تیم Arkadiko قرارداد مخرب را غیرفعال و حاکمیت را متوقف کرد و بعداً با ارائه پیشنهاد جدیدی، عملیات عادی پروتکل را بازیابی نمود.
اطلاعات ارائه شده در این مقاله صرفاً برای اهداف اطلاعاتی و آموزشی است و نباید به عنوان مشاوره مالی، سرمایهگذاری یا حقوقی تلقی شود. ما توصیه میکنیم قبل از انجام هر گونه سرمایهگذاری، تحقیقات مستقل انجام دهید و با یک مشاور مالی یا حقوقی مشورت کنید.