رایجترین روش دستکاری تراکنشها در بلاکچین؛ حمله ساندویچی چیست؟

حمله ساندویچی امروزه به تهدیدی جدی برای تریدرهای حوزه دیفای تبدیل شده است. این نوع حمله به اندازه کلاهبرداریهای راگ پول رایج نیست؛ اما تاثیر مخرب آن ثبات اکوسیستمهای دیفای، و به ویژه پلتفرمهای معاملاتی، را تضعیف میکند. این حملات با سوءاستفاده از نحوه فعالیت صرافیهای غیرمتمرکز، به ضرر دیدن تریدرهای کمتجربه منجر میشود و این ضرر، به عنوان سود در اختیار ترتیبدهنده حمله قرار میگیرد.
در این مقاله به بررسی مفهوم حمله ساندویچی در دیفای، نحوه اجرای آنها، تاثیرات آن بر بازار و راهکارهای مقابله با آن میپردازیم.
حمله ساندویچی چیست؟

ساندویچ اتک نوعی دستکاری در روند بازار است که کاربران صرافیهای غیرمتمرکز را هدف قرار داده و ترتیبدهنده آن، با سوءاستفاده از نوسانات قیمت، از معاملات قربانیان سود کسب میکنند.
این حمله در دستهبندی فرانت رانینگ (Front-Running) قرار میگیرد، جایی که مهاجم دو سفارش را در قبل و بعد معامله قربانی قرار میدهد تا از لغزش قیمت یا اسلیپیج (Slippage) به نفع خود استفاده کند.
در یک حمله ساندویچی، مهاجم ابتدا ممپول (Mempool) را برای ردیابی تراکنشهای بزرگی که میتوانند قیمت یک رمزارز را تحت تاثیر قرار دهند، نظارت میکند.
پس از شناسایی معامله، مهاجم یک معامله بک رانینگ (Back-Running) انجام میدهد، به این صورت که:
- سفارش خرید (Buy Order) را قبل از معامله قربانی قرار میدهد.
- سفارش فروش (Sell Order) را بلافاصله پس از آن اجرا میکند.
در این روش، معامله (بزرگ) قربانی به افزایش یا کاهش عمدی قیمت کمک میکند و این تغییرات به نفع مهاجم تمام میشود. مهاجم از این اختلاف قیمت ارزهای دیجیتال سود میبرد؛ چراکه پس از اجرای معامله قربانی، داراییهای خود را با قیمت دستکاریشده میفروشد.
چرا آشنایی با حمله ساندویچی برای فعالان بازار ارز دیجیتال مهم است؟
حملات ساندویچی اهمیت زیادی برای تریدرها و به خصوص مبتدیانی که به دنبال ورود به حوزه دیفای هستند، دارند؛ زیرا آنها مستقیما بر حداکثر ارزش قابل استخراج تاثیر میگذارند.
حداکثر ارزش قابل استخراج (Maximal Extractable Value) که به اختصار MEV نیز نامیده میشود، به سودی فراتر از پاداشهای استاندارد استخراج اشاره دارد که میتوان از فرآیند تولید بلاک به دست آورد. بهطور خلاصه، این مفهوم به ماینرها یا ولیدیتورها اجازه میدهد که در یک بلاک، ترتیب تراکنشها را به صورت استراتژیک تنظیم کرده تا حداکثر کارمزد ممکن دریافت کنند.
حمله ساندویچی یکی از بارزترین نمونههای سوءاستفاده از MEV است. مهاجمان با دستکاری ترتیب تراکنشها از ماهیت شفاف اطلاعات بلاکچینی سوءاستفاده کرده و با اجرای فرانت رانینگ و بک رانینگ، از اسلیپیج ایجاد شده سود کسب میکنند.
مهمترین تاثیرات حملات ساندویچی بر معاملهگران عبارتند از:
- کاهش اعتماد: افزایش این نوع حملات میتواند امنیت اکوسیستم دیفای و انواع پلتفرمهای آن را زیر سوال ببرد.
- کاهش سود: تریدرها به طور مستقیم از دستکاری قیمت ناشی از ساندویچ اتک متضرر شده و بخش قابل توجهی از سود بالقوه آنها به مهاجمان منتقل میشود.
- نقض عدالت: این حملات باعث کاهش عدالت در صرافیهای غیرمتمرکز میشوند؛ زیرا معاملهگران عادی در برابر بازیگران حرفهای آسیبپذیرتر هستند.
بررسی نحوه عملکرد حمله ساندویچی با یک مثال

