حمله ساندویچی (Sandwich Attack) یکی از رایجترین روشهای کسب سود رباتها در صرافیهای غیرمتمرکز است که در آن، تراکنش شما بین دو تراکنش یک ربات محاصره میشود؛ یکی درست قبل و یکی درست بعد از آن. نتیجه این است که سواپ شما با قیمتی بدتر از قیمت نمایشدادهشده اجرا میشود و بخشی از ارزش معاملهتان به ربات میرسد.
اگر در یک صرافی غیرمتمرکز توکنی خریدهاید و مقدار دریافتی کمتر از انتظارتان بوده، ممکن است قربانی حمله ساندویچی شده باشید. این حمله زیرمجموعه MEV یا حداکثر ارزش قابل استخراج است و بیشتر کاربران متوجه آن نمیشوند.
در این مقاله با یک مثال عددی، سازوکار این حمله، نقش اسلیپیج در سواپ و راههای جلوگیری از حمله ساندویچی را توضیح میدهیم.
- حمله ساندویچی یعنی ربات تراکنش شما را بین یک خرید قبل و یک فروش بعد از آن محاصره میکند.
- این حمله ترکیبی از فرانت رانینگ و بک رانینگ و یکی از انواع حملات MEV است.
- هرچه حد اسلیپیج شما بالاتر باشد، فضای سود ربات ساندویچ بیشتر است.
- این حمله در صرافیهای غیرمتمرکز مبتنی بر بازارساز خودکار مثل یونیسواپ رخ میدهد؛ جایی که تراکنشها پیش از تایید دیده میشوند.
- حد اسلیپیج منطقی، ارسال تراکنش از ممپول خصوصی و تقسیم سفارشهای بزرگ، مهمترین راههای کاهش این آسیب هستند.
حمله ساندویچی چیست؟
در شبکههایی مثل اتریوم، تراکنش شما پیش از ثبت در بلاک چند ثانیه در صفی به نام ممپول (Mempool) میماند که برای همه قابل مشاهده است. رباتها این صف را بررسی میکنند و دور سواپهای بزرگ دو تراکنش خودشان را میچینند. اگر این سه تراکنش را به ترتیب اجرا کنار هم بگذارید، تصویر یک ساندویچ ساخته میشود: خرید ربات نان بالایی، سواپ شما لایه وسط و فروش ربات نان پایینی.
مستندات رسمی اتریوم (ethereum.org) حمله ساندویچی را یکی از روشهای رایج استخراج MEV میداند: جستوجوگر معامله بزرگی را در ممپول پیدا میکند، درست قبل از آن ارزان میخرد و درست بعد از آن، به قیمتی که همان معامله بالا برده، میفروشد. طبق همین منبع، کاربران ساندویچشده با اسلیپیج بیشتر و اجرای بدتر روبهرو میشوند.
حمله ساندویچی چطور کار میکند؟ گام به گام
فرض کنید میخواهید در یونیسواپ با تتر مقدار زیادی از یک توکن بخرید.
گام اول: شکار تراکنش در ممپول
سواپ شما از کیف پولی مثل متامسک به شبکه ارسال میشود و جزئیات آن، یعنی توکن، مقدار و حداقل مقدار قابل قبول، برای همه آشکار است. ربات با محاسبه اثر قیمتی سفارش شما تشخیص میدهد حمله سودآور است یا نه.
گام دوم: خرید جلوتر از شما
ربات همان توکن را پیش از شما میخرد و با پرداخت کارمزد بیشتر یا ارسال بسته تراکنش به سازنده بلاک، کاری میکند که تراکنشش زودتر ثبت شود. این خرید که فرانت ران نام دارد، قیمت توکن را در استخر نقدینگی بالا میبرد.
گام سوم: اجرای سواپ شما با قیمت بدتر
سفارش شما در استخری اجرا میشود که قیمتش بالا رفته است. تا وقتی مقدار دریافتی از حداقل تعیینشده کمتر نشود، تراکنش موفق است؛ اما توکن کمتری میگیرید و خرید شما قیمت را باز هم بالاتر میبرد.
گام چهارم: فروش پشت سر شما
ربات بلافاصله پس از شما، توکنهایی را که ارزان خریده بود گرانتر میفروشد؛ این بخش بک ران نام دارد. هر سه تراکنش معمولاً در یک بلاک و ظرف چند ثانیه انجام میشود.
نکته
حمله ساندویچی برای خود ربات هم خطر دارد. طبق ethereum.org، این حمله برخلاف آربیتراژ در یک تراکنش واحد انجام نمیشود و ربات ممکن است در دام توکنهایی بیفتد که برای فریب رباتها طراحی شدهاند.
مثال عددی حمله ساندویچی
استخری با فرمول بازارساز خودکار را در نظر بگیرید که ۱٬۰۰۰ اتر و ۲٬۰۰۰٬۰۰۰ تتر دارد؛ یعنی هر اتر ۲٬۰۰۰ تتر. شما با ۱۰۰٬۰۰۰ تتر اتر میخرید و حد اسلیپیج را ۳ درصد گذاشتهاید. برای سادهسازی، کارمزد استخر و گس را حساب نمیکنیم.
بدون حمله، حدود ۴۷٫۶۲ اتر میگیرید و میانگین قیمت خرید شما حدود ۲٬۱۰۰ تتر میشود، چون سفارش بزرگتان خودش قیمت را بالا میبرد. حداقل قابل قبول شما با حد ۳ درصد، حدود ۴۶٫۱۹ اتر است.
حالا ربات پیش از شما با ۳۰٬۰۰۰ تتر حدود ۱۴٫۷۸ اتر میخرد و قیمت را به حدود ۲٬۰۶۰ تتر میرساند. سفارش شما ۴۶٫۲۶ اتر برمیگرداند که هنوز بالاتر از حداقل شماست، پس تراکنش موفق میشود. سپس ربات اترهایش را حدود ۳۳٬۰۰۰ تتر میفروشد؛ یعنی سود ناخالص حدود ۳٬۰۰۰ تتر، و شما حدود ۱٫۳۶ اتر یا نزدیک ۲٫۹ درصد کمتر گرفتهاید.
| شاخص | بدون حمله | با حمله ساندویچی |
|---|---|---|
| خرید ربات پیش از کاربر | ندارد | ۳۰٬۰۰۰ تتر، حدود ۱۴٫۷۸ اتر |
| قیمت اتر هنگام اجرای سفارش کاربر | ۲٬۰۰۰ تتر | حدود ۲٬۰۶۰ تتر |
| اتر دریافتی کاربر با ۱۰۰٬۰۰۰ تتر | حدود ۴۷٫۶۲ اتر | حدود ۴۶٫۲۶ اتر |
| میانگین قیمت خرید کاربر | حدود ۲٬۱۰۰ تتر | حدود ۲٬۱۶۲ تتر |
| سود ناخالص ربات پیش از هزینهها | صفر | حدود ۳٬۰۰۰ تتر |
مثال عددی حمله ساندویچی در یک استخر فرضی
در دنیای واقعی، زیان شما دقیقاً برابر سود خالص ربات نیست؛ بخشی از این ارزش صرف گس، کارمزد استخر و مبلغی میشود که ربات برای جای گرفتن در بلاک به سازنده بلاک میپردازد.
نقش اسلیپیج در سواپ و حمله ساندویچی
اسلیپیج تفاوت قیمت مورد انتظار و قیمت اجرای واقعی است. در سواپ، با تعیین حد اسلیپیج (Slippage Tolerance) مشخص میکنید حاضرید حداکثر چند درصد بدتر از قیمت اعلامشده معامله کنید؛ اگر قیمت بیش از این حد بدتر شود، تراکنش لغو میشود.
همین عدد برای ربات ساندویچ نقشه راه است؛ ربات قیمت را تا جایی بالا میبرد که سفارش شما درست کمی بالاتر از این حد اجرا شود. در مثال بالا، با حد ۱ درصد سود ناخالص ربات به حدود ۱٬۰۰۰ تتر محدود میشد. پس اگر نتیجه سواپی تقریباً به اندازه کل حد اسلیپیج بدتر از پیشنمایش بود، به حمله ساندویچی مشکوک شوید.
| حد اسلیپیج | فضای مانور ربات در مثال ما | ریسک لغو شدن تراکنش |
|---|---|---|
| ۱ درصد | کم؛ خرید جلویی حدود ۱۰٬۰۰۰ تتر و سود ناخالص حدود ۱٬۰۰۰ تتر | بیشتر، بهویژه در بازار پرنوسان |
| ۳ درصد | متوسط؛ خرید جلویی حدود ۳۰٬۰۰۰ تتر و سود ناخالص حدود ۳٬۰۰۰ تتر | کمتر |
| ۱۰ درصد یا بیشتر | زیاد؛ ربات میتواند قیمت شما را تا همین اندازه بدتر کند | بسیار کم، اما زیان احتمالی بزرگ |
حد اسلیپیج و فضای مانور ربات ساندویچ
قانون
حد اسلیپیج را فقط به اندازه نیاز واقعی تنظیم کنید. برای جفتارزهای پرنقدینگی و استیبلکوینها معمولاً حد کم کافی است و حد بالا را فقط برای توکنهای پرنوسان، آن هم با سفارش کوچک، بگذارید.
حمله ساندویچی کجا رخ میدهد؟
حمله سندویچی در یونی سواپ و صرافیهای AMM
حمله ساندویچی در دیفای و بهویژه در صرافیهای مبتنی بر بازارساز خودکار (AMM) رخ میدهد. در این صرافیها بهجای دفتر سفارش، قیمت با فرمولی بر اساس موجودی استخر تعیین میشود؛ پس اثر هر سفارش قابل محاسبه است و ربات سودش را از قبل میسنجد. یونیسواپ شناختهشدهترین محل این حملات است، اما هر صرافی که با قرارداد هوشمند و ممپول عمومی کار میکند در معرض آن است.
حمله سندویچی کریپتو در سولانا و شبکههای دیگر
سولانا ممپول عمومی به سبک اتریوم ندارد، اما در اوایل ۲۰۲۴ ممپولی که شرکت Jito Labs راه انداخته بود به محل حملات ساندویچی گسترده تبدیل شد و این شرکت در مارس ۲۰۲۴ آن را تعطیل کرد. در ژوئن همان سال، بنیاد سولانا هم تعدادی از اعتبارسنجها را به دلیل مشارکت در حملات ساندویچی از برنامه واگذاری سهام خود کنار گذاشت.
کدام سواپها بیشتر هدف قرار میگیرند؟
سفارشهای بزرگ نسبت به نقدینگی استخر، توکنهای کمنقدینگی و میمکوینهایی که با عجله و اسلیپیج بالا خریده میشوند، هدفهای اصلیاند. با این حال طبق دادههای EigenPhi که کوینتلگراف در دسامبر ۲۰۲۵ منتشر کرد، حدود ۳۸ درصد حملات ساندویچی اتریوم از نوامبر ۲۰۲۴ تا اکتبر ۲۰۲۵ استخرهای کمنوسان شامل استیبلکوینها را هدف گرفته بودند.
ارتباط حمله ساندویچی با MEV و انواع حملات MEV
MEV سودی است که از گنجاندن، حذف یا تغییر ترتیب تراکنشها در بلاک به دست میآید. حمله ساندویچی ترکیبی از فرانت رانینگ، یعنی قرار گرفتن جلوتر از تراکنش قربانی، و بک رانینگ، یعنی قرار گرفتن درست پشت آن، است. منطقش شبیه رقابت سرعت در معاملات پرسرعت بازارهای سنتی است، با این تفاوت که اطلاعات از داده عمومی ممپول میآید.
مقاله پژوهشی Liyi Zhou و همکاران در سال ۲۰۲۰ (arXiv) از نخستین بررسیهای دقیق این حمله است و نشان داد یک مهاجم منفرد با حمله ساندویچی در یونیسواپ میتواند روزانه چند هزار دلار درآمد داشته باشد. البته همه انواع MEV مخرب نیستند؛ آربیتراژ قیمتها را بین صرافیها همسو میکند، اما حمله ساندویچی مستقیماً از کاربر برداشت میکند.
| نوع | جایگاه تراکنش ربات | اثر بر کاربر |
|---|---|---|
| فرانت رانینگ | قبل از تراکنش قربانی | قیمت بدتر یا شکست تراکنش |
| بک رانینگ | بعد از تراکنش قربانی | معمولاً اثر مستقیم ندارد |
| حمله ساندویچی | هم قبل و هم بعد از تراکنش قربانی | اسلیپیج بیشتر و دریافت توکن کمتر |
| آربیتراژ | مستقل از یک کاربر خاص | معمولاً بیضرر؛ قیمتها را همسو میکند |
| لیکوئیدیشن | پس از افت ارزش وثیقه وام | برای وامگیرنده هزینه دارد |
انواع حملات MEV و تفاوت آنها با حمله ساندویچی
طبق دادههای EigenPhi، ارزش ماهانه استخراجشده با حملات ساندویچی در اتریوم از نزدیک ۱۰ میلیون دلار در اواخر ۲۰۲۴ به حدود ۲٫۵ میلیون دلار در اکتبر ۲۰۲۵ رسید و حدود ۷۰ درصد حملات به یک بازیگر با نام jaredfromsubway.eth نسبت داده شد. یعنی این حمله کمتر شده، اما از بین نرفته است.
ربات ساندویچ چیست؟
ربات ساندویچ برنامهای خودکار است که ممپول را زیر نظر میگیرد، سود احتمالی هر سواپ را حساب میکند و تراکنشهای خرید و فروش را دور آن میچیند. رقابت این رباتها بسیار سخت است و طبق برآورد EigenPhi، میانگین سود هر حمله در اتریوم در سال ۲۰۲۵ کمی بیشتر از ۳ دلار بود.
همین موضوع دستمایه کلاهبرداری شده است. ویدئوهایی در یوتیوب وعده ربات MEV آماده با سود روزانه میدهند و از کاربر میخواهند از کیف پول داغ خود یک قرارداد هوشمند منتشر کند و به آن اتر واریز کند. شرکت امنیتی SentinelOne در اوت ۲۰۲۵ گزارش داد که آدرس مهاجم در کد این قراردادها پنهان است و یکی از این کمپینها بیش از ۹۰۰ هزار دلار برداشته؛ الگویی شبیه راگ پول.
هشدار
هرگز قرارداد هوشمندی را که کدش را نمیشناسید منتشر یا تامین مالی نکنید و عبارت بازیابی کیف پول را در اختیار هیچ ربات یا سایتی قرار ندهید. رباتی که سود ثابت از حمله ساندویچی وعده میدهد، معمولاً خودش دام است.
چطور بفهمیم قربانی حمله ساندویچی شدهایم؟
شناسه تراکنش سواپ خود را در کاوشگر بلاکی مثل Etherscan باز کنید و تراکنشهای همان بلاک را ببینید. اگر درست قبل از شما یک آدرس همان توکن را خریده و درست بعد از شما فروخته، الگوی ساندویچ را پیدا کردهاید. نشانه سادهتر این است که مقدار دریافتی تقریباً برابر حداقل قابل قبول شما باشد. ابزارهای تحلیل MEV مثل EigenPhi هم تراکنشهای ساندویچشده را برچسب میزنند.
جلوگیری از حمله ساندویچی؛ راهکارهای عملی
هیچ روشی بهتنهایی این حمله را حذف نمیکند، اما ترکیب چند عادت ساده هزینه آن را بسیار کم میکند.
حد اسلیپیج پایین و منطقی
حد اسلیپیج سقف زیان ساندویچی شماست. آن را بر اساس نقدینگی جفتارز تنظیم کنید و از گزینه پیشفرض بدون نگاه کردن عبور نکنید. حد خیلی پایین هم باعث لغو تراکنش و هدر رفتن کارمزد گس میشود؛ هدف، عدد منطقی است نه کمترین عدد ممکن.
ممپول خصوصی و RPC محافظ
مؤثرترین راه، ارسال تراکنش از کانال خصوصی بهجای ممپول عمومی است تا رباتها آن را نبینند. سرویسهایی مثل Flashbots Protect و MEV Blocker همین کار را میکنند و با تغییر RPC در کیف پول وب ۳ فعال میشوند. طبق راهنمای متامسک (MetaMask)، این کیف پول تراکنشهای واجد شرایط را در اتریوم و سولانا خودکار و خصوصی ارسال میکند، هرچند این محافظت همیشه کامل نیست.
تقسیم سفارش و ابزارهای مقاوم در برابر MEV
تقسیم سفارش بزرگ به چند بخش کوچکتر، جذابیت هر بخش را برای ربات کم میکند، هرچند کارمزد گس بیشتری دارد. برخی پروتکلها مثل CoW Swap هم سفارشها را بهجای ممپول عمومی در حراج دستهای اجرا میکنند. سفارش محدود درونزنجیرهای هم، که منطقش را در مقاله انواع سفارش میخوانید، مثل یک حد اسلیپیج سختگیرانه عمل میکند.
| روش | چطور کمک میکند | محدودیت |
|---|---|---|
| حد اسلیپیج منطقی | سقف زیان را پایین میآورد | حد خیلی کم، تراکنش را لغو میکند |
| RPC محافظ یا ممپول خصوصی | تراکنش از دید رباتها پنهان میماند | به اعتماد به ارائهدهنده نیاز دارد |
| محافظت داخلی کیف پول | ارسال خصوصی خودکار | فقط در برخی شبکهها فعال است |
| تقسیم سفارش بزرگ | جذابیت هر سفارش را کم میکند | کارمزد گس بیشتر |
| حراج دستهای | تطبیق سفارش بیرون از ممپول عمومی | توکنها و نقدینگی محدودتر |
روشهای جلوگیری از حمله ساندویچی
پرسش مهم: آیا در صرافی متمرکز یا معاملات CFD هم حمله ساندویچی وجود دارد؟
پاسخ: نه به معنای بلاکچینی آن. در صرافی متمرکز سفارشها در دفتر سفارش خود صرافی تطبیق داده میشوند و در معاملات CFD در بستر بروکر اجرا میشوند؛ پس وارد ممپول عمومی نمیشوند و رباتهای ساندویچ آنها را نمیبینند. البته اسلیپیج بازار در نوسان شدید همچنان ممکن است.
پدیده ریکوت در فارکس هم به تغییر قیمت هنگام اجرا مربوط است، اما سازوکارش کاملاً متفاوت است.
تمرین با آرون گروپس
تمرین پیشنهادی: پیش از سواپ بعدی، حداقل مقدار دریافتی را با مقدار نمایشدادهشده در پیشنمایش مقایسه کنید؛ تفاوت این دو، حداکثر هزینهای است که با حد اسلیپیج فعلی پذیرفتهاید. بعد یکی از سواپهای قبلی خود را در کاوشگر بلاک پیدا کنید و تراکنشهای قبل و بعد آن را بررسی کنید.
برای تمرین معامله روی نوسان رمزارزها بدون درگیر شدن با ممپول و گس، میتوانید از حساب دمو استفاده کنید و پیش از هر معامله، اندازه ریسک را بر اساس اصول مدیریت سرمایه تعیین کنید.
نتیجهگیری
حمله ساندویچی یعنی ربات تراکنش شما را بین یک خرید قبل و یک فروش بعد از آن محاصره میکند تا سواپ شما با قیمت بدتر اجرا شود. این حمله از شفافیت ممپول تغذیه میکند و برای کاربر عادی یکی از مخربترین انواع MEV است.
بخش بزرگی از کنترل در دست خود شماست: حد اسلیپیج منطقی، ارسال تراکنش از ممپول خصوصی، تقسیم سفارشهای بزرگ و دوری از رباتهایی که سود آسان وعده میدهند، هزینه پنهان سواپهایتان را بهطور محسوسی کم میکند.
پرسشهای متداول
حمله ساندویچی در دیفای یعنی چه؟
یعنی رباتی در صرافی غیرمتمرکز، سواپ شما را بین خرید و فروش خودش قرار میدهد تا با قیمت بدتر اجرا شود و از تفاوت قیمت سود ببرد.
آیا حد اسلیپیج پایین بهتنهایی کافی است؟
نه کاملاً. حد پایین سقف زیان را محدود میکند، اما تراکنش همچنان در ممپول دیده میشود؛ ترکیب آن با ممپول خصوصی محافظت بیشتری دارد.
حمله سندویچی یونی سواپ چطور اتفاق میافتد؟
ربات سواپ شما را در ممپول اتریوم میبیند، پیش از آن در همان استخر یونیسواپ میخرد و پس از آن میفروشد؛ معمولاً همه در یک بلاک.
آیا سواپ استیبلکوینها هم ساندویچ میشود؟
بله. طبق دادههای EigenPhi، بخش قابل توجهی از حملات ساندویچی اتریوم استخرهای کمنوسان شامل استیبلکوینها را هدف گرفته است.
چطور از حمله ساندویچی جلوگیری کنیم؟
با حد اسلیپیج منطقی، ارسال تراکنش از RPC محافظ یا ممپول خصوصی، تقسیم سفارشهای بزرگ و استفاده از صرافیهای مقاوم در برابر MEV.
اعلان ریسک
این مقاله صرفاً جنبه آموزشی دارد و توصیه سرمایهگذاری محسوب نمیشود. سواپ در صرافیهای غیرمتمرکز با ریسکهایی مثل حمله ساندویچی، اسلیپیج، خطای قرارداد هوشمند و از دست رفتن کارمزد تراکنش همراه است و معامله رمزارزها و ابزارهای اهرمی ریسک بالای از دست رفتن سرمایه دارد. عملکرد گذشته نشاندهنده نتایج آینده نیست.