چشم انداز صنعت امور مالی غیرمتمرکز یا دیفای فرصتهای زیادی را ارائه میدهد، اما در همین حین میتواند مستعد انواع مختلف حملات هکری نیز باشد. سوء استفاده از قراردادهای هوشمند یک نگرانی همیشگی میان کاربران این حوزه است. مجرمان از آسیبپذیریهای موجود در کدهای دیفای برای اجرای حملات وامهای آنی (Flash Loan Attacks)، حملات راگ پول (Rug Pull) و حملات ساندویچی (Sandwich Attacks) استفاده میکنند. اگر تاکنون اسم حمله ساندویچی را نشنیدهاید نگران نباشید، زیرا نوع حمله به اندازهی دیگر انواع حملات مثل راگ پول شایع نیستند.
حملات ساندویچی میتوانند موقعیتهای بسیار مشکلسازی را در برنامههای دیفای ایجاد کنند. این مشکلات به اندازهای اهمیت دارند که ویتالیک بوترین، بنیانگذار اتریوم، در سال ۲۰۱۸ در مورد آنها به کاربران هشدار داد. وقتی صحبت از شاخصههای حملات حوزه فناوری میشود، درک مفهوم اصلی حمله و پیامدهای احتمالی آن بسیار مهم است. حمله ساندویچی که عمدتاً پروتکلها و پلتفرمهای دیفای را هدف قرار میدهد، میتواند عواقب قابل توجهی داشته باشد و حتی منجر به دستکاری بازار شود.
حمله ساندویچی چیست؟
در درونیترین لایه، حمله ساندویچ نوعی حمله پیشرو یا فرانت رانینگ (Front-Running) است که در درجه اول پروتکلها و نرمافزارهای خدماتی مالی غیرمتمرکز را هدف قرار میدهد. در یک حمله ساندویچی، یک معاملهگر خرابکار به دنبال یک تراکنش معلق یا در حال انتظار در شبکه مورد نظر خود، به عنوان مثال، شبکه اتریوم میگردد. حمله ساندویچی با قرار دادن یک سفارش درست قبل از معامله و یک سفارش درست بعد از آن اتفاق میافتد. در اصل، مهاجم به طور همزمان از پس و از پیش حمله میکند و تراکنش اصلی در بین آنها قرار میگیرد. هدف از قرار دادن این دو سفارش در اطراف معاملهی معلق، دستکاری قیمت داراییها است.
فرض کنید، کاربر میخواهد از لینک (LINK) برای مبادله اتریوم (ETH) استفاده کند. ابتدا، مجرم با آگاهی از افزایش قیمت اتریوم، داراییایی را که کاربر با آن مبادله میکند خریداری میکند. سپس، مجرم اتریوم را با قیمت کمتری خریداری میکند تا به قربانی اجازه دهد مقدار بیشتری خرید کند. حالا مهاجم اتریومهای خود را با قیمت بالاتری میفروشد. این تراکنش ساندویچی بر مقدار اتریومی که کاربر دریافت میکند تأثیر میگذارد. از آنجایی که خرابکار موفق شد تا سفارش را با قیمت دلخواه خود انجام دهد، معامله بعدی ارزش بیشتری خواهد داشت. این توالی معاملات باعث افزایش قیمت اتریوم میشود و به مجرم اجازه میدهد تا با مدیریت معاملات کاربر و افزایش مصنوعی قیمت، سود به جیب بزند.
عواملی تاثیرگذار در حملات ساندویچی
روش حمله ساندویچی باعث می شود که این نوع حمله ساده بهنظر برسد. در واقعیت، شاید انجام این نوع حمله بسیار آسان باشد. حتی اگر سود ناچیز باشد، میتوان از این روش به طور مکرر و بدون هیچ گونه عواقبی استفاده کرد. با این حال، یک معاملهگر مجرم باید برای انجام یک حمله ساندویچی به خوبی آماده باشد. پیچیدگیهای زیادی در صنعت امور مالی غیرمتمرکز وجود دارد که میتواند بر شانس موفقیت این گونه حملات تأثیر بگذارد.
اکثر حملات ساندویچی از طریق پروتکلهای بازارساز خودکار یا AMM انجام میشود. نمونههای قابل توجه این پروتکلها عبارتند از یونیسواپ (Uniswap)، پنکیکسواپ (PancakeSwap) و سوشیسواپ (Sushi). با توجه به الگوریتمهای قیمتگذاری این پلتفرمها، نقدینگی همیشه تقاضای بالایی دارد و معاملات در آنها به طور مداوم انجام میشود. با این حال، شما نمی توانید جنبه لغزش قیمت (Slippage) را نادیده بگیرد. اسلیپیج زمانی رخ میدهد که حجم و نقدینگی یک دارایی در بازار به علت نوسانات زیاد تغییر میکند.
علاوه بر این، معاملهگران همچنین قیمت اجرایی مورد انتظار (Expected Execution)، قیمت اجرای واقعی (Actual Execution) و نرخ لغزش غیرمنتظره را باید در نظر بگیرند. این عوامل میتوانند بر نرخهای معامله و میزان دارایی X که کاربر در ازای دارایی Y دریافت میکنند تأثیر بگذارند. اجرای تراکنشهای بلاکچین ممکن است مدتی طول بکشد و نرخهای مبادله داراییها میتواند به شدت در نوسان باشد و منجر به افت قیمت غیرمنتظره شود.
سناریوهای یک حمله ساندویچی
با در نظر گرفتن تمام موارد فوق، یک بازیگر بد میتواند به دو صورت حمله ساندویچی را انجام دهد.
دریافت کننده نقدینگی در مقابل دریافت کننده
خارج از تصور نیست که شاهد حمله دریافت کنندههای نقدینگی به یکدیگر باشیم. به عنوان مثال، اگر یک کاربر معمولی بازار یک تراکنش AMM معلق در بلاکچین داشته باشد، مهاجم میتواند تراکنشهای بعدی و قبلی آن را برای دریافت سود اجرا کند. از آنجایی که استخر نقدینگی و جفت دارایی دارای سه تراکنش معلق هستند، ماینرها تصمیم خواهند گرفت که کدام یک ابتدا تایید شود. اگر مهاجم هزینه تراکنش بالاتری را نسبت به فرد دیگر بپردازد، شانس بیشتری برای به انجام رساندن تراکنش خود دارد. این یک روند تضمین شده نیست، بلکه صرفاً یک نمونه برای توضیح این است که انجام یک حمله ساندویچی چقدر آسان قابل انجام است.
ارائه دهنده نقدینگی در مقابل دریافت کننده
یک تامین کننده نقدینگی میتواند به روشی بسیار مشابه به گیرنده نقدینگی حمله کند. اگرچه مهاجم این بار باید سه عمل را انجام میدهد، پیشفرضهای این ۲ نوع حمله یکسان است. اول آنها برای افزایش احتمال لغزش قربانی، نقدینگی را حذف میکنند. سپس، برای بازگرداندن تعادل اولیه استخر نقدینگی را مجدداً اضافه میکنند و در نهایت دارایی Y را با X مبادله میکنند تا تعادل دارایی X را به حالت قبل از حمله بازگردانند.
برداشت نقدینگی قبل از انجام معاملهی قربانی، کارمزد کمیسیون آن معامله را منتفی میکند. به طور معمول، ارائهدهندگان نقدینگی برای فعالیتهایی که در مجموعه آنها اتفاق میافتد، کارمزد کمی دریافت میکنند. اطمینان از عدم دریافت کمیسیون میتواند به هر گیرندهی نقدینگی صرف نظر از قیمت کارمزد دریافتی آنها آسیب مالی وارد کند.
آیا انجام حملات ساندویچی مقرون به صرفه است؟
با وجود انگیزههای مالی واضح برای حمله ساندویچی، انجام این کار ممکن است همیشه سودآور نباشد. هزینه انجام این تراکنشها برای معاملهگران دیگر غالباً بیشتر از سود مالی مهاجمان است. بهویژه زمانی که از شبکه اتریوم استفاده میکنند که هزینههای تراکنش (به ازای هر اقدام) را نسبتاً منظم یادداشت میکند. با این حال، یک حمله ساندویچی همچنان میتواند یک حمله سودآور باشد، اگر کمیسیون دریافتی از حالت عادی و همینطور هزینه تراکنش برای حمله ساندویچی از مبلغ معاملهی قربانی بیشتر باشد.
ظهور تجارت غیرمتمرکز از طریق سازندگان بازار خودکار همچنان خطراتی را برای هر کسی که از این خدمات استفاده میکند به همراه دارد. حمله ساندویچی ممکن است در هر لحظه رخ دهد. همانطور که دیفای کاربران بیشتری را جذب میکند، فرصتهای بیشتری را نیز برای مجرمان بوجود میآورد. این بدان معنا نیست که حملات ساندویچی بیشتری در آینده وجود خواهد داشت، اما این چیزی است که باید در نظر داشت.
نحوه محافظت در برابر حملات ساندویچی
برای AMMها، توسعه اقدامات متقابلی که قادر به محافظت از کاربران در برابر حملات ساندویچی باشند، بسیار مهم است. به عنوان مثال، پلتفرم ۱inch یک نوع سفارش جدید به نام “تراکنشهای فلشبات” را معرفی کرد که در mempool (حافظه استخر تراکنشهای در انتظار تایید) قابل مشاهده نیستند؛ زیرا هرگز در آن به نمایش گذاشته نمیشوند. در عوض، پلتفرم ۱ اینچ ارتباط مستقیمی با ماینرهای قابل اعتماد دارد تا تراکنشها را پس از استخراج، قابل مشاهده کند. تا به امروز، به نظر میرسد که این تنها راه برای محافظت کاربران از خود در برابر حمله ساندویچی باشد. با این حال، مشخص نیست که آیا سایر AMMها با ماینرها برای عدم انتشار تراکنشها همکاری خواهند داشت یا نه. راهحلهای دیگری ممکن است در آینده پیدا شود، اما احتمالاً مدتی طول خواهد کشید.
کلام آخر
حوزه دیفای مثل هر مفهوم دیگری، ویژگیهای مثبت و منفی دارد. همانطور که فرصتهای فوقالعادهای را برای کاربران بوجود میآورد، میتواند زمینه ساز انواعی از کلاهبرداریهای ارز دیجیتال نیز باشد که البته حملات ساندویچی از انواع کمتر رایج آنها است. این را همیشه در نظر داشته باشید که بالابردن سطح اطلاعات برای فعالیت در این حوزه امری لازم و ضروری است.
سوالات متداول
حمله ساندویچی چیست؟
حمله ساندویچ نوعی حمله پیشرو یا فرانت رانینگ است که در درجه اول پروتکلها و نرمافزارهای خدماتی مالی غیرمتمرکز را هدف قرار میدهد.
سناریوهای یک حمله ساندویچی چیست؟
دریافت کننده نقدینگی در مقابل دریافت کننده، ارائه دهنده نقدینگی در مقابل دریافت کننده
نکته: توجه داشته باشید این مقاله صرفا با هدف راهنمایی و آشنایی نوشته شده و آکادمی ارز دیجیتال اوکی ایکس مسئولیتی در مقابل تصمیمات افراد یا عواقب مالی آن ندارد.