با رشد روز افزون امور مالی غیرمتمرکز (DeFi) در طی یکی دو سال اخیر و افزایش سرمایه انباشته شده در این حوزه، انگیزه بیشتری برای سوء استفاده از خللها و آسیبپذیریها به وجود آمده است؛ هر عضوی از زنجیره خدمات به بوته محک گذاشته میشود و در صورت نقص، مورد هجوم هکرها قرار میگیرد. یکی از انواع این حملات که آنقدر رایج است که به بخش ثابت درآمد برخی ماینرها/اعتبارسنجها تبدیل شده، پدیده فرانت رانینگ (Front Running) است.
در این مطلب کمی در خصوص شیوه این حمله، موارد وقوع آن و نحوه جلوگیری از آن صحبت خواهیم کرد. با ادامه مطلب همراه باشید.
فرانت رانینگ چگونه رخ میدهد؟
برای بررسی این پدیده، ابتدا باید کمی راجع به فرایند استخراج/اعتبارسنجی صحبت کنیم:
ارزش قابل استخراج ماینر (Miner Extractable Value)
انگیزه ماینرها/اعتبارسنجها/نمایندهها یا هر گرهای که مسئول تایید و گنجاندن بلوکهای جدید در شبکه است برای پوشش هزینه اولیه سختافزار، برقراری و حفظ ارتباط با شبکه، انرژی، سپردهگذاری وثیقه اولیه (در شبکههای مبتنی بر الگوریتم اثبات سهام PoS) و دیگر هزینهها، پاداشی است که شبکه برای ادامه فعالیت صادقانه به آنها به شکل پاداش ایجاد بلوک و کارمزد انتقال تراکنشها پرداخت میکند. اما انگیزه مالی دیگری نیز وجود دارد: ارزش قابل استخراج ماینر. «MEV سودی است که ماینر میتواند از طریق دستکاری (تغییر ترتیب، وارد کردن و خارج کردن) تراکنشها در بلوکهایی که استخراج میکند، به دست آورد.»
این واژه میتواند کمی گمراهکننده باشد چرا که این عمل منحصر به ماینرها نیست و در شبکههایی که مبتنی بر ماینینگ نیستند (اعتبارسنجها در شبکههای مبتنی بر PoS و یا فراهمکنندگان rollup در پروتکلهای Optimistic) میتواند رخ دهد همچنین نتیجه تحقیقات نشان داده است که لااقل تاکنون، ماینرها گروه اصلی بهرهمند از MEV نیستند و گردانندگان باتها و تریدرهای دیفای این نقش را بر عهده دارند. بنابراین پیشنهاد شده است که این واژه به «ارزش بیشینه قابل استخراج» (Maximal Extractable Value) تغییر یابد.
بهرهبرداری از ارزش قابل استخراج ماینر به تجارتی پرسود بدل شده است، بنابر آمار سایت MEV-Explore از ابتدای سال ۲۰۲۰ میلادی تا کنون، نزدیک به ۷۵۰ میلیون دلار تنها با دستکاری ترتیب تراکنشها در بلوکها، عایدی بازیگران این حوزه شده است.
اما چگونه این اتفاق رخ میدهد؟ به شکل ساده، رباتها با رصد ممپول (Mempool) فرصتهای سودآور را شناسایی میکنند و عموما با ایجاد کردن مشوقی برای ماینرها (به شکل گس بالاتر)، تراکنش خود را زودتر (و در گاهی مواقع دیرتر) از تراکنش موردنظر در بلوک ثبت مینمایند. حال با توجه به شکل این موارد، میتوان تقسیمبندی دقیقتری از MEV داشت:
فرانت رانینگ چیست؟
فرانت رانینگ به عمل «انجام تراکنشی قبل از تراکنشی مشخص و با آگاهی قبلی» گفته میشود (در نوع خویشاوند این پدیده – بک رانینگ (Back Running) و حمله ساندویچی (Sandwich Attack) – تراکنش، بعد از آن، یا هم قبل و هم بعد از آن تراکنش مشخص انجام میشود). فرانت رانینگ پدیده جدیدی نیست و در بازارهای مالی سنتی سالهاست که وجود دارد و عملی غیرقانونی و غیراخلاقی است. در بازارهای مالی سنتی، فرانت رانینگ به معامله سهم یا دیگر داراییها توسط کارگزار با علم به وقوع معاملهای دیگر (برای مثال از جانب مشتری آن کارگزاری) در آیندهای نزدیک اشاره دارد. به خاطر ماهیت شفاف بلاکچین و در دسترس بودن آزاد اطلاعات برای همه، مفهوم فرانت رانینگ به سیاهی بازارهای سنتی نیست و اتفاق نظری برای اخلاقی بودن یا نبودن آن وجود ندارد. فرانت رانینگ یکی از موارد قابل استخراج ماینرهاست.
در این نوع از MEV، بیشتر درباره معاملاتی که یک طرف آن صرافیهای غیرمتمرکز باشند رخ میدهد، سوداگران در صورت مواجهه با درخواست تراکنش بزرگی از یک کاربر برای سواپ در یک استخر نقدینگی، با علم به اینکه چنین معاملهای نسبت داراییهای استخر صرافیهایی که از مدل بازارساز خودکار (AMM) استفاده میکنند را بهم میزند و قیمت جفت دارایی را متاثر خواهد کرد (این صرافیها [برای مثال یونیسواپ نسخه ۲] از فرمول X*Y =k برای قیمتگذاری جفت دارایی یک استخر استفاده میکنند که X و Y تعداد آن توکنها در استخر و k عددی ثابت است)، تراکنشی در جهت مشابه ارسال میکنند و سعی میکنند با برنده شدن در مزایده قیمت گس (Price Gas Auction)، تراکنش موردنظر را فرانت ران کنند.
از آن جا که تراکنش فرانترانرها زودتر از تراکنش اصلی انجام میشود، قیمت دارایی خریداری شده در استخر نقدینگی پس از تراکنش اولیه فرانت رانر کمی (یا در صورت اینکه مقدار نقدینگی استخر پایین باشد، بسیار) بالاتر میرود؛ پس از انجام تراکنش اصلی، این قیمت حتی بیشتر متاثر میشود و تفاوت قیمت افزایش مییابد.
در این حالت کافی است که فرانترانرها تراکنشی مشابه را در جهت عکس انجام دهند: به همین سادگی سودی قطعی در انتظار آنهاست. البته داستان به همین سادگیها نیست. از آنجا که اکثر دکسها اکنون در تنظیمات خود، گزینه تعیین مقدار لغزش (Slippage) را گنجاندهاند، باتها تنها میتوانند مقدار معامله خود را با توجه به حداکثر قیمت مشخص شده در تنظیمات لغزش تغییر دهند، چرا که در غیر این صورت، تراکنش کاربر انجام نخواهد شد و خبری از فرصت آربیتراژ کم ریسک نخواهد بود. مورد دیگر چالشبرانگیز رقابت دیگر فرانترانرهاست. در مثال قبلی، از بین ۴ بات، روباتهای دوم و سوم پس از چک کردن ذخایر استخر نقدینگی و رقابت بقیه، تراکنش خود را ملغی کردند و به ترتیب ۰.۹۶ و ۰.۷۴ اتر هزینه گس از دست دادند.
فرصتهای سودآور فرانت رانینگ تنها منحصر به موارد آربیتراژ نیست، گرچه شاکله اصلی آن را تشکیل میدهد. فرانت رانرها با رصد پلتفرمهای وامدهی و شناسایی وامهایی که نسبت «وثیقه به وام» خطرناکی دارند و در معرض لیکویید شدن هستند، سعی مینمایند با فرانت ران کردن تراکنش پس دادن وام یا افزایش وثیقه گیرنده وام یا تراکنش دیگر نقدسازها (Liquidators)، آن را لیکویید کرده و وثیقه وام را با تخفیف از پلتفرم خریداری کنند. در پلتفرمهای وامدهی ارز دیجیتال، هر گاه ارزش وثیقه کاربر نسبت به ارزش وام دریافتی، از حد مشخص کمتر شود، وثیقه وی به اصطلاح لیکویید (نقد) شده و توسط پروتکل وامدهی، برای کاهش ریسک و جبران مافات به معرض حراج گذاشته میشود. این حراجها معمولا با تخفیف برگزار میشوند. برای مثال در پلتفرم وامدهی آوه (Aave)، هر گاه ارزش دارایی وام گرفته شده به مرز ۸۰ درصد ارزش وثیقه برسد، نقدسازها در رقابتی سخت با یکدیگر، تابع Liquidation قرارداد هوشمند آوه را فراخوانی میکنند و با اعلام آمادگی برای پرداخت ۵۰ درصد از دارایی قرض گرفته شده، معادل همان مقدار به علاوه درصدی پاداش (در مورد آوه بین ۵ تا ۱۰ درصد) از دارایی وثیقه گذاشته شده را دریافت میکنند.
نوع خطرناکتر این باتها، فرانت رانرهای تعمیمیافته (Generalized Front Runner) هستند؛ این روباتها در ممپول به دنبال طعمه خود میگردند و بسته به میزان پیشرفته بودن منطق خود، توانایی فهم سازوکار نهان قراردادهای هوشمند در کسری از دقیقه و فرانت کردن دستورات فرستاده شده به آن در صورت تشخیص سودآوری را دارا هستند. برای اطلاع از جزییات بیشتر، میتوانید این ویدیو از اسکات بیگلو (Scott Bigelow) را مشاهده فرمایید؛ در این ویدیو، اسکات، که یکی از محققان سرشناس این حوزه است، قرارداد هوشمندی را در حین ویدیو در شبکه راهاندازی میکند و با قرار دادن مقداری موجودی در آن، منطق آن را طوری طراحی میکند که تنها در صورت داشتن جواب یکتای صحیح، موجودی به حساب پاسخدهنده ارسال شود. باتهای فرانت رانر تعمیمیافته، با فهم این موضوع، تراکنش اسکات (که حاوی پاسخ صحیح است) به این قرارداد هوشمند را فرانت ران کرده و پاداش را از آن خود میکنند.
راههای جلوگیری از فرانت رانینگ
پروژههای مختلفی به دنبال حل و یا تعدیل اثر این پدیده مخرب در شبکه هستند. به برخی از مهمترین آنها به اجمال در قسمت زیر نگاهی میاندازیم:
- شبکه سیکرت (Secret Network): شبکه سیکرت خود را «شبکهای با پشتیبانی از قراردادهای هوشمند (همانند اتریوم) به علاوه امنیت و حریم خصوص زی کش (Zcash)» توصیف میکند. در راهکار این شبکه، تمامی اطلاعات در بستری امن و با استفاده از رمزنگاری از دید ماینرها مخفی میماند و راهی برای بهره بردن از توانایی دستکاری ترتیب تراکنشها باقی نمیماند. این شبکه پلی برای ارتباط با شبکه اتریوم برقرار کرده است که کاربران میتوانند با قفل کردن دارایی خود در شبکه اتریوم، معادل آن توکنهای رپد شده در شبکه سیکرت دریافت نمایند. شبکه سیکرت تاکنون موفق به جذب اقبال عمومی چندانی نشده است و اپهای غیرمتمرکز کمی در آن مشغول به فعالیت هستند.
- فلش باتس (Flashbots): فلش باتس یکی از مهمترین پروژههای فعال در این حوزه است؛ هدف آنها نه حذف فرانت رانینگ، بلکه شفاف کردن آن، کاستن از هزینه گسهای هدر رفته (و به تبع آن کاهش شلوغی شبکه) و فراهم آوردن امکانی برای ارسال تراکنشهای حساس به شکل مستقیم به ماینرهاست. استحصال MEV سمت و سوی خطرناکی به خود گرفته بود، فرانت رانرها با ماینرها به شکل پشت پرده مذاکره میکردند و باج میدادند و این موضوع شفافیت و بینیازی شبکه به مجوز را کم کرده بود. آنها شبکهای برای رله فرصتهای آربیتراژ و کسب سود ایجاد کردهاند و تاکنون نزدیک به ۸۵ درصد از هش ریت شبکه اتریوم به آن پیوسته است. نرم افزار کلاینت MEV-Geth که نسخه تغییر یافته کلاینت مشهور Geth است، امکان برگزاری حراج بین باتها (بدون اینکه در عمل هزینه گسی مصرف شود) را فراهم میکند. همچنین امکانی برای dAppها فراهم است تا تراکنشهای خود را بدون اینکه به ممپول بفرستند، مستقیما به دست ماینرها برسانند و از انواع حملات ساندویچی، فرانت ران و بک ران در امان بمانند. بازیگران شبکه رله تحت نظارت قرار دارند و در صورت عدم پایبندی به رفتار صادقانه، از این سیستم کنار گذاشته میشوند. سعی فلش باتس، ایجاد شرایط برد-برد برای تمامی طرفین ماجراست.
- آرچر سواپ (Archer Swap): صرافی آرچر سواپ به کاربران اجازه میدهد تا از تراکنشهای بدون لغزش بهره برند. همچنین هزینه لغو تراکنش صفر است. این صرافی یک تجمیعکننده غیرمتمرکز است که تراکنشها را مستقیما از طریق شبکه فلش باتس یا شبکه مخصوص خودش به نام ArcherDAO (که ۵ درصد هش ریت شبکه اتریوم را در اختیار دارد) به دست ماینرها می رساند. ویژگی بسیار جذاب دیگر این صرافی این است که در صورتی که کاربر در مبادله، متاثر از تاثیر قیمت (Price Impact) شود، استحصالکنندگان (Extractors) این شبکه، با انجام تراکنشی خلاف جهت، آربیتراژ حاصل را به دست آورده و بخشی از آن را بین کاربران و ماینرها تقسیم میکنند.
- شبکه تایچی (Taichi Network): شبکه تایچی سرویسی است که توسط اسپارک پول، بزرگترین استخر ماینینگ شبکه اتریوم راهاندازی شده است. این شبکه که بخشی از هش ریت استخر اسپارک پول به آن اختصاص یافته است، به کاربران اجازه میدهد که با تنظیم مقصد تراکنشهای خود به نود این شبکه، از امکانات حریم خصوصی ویژه آن بهرهمند شوند. این شبکه مدعی است که تراکنشهای فرستاده شده به این نود، از دید رباتهای فرانت رانر در امان خواهند بود. در جریان آسیبپذیری امنیتی پلتفرم لاین (Lien Finance)، هکرهای کلاه سفید برای در امان نگه داشتن موجودی کاربران این پلتفرم، از شبکه تایچی استفاده کردند تا تراکنش انتقالی مورد حمله قرار نگیرد.
پرسشهای متداول
- فرانت رانینگ چیست؟
فرانت رانینگ به عمل گنجاندن یک تراکنش پیش از تراکنشی خاص در یک بلوک گفته میشود. عموما این عمل با ایجاد مشوق مالی برای سازنده بلوک (ماینرها) به شکل افزایش هزینه تراکنش انجام میشود. - آیا باید نگران فرانت ران در مبادلههای شخصی یا در تعامل با صرافیهای متمرکز باشم؟
خیر. در انتقال بین دو کیف پول شخصی و یا با صرافیهای متمرکز، انگیزهای برای کسب منفعت و فرانت ران وجود ندارد. - آیا در راهکارهای لایه دوم و یا اتریوم ۲ این معضل وجود خواهد داشت؟
بله. در هر ساختاری که مسئولی برای انتخاب ترتیب تراکنشها وجود داشته باشد و بتوان از دستکاری این ترتیب منفعت به دست آورد، این معضل وجود خواهد داشت. - هاردفورک لندن (خصوصا طرح EIP-1559) چه تاثیری بر روی مقدار فرانت رانینگ شبکه خواهد داشت؟
مدت کوتاهی از این هاردفورک گذشته و هنوز ابعاد کامل این ماجرا مشخص نشده است اما روی کاغذ، با کاهش درآمد ماینرها از محل هزینه تراکنشها، نقش MEV پررنگتر خواهد شد. - در صورت عدم استفاده از سرویسهای ذکر شده، برای کاهش احتمال فرانت ران شدن چه کنیم؟
با انتخاب مقدار لغزش (Slippage) پایین و زمان لغو شدن تراکنش در صورت عدم انجام، حاشیه سود و فرصت زمان کمتری برای باتهای فرانت رانر فراهم کنید.
جمعبندی
فرانت رانینگ یکی از حملاتی است که فضای دیفای را تهدید میکند و ابعاد نقش آن بر روی شبکه روز به روز پررنگتر میشود. پروتکلهای جدید دیفای، بر روی کاهش اثرات مخرب آن بر سرویس خود کار میکنند اما هنوز راهحل کامل و جامعی در شبکه اتریوم برای آن وجود ندارد. آیا تاکنون قربانی حمله فرانت رانینگ شدهاید؟ نظر و تجربه خود را با در میان بگذارید.