حمله ساندویچی با دستکاری قیمت انجام میشود. این دستکاری از طریق سفارشهای خرید و فروش که به صورت استراتژیک در صف تراکنشها قرار میگیرند، صورت میگیرد. برای درک بهتر ماهیت ساندویچ اتک در دیفای، به مثال زیر توجه کنید:
فرض کنید قصد خرید ۱۰۰ واحد اتر از یک صرافی غیرمتمرکز مانند یونی سواپ را دارید. از آنجایی که سفارش شما بزرگ است، این معامله روی وضعیت بازار تاثیرگذار است و احتمالا باعث افزایش موقت قیمت اتریوم میشود.
مهاجمان با نظارت بر ممپول که یک فضای عمومی برای تراکنشهای تایید نشده در بلاکچین است، سفارشهای بزرگ را شناسایی میکنند؛ چراکه جزئیات هر تراکنش، از جمله نوع توکنها، مقدار و میزان اسلیپیج، قبل از تایید و ثبت شدن در یک بلاک، برای همه قابل مشاهده است.
البته مهاجم لزومی به نظارت لحظهای ندارد و میتواند از ربات برای این کار استفاده کند. این رباتها ممپول را اسکن کرده و در هر لحظه، فرصتهای سودآور را شناسایی میکنند. در ضمن، از آنجایی که تراکنشها رمزنگاری نمیشوند، این رباتها میتوانند دادهها را تحلیل کرده و در صورت وجود پتانسیل برای سود، با ارسال تراکنش خود با کارمزد بالاتر، آن را جلوتر از قربانی اجرا کنند.
در سادهترین حالت میتوان گفت که حمله ساندویچی طی ۴ مرحله تکمیل میشود که عبارتند از:
- مرحله ۱: مهاجم سفارش خرید ETH را دقیقا قبل از تراکنش شما ارسال میکند.
- مرحله ۲: معامله شما اجرا شده و باعث افزایش قیمت ETH میشود.
- مرحله ۳: بلافاصله پس از اجرای معامله شما، مهاجم ETH خریداریشده را با قیمت بالاتر میفروشد.
- مرحله ۴: شما ETH را با قیمتی گرانتر خریداری میکنید، درحالیکه مهاجم بدون زحمت خاصی از معامله شما سود میبرد.
این فرآیند کاملا خودکار بوده و توسط رباتها در چند ثانیه یا حتی چند میلیثانیه انجام میشود؛ آنهم بدون اینکه کاربران عادی فرصتی برای جلوگیری از آن داشته باشند.
در تصویر زیر، یک ربات با شناسایی یک سفارش خرید بزرگ برای توکن Saitama در ممپول، ابتدا این توکن را خریداری کرده و قیمت آن را افزایش میدهد.

قربانی پس از آن توکن را با قیمت بالاتر خریداری میکند، در حالی که ربات بلافاصله دارایی خود را با قیمت جدید به فروش میرساند و بیش از ۲۰۰,۰۰۰ دلار سود کسب میکند.در این سناریو، حمله ساندویچی به دلیل وجود تاخیر بیش از یک دقیقهای در اجرای تراکنش قربانی، امکانپذیر شده است.

