حملات ساندویچ در DeFi چیست و چگونه می توانید از آنها اجتناب کنید؟
- مجموعه: سرمایه های دیجیتالی
حملات ساندویچ؛ طعم تلخ کلاهبرداری در دنیای دیفای
دنیای امور مالی غیرمتمرکز (DeFi) فرصتهای زیادی را ارائه میدهد، اما در عین حال میتواند در برابر انواع حملات آسیبپذیر باشد. سوءاستفاده از قراردادهای هوشمند یک نگرانی دائمی است، مجرمان از آسیبپذیریهای کد DeFi سوءاستفاده میکنند و منجر به حملات وام فلش، کلاهبرداریهای rug pull و اخیراً حملات ساندویچی میشوند.
اگر تا به حال در مورد حملات ساندویچی چیزی نشنیدهاید، تنها نیستید، زیرا این حملات به اندازه کلاهبرداریهای rug pull رایج نیستند. اما حملات ساندویچی میتواند باعث ایجاد موقعیتهای بسیار مشکلساز در DeFi شود، به اندازهای جدی که ویتالیک بوترین، همبنیانگذار اتریوم، قبلاً در سال ۲۰۱۸ در مورد آنها هشدار داده بود.
وقتی صحبت از بردارهای حمله متعدد در فناوری میشود، درک مفهوم اولیه یک حمله و پیامدهای بالقوه آن بسیار مهم است. حمله ساندویچی که عمدتاً پروتکلها و پلتفرمهای DeFi را هدف قرار میدهد، میتواند عواقب قابل توجهی داشته باشد و منجر به دستکاری بازار شود.
مفهوم حمله ساندویچی
حملات ساندویچی در اصل نوعی از فرانترانینگ (front-running) هستند که عمدتا پروتکلها و سرویسهای امور مالی غیرمتمرکز (DeFi) را هدف قرار میدهند.
در یک حمله ساندویچی، یک معاملهگر مخرب به دنبال یک تراکنش در حال انتظار در شبکهای مانند اتریوم میگردد. ساندویچ کردن با ثبت یک سفارش درست قبل از معامله و یک سفارش درست بعد از آن انجام میشود. در واقع، مهاجم همزمان فرانترانینگ و بکرانینگ انجام میدهد و تراکنش اصلی در حال انتظار را در وسط قرار میدهد.
هدف از ثبت این دو سفارش و محاصره کردن تراکنشهای در حال انتظار، دستکاری قیمت داراییها است. ابتدا مجرم داراییای را که کاربر در حال تبدیل به آن است خریداری میکند (مثلاً برای تبدیل LINK به ETH) با این دانش که قیمت ETH افزایش مییابد. سپس، مجرم برای خرید ETH با قیمت پایینتر اقدام میکند تا به قربانی فرصت خرید با قیمت بالاتر را بدهد. در نهایت، مهاجم بعداً ETH را با قیمت بالاتری میفروشد.
ساندویچ کردن تراکنش بر میزان ETH دریافتی کاربر اولیه تأثیر میگذارد. از آنجایی که مجرم موفق شده سفارش خود را با قیمت مطلوبش پر کند، معامله بعدی با هزینه بالاتری انجام خواهد شد. این توالی باعث افزایش قیمت ETH میشود و به مجرم اجازه میدهد تا با فرانترانینگ و بکرانینگ یک معاملهگر و ایجاد افزایش قیمت مصنوعی، سود کسب کند.
عوامل مختلف در حملات ساندویچی
با توجه به توضیح بالا در مورد روش حمله ساندویچی، به نظر میرسد انجام این نوع حمله ساده است. در واقع، شاید انجام این نوع حمله بیش از حد آسان باشد. حتی اگر سود کم باشد، فرد میتواند بدون هیچ عواقبی از این روش به طور مکرر استفاده کند. با این حال، یک معاملهگر مخرب برای انجام یک حمله ساندویچی باید آمادگی خوبی داشته باشد. در امور مالی غیرمتمرکز پیچیدگیهای زیادی وجود دارد که باید در نظر گرفته شود و میتواند بر احتمال موفقیت تأثیر بگذارد.
اکثر حملات ساندویچی از طریق راهحلهای بازارساز خودکار (AMM) مانند یونیسواپ (Uniswap)، پنکیکسواپ (PancakeSwap)، سوشیسواپ (SushiSwap) و موارد مشابه انجام میشوند. الگوریتمهای قیمتگذاری آنها همواره تقاضای بالایی برای نقدینگی ایجاد کرده و معاملات به طور مداوم انجام میشوند. با این حال، نمیتوانید جنبه «لغزش قیمت» (price slippage) را فراموش کنید که زمانی رخ میدهد که حجم و نقدینگی دارایی تغییر کند.
معاملهگران همچنین با قیمت اجرای مورد انتظار، قیمت اجرای واقعی و نرخ لغزش غیرمنتظره روبرو هستند. این جنبهها میتوانند بر نرخهایی که فرد با آنها معامله میکند و میزان دارایی Y که در ازای دارایی X دریافت میکند، تأثیر بگذارند. تراکنشهای بلاکچین ممکن است زمان زیادی طول بکشد تا اجرا شوند و نرخهای تبادل بین داراییها میتوانند به شدت نوسان داشته باشند و منجر به لغزش قیمت غیرمنتظره بیشتری شوند.
حمله ساندویچی: دو سناریوی احتمالی
با در نظر گرفتن تمام موارد بالا، یک بازیگر مخرب میتواند حمله ساندویچی را به دو روش انجام دهد:
۱. تأمینکننده نقدینگی در مقابل گیرنده نقدینگی:
دیدن اینکه تأمینکنندگان نقدینگی مختلف به یکدیگر حمله کنند، غیرعادی نیست.
برای مثال، اگر یک گیرنده نقدینگی معمولی یک تراکنش AMM در حال انتظار روی بلاکچین داشته باشد، مجرم میتواند تراکنشهای بعدی (فرانترانینگ و بکرانینگ) را برای سود مالی ارسال کند. از آنجایی که استخر نقدینگی و جفت دارایی دارای سه تراکنش در حال انتظار است، ماینرها تصمیم میگیرند که کدام تراکنش ابتدا تأیید شود.
اگر مجرم هزینه تراکنش بالاتری نسبت به فرد دیگر بپردازد، احتمال بیشتری وجود دارد که تراکنش مخرب ابتدا انتخاب شود. این یک نتیجه تضمینی نیست، بلکه فقط نشان میدهد که تلاش برای انجام یک حمله ساندویچی چقدر میتواند آسان باشد.
۲. تأمینکننده نقدینگی در مقابل گیرنده نقدینگی:
یک تأمینکننده نقدینگی میتواند به روش بسیار مشابهی به یک گیرنده نقدینگی حمله کند. راهاندازی اولیه یکسان است، اگرچه این بار بازیگر مخرب باید سه کار را انجام دهد.
اول، آنها برای افزایش لغزش قربانی، نقدینگی را حذف میکنند (به عنوان یک روش فرانترانینگ). دوم، آنها نقدینگی را دوباره اضافه میکنند (بکرانینگ برای بازیابی تعادل اولیه استخر). سوم، آنها دارایی Y را با X معاوضه میکنند تا تراز دارایی X را به حالت قبل از حمله برگردانند.
خارج کردن نقدینگی قبل از انجام تراکنش قربانی، کارمزد تراکنش آن را باطل میکند. به طور معمول، تأمینکنندگان نقدینگی برای فعالیتی که در استخر انتخابی آنها رخ میدهد، کمیسیون کمی دریافت میکنند: اطمینان از اینکه کمیسیون اعطا نمیشود، میتواند به هر گیرندهای آسیب مالی وارد کند، البته به قیمت از دست دادن کمیسیون خود فرد.
آیا حملات ساندویچی ارزش تلاش را دارند؟
با وجود انگیزههای مالی آشکار برای انجام حملات ساندویچی، انجام این کار همیشه ممکن است ارزشمند نباشد. هزینه انجام این تراکنشها برای فرانترانینگ و بکرانینگ معاملهگران دیگر، اغلب بیشتر از سود مالی مهاجمان خواهد بود ، به خصوص هنگام استفاده از شبکه اتریوم که مرتباً هزینه تراکنش (به ازای هر تراکنش) را یادداشت میکند.
با این حال، یک حمله ساندویچی همچنان میتواند یک حمله سودآور باشد، اگر کمیسیونی که از «رفتار عادی» به دست میآید و هزینه تراکنش برای حمله ساندویچی کمتر از مقدار معامله قربانی باشد.
ظهور تجارت غیرمتمرکز از طریق بازارسازان خودکار همچنان برای هر کسی که از این سرویسها استفاده میکند، خطرناک است. یک حمله ساندویچی در هر لحظه میتواند رخ دهد. با جذب افراد بیشتر به سمت دیفای، فرصتهای بیشتری برای ضربه زدن مجرمان وجود خواهد داشت. این به این معنا نیست که در آینده حملات ساندویچی موفق بیشتری وجود خواهد داشت، اما موضوعی است که باید به خاطر بسپارید.
نحوه تشخیص و جلوگیری از حملات ساندویچی
تشخیص حمله ساندویچی در درجه اول شامل بررسی بلاکچین برای الگوهای خاص تراکنش است. این الگوها با یک تراکنش بزرگ که بلافاصله قبل و بعد از آن تراکنشهای کوچکتری وجود دارد، مشخص میشوند.
کلید کار شناسایی مواردی است که دو تراکنش کوچک وجود دارد، یکی بلافاصله قبل و دیگری بلافاصله بعد از یک تراکنش بسیار بزرگ، به خصوص در یک بازه زمانی کوتاه. این موضوع نشان می دهد که ممکن است یک مهاجم با ثبت سفارشات در اطراف یک تراکنش بزرگ برای سود بردن از نوسانات قیمت، بازار را دستکاری کند. برای ردیابی چنین فعالیتهایی به صورت بلادرنگ، اغلب از ابزارهای نظارت پیشرفته و الگوریتمها استفاده میشود، زیرا هنگام نظارت دستی بر بلاکچین، تشخیص آنها چندان آسان نیست.
علاوه بر این، نظارت بر نقدینگی داراییها و حجم و فرکانس معاملات میتواند بینش بیشتری در مورد اینکه آیا یک الگوی تراکنش بخشی از فعالیت عادی بازار است یا یک حمله احتمالی ارائه دهد، زیرا محیطهای با نقدینگی پایین اجرای حملات ساندویچی را آسانتر میکند.
حملات ساندویچی را میتوان با اقدامات زیر جلوگیری کرد:
• کاهش لغزش (Slippage): معاملهگران باید تحمل لغزش را کاهش دهند تا انگیزه مهاجمان برای سوءاستفاده از آربیتراژ (Arbitrage) در یک تراکنش از بین برود.
• استفاده از گردآورندههای DEX: گردآورندههای صرافیهای غیرمتمرکز (DEX) یک معامله واحد را در چندین استخر نقدینگی پخش میکنند و در نتیجه تأثیر قیمت را کاهش میدهند و فضای کمی برای سود مهاجمان باقی میگذارند.
• استقرار یک نقطه انتهایی RPC سفارشی: نقاط انتهایی RPC (Remote Procedure Call) کیف پول شما را به تراکنشهای زنجیرهای متصل میکند و برخی از آنها محافظت MEV (ارزش ماینینگ قابل استخراج) را ارائه میدهند.
نتیجهگیری
شکی نیست که افزایش نرخ حملات ساندویچی، گسترش سریع چالشهای امنیتی در حوزه امور مالی غیرمتمرکز (DeFi) را نشان میدهد. این موضوع خواستار اجرای اقدامات لازم برای مهار گسترش سوءاستفادههای استراتژیک است. در حالی که این موضوع هنوز مورد بازنگری قرار نگرفته است، کاربران دیفای تشویق میشوند تا خود را با این حملات آشنا کنند، به دقت مراقب باشند و از اقدامات حفاظتی ذکر شده برای جلوگیری از قربانی شدن استفاده کنند.
گردآوری:بخش سرمایه های دیجیتال بیتوته