لازم به ذکر است که MEV ذاتا یک ابزار برای حمله ساندویچی نیست. در حالی که MEV ممکن است از طریق فعالیتهای مخربی مانند حملات ساندویچی مورد سوءاستفاده قرار گیرد، مزایایی مهمی نیز دارد.
MEV میتواند با تسهیل آربیتراژ و اطمینان از نقدشوندگی بهموقع، کارایی بازار را بهبود دهد. همچنین، MEV یک منبع درآمد اضافی برای ماینرها و اعتبارسنجها فراهم کرده و عملا آنها را به مشارکت بیشتر در امنیت شبکه ترغیب میکند.
علاوه بر این، رقابت برای دستیابی به پاداش حاصل از MEV باعث نوآوری در حوزههایی مانند مزایده فضای بلاک (Blockspace Auctions – رقابت برای تصاحب فضای داخل یک بلاک، به منظور ثبت و پردازش تراکنشها) و همچنین توسعه فناوریهای حفظ حریم خصوصی شده است.
با این حال، ضروری است که تاثیرات بالقوه سواستفاده از آن بر تریدرها بررسی و مدیریت شود.
آشنایی با انواع ساندویچ اتک در دیفای
حملات ساندویچی در دیفای به دو دستهی اصلی تقسیم میشوند: حمله تیکر در برابر تیکر (Taker vs. Taker) و حمله فراهمکننده نقدینگی در برابر تیکر (Liquidity Provider vs. Taker). در هر دو روش، مهاجمان از دستکاری قیمت و مکانیزم استخرهای نقدینگی برای کسب سود استفاده میکنند، اما نحوهی اجرای آنها متفاوت است.
حمله تیکر در برابر تیکر
رایجترین نوع حمله ساندویچی، سناریوی تیکر در برابر تیکر است. در این روش، مهاجمان برای اجرای حمله از استخرهای نقدینگی بازارسازهای خودکار (AMMs) استفاده میکنند.
در این سناریو، عملیات سواپ (Swap)علیه استخر نقدینگی انجام میشود و حمله به همان روشی که قبلا توضیح داده شد، پیش میرود:
- مهاجم با قرار دادن یک تراکنش فرانت رانینگ قبل از سفارش قربانی، قیمت دارایی را افزایش میدهد.
- سپس با یک تراکنش بک رانینگ، دارایی را بلافاصله پس از اجرای سفارش قربانی با قیمت بالاتر میفروشد و سود کسب میکند.
حمله فراهمکننده نقدینگی در برابر تیکر
نوع دیگری از حمله ساندویچی زمانی رخ میدهد که مهاجم به جای یک تیکر، به عنوان یک فراهمکننده نقدینگی عمل کند. برخلاف روش اول که تنها از دو تراکنش استفاده میشد، در این روش مهاجم از سه تراکنش برای دستکاری بازار بهره میبرد که در ادامه به آنها اشاره میکنیم:
- مهاجم نقدینگی را از استخر خارج میکند (فرانت رانینگ): با حذف نقدینگی، میزان اسلیپیج برای سفارش قربانی افزایش مییابد. در نتیجه، قربانی باید دارایی را با هزینه بالاتر خریداری کند.
- مهاجم نقدینگی را دوباره به استخر اضافه میکند (بک رانینگ): در این مرحله، نقدینگی به استخر بازگردانده میشود تا تعادل اولیه بازیابی شود.
- مهاجم معامله مورد نظر خود را انجام میدهد: برای مثال، مهاجم اگر جفت اتریوم و تتر را هدف قرار داده باشد، ابتدا ETH را خریداری کرده و سپس برای بازگرداندن تعادل استخر، آن را با USDT مبادله میکند.
این روش برای مهاجم مزیتهای مهمی دارد، زیرا: با حذف نقدینگی قبل از معامله قربانی، مهاجم از پرداخت کارمزد کمیسیون که معمولا بین تمام ارائهدهندگان نقدینگی تقسیم میشود، جلوگیری میکند.علاوه بر این، قربانی مجبور به پرداخت هزینه بالاتر به دلیل افزایش اسلیپیج میشود، در حالی که مهاجم سود بیشتری کسب میکند.
آشنایی با روشهای مقابله با حمله ساندویچی

حمله ساندویچی به ضرر دیدن تریدر و از دست رفتن وی منجر میشود، بنابراین مهم است که از روشهای مقابله با این حمله آگاه باشید. قبل از هر چیز باید بدانید که حملات ساندویچی غیرقانونی نیستند، و این یعنی مسئولیت محافظت از داراییهایتان بر عهده خود شماست. در ادامه، به بررسی راهکارهایی میپردازیم که میتوانید از طریق آنها در برابر حملات ساندویچی مقابله کنید:
اسلیپیج کمتری تعیین کنید
اسلیپیج به تفاوت بین قیمت اولیه برای یک معامله و قیمت واقعی اجرای آن اشاره دارد. این تغییر به دلیل نوسانات سریع بازار رخ میدهد، یعنی زمانی که قیمت یک دارایی میتواند در عرض چند ثانیه در حین اجرای معامله تغییر کند. برای مثال، اگر حد اسلیپیج را روی ۱۰٪ تنظیم کنید، یعنی حاضر به پذیرش معامله با قیمتی تا ۱۰٪ بالاتر یا پایینتر از قیمت اولیه هستید. اگر قیمت بیش از این مقدار نوسان کند، سفارش شما لغو خواهد شد.
تنظیم اسلیپیج روی مقادیر پایین باعث میشود که تراکنش شما تنها در صورتی انجام شود که قیمت توکن در یک بازه محدود باقی بماند. بنابراین، اگر یک مهاجم قبل از شما خرید بزرگی انجام دهد و قیمت توکن بیش از حد تحمل اسلیپیج شما افزایش یابد، معامله لغو شده و دیگر اجرا نمیشود. در صورتی که مهاجم مقدار کافی توکن بخرد تا قیمت همچنان در محدوده اسلیپیج شما باقی بماند، داشتن اسلیپیج پایین همچنان سود حمله و ضرر شما را کمتر میکند.
محدوده پیشنهادی اسلیپیج ۰.۵٪ تا ۱٪ است و معمولا برای نوسانات قیمت معمولی کافی خواهد بود. البته اگر اسلیپیج بیش از حد پایین باشد، ممکن است تراکنش لفو شود و کارمزد گس هدر برود. بنابراین بهتر است اسلیپیج را بر اساس عواملی مانند نوع دارایی، ترافیک شبکه و نوسانات بازار تنظیم کنید.
از استخرهای نقدینگی بزرگتر استفاده کنید
استخرهای نقدینگی مجموعهای از داراییهای قفلشده در یک قرارداد هوشمند است که نقدینگی لازم برای تسهیل معاملات در صرافیهای غیرمتمرکز را فراهم میکنند. هرچه یک استخر نقدینگی بزرگتر باشد، معمولا نوسانات کمتری دارد و محیطی پایدارتر برای معاملات ایجاد میکند. این امر همچنین باعث کاهش نوسانات قیمتی ناشی از یک تراکنش میشود.
برای کسب سود از یک حمله ساندویچی در یک استخر نقدینگی بزرگ، مهاجم به سرمایه اولیه زیادی نیاز دارد تا بتواند نوسانات قیمتی مورد نظر خود را ایجاد کند. به همین دلیل، استفاده از استخرهای نقدینگی بزرگ میتواند مهاجمان ساندویچی را از حمله منصرف کند.
با پرداخت کارمزد بیشتر تراکنشهای خود در اولویت قرار دهید
تریدرها میتوانند از کارمزد بالاتر برای تراکنشهای خود استفاده کنند؛ به خصوص برای انجام معاملات با حجم بالا که بیشتر در معرض حملات ساندویچی قرار دارند. استفاده از کارمزد پایین میتواند هزینهها را کاهش دهد، اما باعث کندتر شدن تراکنش شده و به مهاجمان فرصت میدهد تا فرصت حمله را شناسایی و تراکنشهای خود را اجرا کنند.
با استفاده از کارمزد بالاتر، تراکنش سریعتر تایید شده و فرصت کمتری برای سواستفاده از آن وجود دارد. علاوه بر این، مهاجمان برای اجرای حمله نیاز به پرداخت کارمزد بسیار بالایی خواهند داشت تا بتوانند تراکنش را جلوتر از کاربر انجام دهند. البته از آن جایی که استفاده از کارمزد بالا میتواند هزینهبر باشد، کاربران باید گزینههای خود را به دقت ارزیابی کرده و بهترین تصمیم را با توجه به حجم معامله خود اتخاذ کنند.
از شبکه خصوصی RPC استفاده کنید
یک نود RPC به برنامهها امکان میدهد با شبکه بلاکچین ارتباط برقرار کنند. بیشتر تریدها از اندپوینتهای RPC عمومی استفاده میکنند که برای همه قابل دسترس است.
همانطور که پیشتر اشاره شد، حملات ساندویچی به این دلیل اتفاق میافتند که مهاجمان میتوانند تراکنشهای در انتظار تایید را در ممپول مشاهده کنند. با استفاده از یک شبکه RPC خصوصی، معاملهگران میتوانند تراکنشهای خود را مستقیما به شبکه اتریوم ارسال کرده و از نمایش آنها در ممپول جلوگیری کنند. این کار باعث کاهش ریسک شناسایی و هدف قرار گرفتن توسط مهاجمان میشود.
نود شخصی اجرا کنید
برای انجام این کار، میتوانید نود اختصاصی خود را اجرا کنید. با راهاندازی نود شخصی، امکان ارسال مستقیم تراکنشها و پنهانسازی آنها را خواهید داشت تا از حملات جلوگیری کنید.
همچنین، اجرای نود شخصی به شما اجازه میدهد تا زمانبندی پردازش تراکنشها را بهتر کنترل کنید. این موضوع، وابستگی به پلتفرمهای دیگر را کاهش داده و امنیت معاملات شما را افزایش دهد.
از MEV Blocker استفاده کنید
MEV Blocker یک اندپوینت RPC رایگان است که به محافظت از معاملات شما در برابر حملات مبتنی بر MEV کمک میکند. طبق گفته سازنده، MEV Blocker تراکنشهای تریدر را برای شبکهای از جستجوگران ارسال میکند که به دنبال شناسایی فرصتهای بک رانینگ هستند، اما قادر به فرانت رانینگ معاملات شما نیستند. در ضمن، MEV Blocker در ازای اسکن کردن تراکنشهای شما پاداشی نیز در اختیارتان قرار میدهد.
کاربران میتوانند MEV Blocker را به کیفپولهایی مانند متامسک اضافه کنند.
از محصولات شرکت فلشباتس استفاده کنید
برخلاف آنچه که اسم آن نشان میدهد، فلشباتس (Flashbots) یک ربات نیست. فلشباتس یک شرکت تحقیق و توسعه است که به تحقیق در حوزه MEV میپردازد. این سازمان متعهد به فراهم کردن یک پلتفرم منصفانه برای معاملات و مبارزه با شیوههای ناعادلانهای مانند فرانت رانینگ است. این شرکت در حال حاضر مجموعهای از محصولات را برای کاربران، ولیدیتورها، فراهمکنندگان زیرساخت و اپراتورهای ربات ارائه میدهد.
تریدرهای فعال در شبکه اتریوم میتوانند مستقیما محصول Flashbots Protect را به کیفپولهایی مانند متامسک متصل کنند. این ویژگی از معاملهگران در برابر فرانت رانینگ توسط رباتهای MEV محافظت میکند. این محصول شرکت فلشباتس کاربران را به یک شبکه RPC خصوصی متصل کرده و به آنها این امکان را میدهد که تراکنشهای خود را مستقیما برای ماینرها ارسال کنند؛ بدون اینکه آنها را در ممپول عمومی و در در معرض حملات MEV قرار دهند.
حمله ساندویچی؛ حملهای آزاردهنده در بلاکچین
یک حمله ساندویچی از شفافیت اطلاعات تراکنشها در بلاکچین سوءاستفاده میکند. در حالی که این حملات در رسانههای خبری به اندازه حملات معروف فلش لون برجسته نیستند (از نظر میزان سودآوری)، در صرافیهای غیرمتمرکز به وفور اجرا میشوند و هزینه زیادی برای تریدرها به همراه دارند. خوشبختانه، راههای متعددی برای مقابله با نوع این حملات وجود دارد.
با کنترل دقیق نرخ اسلیپیج، استفاده از استخرهای نقدینگی بزرگتر، پرداخت کارمزد بالاتر برای افزایش اولویت تراکنش، و حتی استفاده از صرافیهای متمرکز، میتوانید ریسک گرفتار شدن در برابر حملات ساندویچی را به طور قابل توجهی کاهش دهید.