همین تازگیها که صرافی یونی سواپ از پروتکل UniswapX خود رونمایی کرد، در بیان ویژگیهای این پروتکل به مقاوم بودن در برابر حملات MEV اشاره کرد. نه فقط یونی سواپ که بسیاری از پلتفرمها و شبکههای دیگر نیز به دنبال آن هستند که در برابر این پدیده از سیستم خود محافظت کنند. ارزش قابل استخراج ماینر یا همان Maximal Extractable Value که به اختصار با MEV نمایش داده میشود، مفهومی است که ماینرها با آن سروکار دارند. با مطالعه این مقاله از میهن بلاکچین درمییابید که منظور از MEV چیست و چرا شبکهها به دنبال آن هستند که در برابر آن مقاومت کنند.
نکات کلیدی مقاله 📌مفهوم MEV به معنای حداکثر ارزش قابل استخراج یا ارزش قابل استخراج ماینر است. 📌این اصلاح به بیشترین ارزشی اشاره دارد که یک ماینر یا ولیدیتور میتواند از یک بلاک به دست آورد. 📌زمانی که یک بازیگر در شبکه به دنبال کسب MEV است، عمل او به افزایش کارمزدها در شبکه منتهی میشود. 📌بهدستآوردن MEV از طریق راههای مختلفی مانند حمله ساندویچی، بک رانینگ، فرانت رانینگ و آربیتراژ انجام میشود. 📌ادغام تراکنشها به صورت دستهای و غیرمتمرکز کردن ترتیب تراکنشهای ورودی به ممپول، از جمله روشهایی است که برای مقابله با بهرهبرداری از MEV به کار میرود. |
ارزش قابل استخراج ماینر چیست؟
منظور از بیشینه ارزش قابل استخراج (Maximal Extractable Value) یا ارزش قابل استخراج ماینر (Miner Extractable Value)، ارزش مضاعفی است که یک ماینر میتواند از یک بلاک به دست آورد. ماینرها در ازای خدماتی که در شبکههای بلاک چینی ارائه میدهند، پاداش دریافت میکنند. آنها دو نوع فعالیت در شبکه دارند؛ یکی ساخت یا ایجاد بلاک جدید و دیگری تایید تراکنشها.
کارمزد دریافتی ماینرها در ازای تایید تراکنشها در مقابل پاداش ماین یک بلاک جدید ناچیز است؛ بنابراین این احتمال وجود دارد که برخی از ماینرها برای افزایش درآمد و سود خود، اقدامات دیگری انجام دهند. اینجاست که مفهوم ارزش قابل استخراج ماینر مطرح میشود. البته این مفهوم تنها به ماینرها و شبکههایی که با گواه اثبات کار (PoW) فعالیت میکنند، مربوط نیست و پای ولیدیتورها نیز در برخی موارد به این پدیده کشیده میشود.
نخستین بار در سال ۲۰۱۴ بود که این مفهوم توسط شخصی با نام مستعار Pmcgoohan مطرح شد. او در یک پست در شبکه ردیت اعلام کرد که ماینرهای شبکه اتریوم پتانسیل لازم را برای کسب سود فراتر از ساخت بلاک یا تایید تراکنش دارند. او در نوشته خود به مفهوم فرانت رانینگ (Front Running)، یکی از انواع استراتژیهای MEV اشاره کرد. حتی با وجود این که در زمان طرح این مساله هنوز شبکه اتریوم راهاندازی نشده بود، افراد زیادی درباره این مفهوم نظر دادند؛ اما تغییری در شبکه رخ نداد و مشکل ارزش قابل استخراج ماینر به واقعیت تبدیل شد. سرانجام در سال ۲۰۱۹ با انتشار مقالهای از طرف موسسه کورنل تک (Cornell Tech) فرانت رانینگ بهصورت رسمی و آکادمیک مطرح شد.
بنابر اطلاعات موسسه Flashbots، از ابتدای یک ژانویه ۲۰۲۰ (۱۱ دی ۱۳۹۸) تا ۱۵ دسامبر ۲۰۲۲ (۲۴ شهریور ۱۴۰۱) که این تاریخ مربوط به پیش از مرج است، ماینرها توانستهاند با دستکاری تراکنشها نزدیک به ۶۷۵.۵ میلیون دلار درآمد کسب کنند.
ماینرها چگونه به حداکثر ارزش قابل استخراج دست پیدا میکنند؟
در یک شبکه بلاکچینی تراکنشها پیش از اجرا شدن در جایی به اسم ممپول نگهداری میشوند. ممپول جایی است که تراکنشها منتظر میمانند تا ماینرها یا اعتبارسنجها آنها را انتخاب کنند و در بلاکها جای بدهند. یک ماینر ممکن است برای افزایش سود خود تراکنشها را دستکاری و از روشهای مختلفی مانند فرانت رانینگ، بک رانینگ (Back Running)، حمله ساندویچی و آربیتراژ استفاده کند. علاوهبر این، یک نود میتواند باعث لیکویید شدن یک قرارداد لندینگ شود. در این روشها، ماینر از اطلاعات و قدرتی که دارد بهره میبرد و درآمد خود را افزایش میدهد. ارائه یک مثال میتواند در درک بهتر این مسئله کمککننده باشد.
فرض کنید شخصی میخواهد از طریق یونی سواپ، حجم زیادی اتر بخرد. اسم این تراکنش را A میگذاریم. میزان تراکنش A به مقداری هست که باعث افزایش قیمت اتریوم در برابر USDC خواهد شد. این اتفاق در یک صرافی غیرمتمرکز که از سازوکار بازارساز خودکار (AMM) استفاده میکند، رخ میدهد. ماینرها با دیدن این تراکنش میتوانند اقدامات زیر را برای کسب ارزش قابل استخراج انجام دهند.
فرانت رانینگ
فرانت رانینگ به عمل «انجام تراکنشی قبل از تراکنشی مشخص و با آگاهی قبلی» گفته میشود. همانطور که گفتیم ماینرها از تراکنش A باخبر میشوند و درست قبل از آن یک تراکنش خرید ثبت میکنند. این تراکنش باعث افزایش قیمت اتر میشود؛ در نتیجه قیمت برای انجام تراکنش اصلی کمی بالاتر میرود و تراکنش A با اسلیپیج (Slippage) مواجه میشود. در این صورت ماینرها از افزایش کارمزد منتفع خواهند شد.
بک رانینگ
در فرانت رانینگ تراکنش ما قبل از تراکنش هدف انجام میشود؛ اما در Back Running تراکنش ما بلافاصله بعد از تراکنش مورد نظر ثبت میشود. پس از تایید تراکنش A، قیمت ETH مجدد افزایش مییابد. اینجا ماینرها مجدد وارد بازی میشوند و یک تراکنش در خلاف جهت ثبت میکنند؛ یعنی اقدام به فروش اترهای خریداریشده میکنند. پس از افزایش قیمت، ماینرها با فروش اترها سود خوبی کسب میکنند.
حمله ساندویچی
حمله ساندویچی ترکیبی از فرانت رانینگ و بک رانینگ است. یعنی اگر یک ماینر، تراکنش A را مورد حمله ساندویچی قرار دهد، ابتدا روی آن فرانت رانینگ و بعد از آن بک رانینگ اجرا میکند. به این ترتیب از منافع این اقدامات سود میبرد.
آربیتراژ
آربیتراژ به معنی خرید یک دارایی با قیمت کمتر از یک صرافی و فروش آن با قیمت بالاتر در صرافی دیگری است. برخی از افراد با استفاده از ربات، ممپولها را رصد میکنند. آنها این کار را بهمنظور کشف اختلاف قیمت و فرصتهای معاملاتی انجام میدهند. فرض کنید که شخصی در یک صرافی غیرمتمرکز اقدام به خرید و فروش یک ارز دیجیتال میکند. مقدار تراکنش او به میزانی است که باعث ایجاد نوسان قیمتی در استخر آن صرافی غیرمتمرکز میشود. ماینرها با اطلاع از این موضوع و آگاهی از قیمت همان ارز در یک صرافی غیرمتمرکز دیگر، تراکنش خود را ثبت و از محل اختلاف قیمت، کسب درآمد میکنند. در برخی مواقع این اتفاق از طریق یک وام سریع (Flash Loan) انجام میگیرد. وام سریع به وامی گفته میشود که بدون وثیقه و در مدت زمان کمی گرفته و باز گردانده میشود. با طرح یک مثال، این موضوع را واضحتر توضیح میدهیم.
در تصویر بالا یک تراکنش آربیتراژ را مشاهده میکنید. یک ربات با رصد بلاکها و ممپول، تشخیص میدهد که قیمت اتر در صرافی یونی سواپ از صرافی سوشی سواپ بیشتر است. در ابتدا با یک حمله وام سریع روی پلتفرم آوه ۱۰۰۰ اتر وام میگیرد. اول این ۱۰۰۰ اتر در Uniswap به DAI و در گام بعد در صرافی Sushiswap، مجددا به اتر تبدیل میشود. از اختلاف قیمت این دو پلتفرم آربیتراژکننده ۴۵ اتر بهدست میآورد. همانطور که در تصویر مشخص است، در انتها وام گرفتهشده به پلتفرم آوه برگردانده میشود.
آربیتراژ ممکن است توسط کاربران معمولی نیز انجام شود؛ اما همچنان میتواند برای نودهای شبکه منبع درآمد باشد. کاربران برای اینکه سریعتر تراکنش خود را انجام دهند و فرصت بهدست آمده برای آربیتراژ را از دست ندهند، مجبورند کارمزد بالایی برای تایید تراکنششان پیشنهاد دهند. این مساله به افزایش کارمزد لحظهای شبکه منجر میشود و بقیه کاربران هم مجبورند کارمزد بیشتری پرداخت کنند.
لیکویید کردن حسابهای لندینگ
زمانی که کاربری میخواهد از یک پروتکل وام بگیرد، باید به مقداری که از قبل مشخص شده است، وثیقهگذاری کند. ارزش وثیقه با توجه به نوسانات قیمتی تغییر میکند. زمانی که ارزش وثیقه بهکمتر از میزان پذیرش و درصد مشخصی از وام گرفتهشده برسد، سیستم برای حفظ امنیت داراییهای وام دادهشده، قرارداد وام را میبندد و وثیقهها را نقد میکند. بخشی از وثیقه لیکوییدشده به وامدهندگان و بخشی از آن به کسی که فرایند لیکویید شدن را انجام میدهد، میرسد. ماینرها با رصد قراردادهایی که نزدیک به لیکویید شدن هستند، یک تراکنش فرانت ران اجرا کرده و حساب را لیکویید میکنند. در این صورت میتوانند وثیقهها را با قیمت بهتری دریافت کنند.
نادیده گرفتن تراکنش
ماینرها میتوانند تراکنش آربیتراژ یک کاربر را تایید نکنند و خودشان از این فرصت بهره ببرند. یا مثلا ممکن است یک ماینر پوزیشن لانگ داشته باشد و ببیند یک تراکنش سنگین که باعث اثرگذاری بر قیمت میشود، در خلاف جهت پوزیشن او منتظر تایید است. ماینر ابتدا پوزیشن خود را میبندد و سپس تراکنش کاربر را تایید میکند که از ریزش قیمت، متضرر نشود.
Time Bandit Attack
در حمله Time Bandit که به معنای راهزنی یا سرقت زمان است، ماینر اعلام میکند که بلاک ایجادشده را قبول ندارد و قصد دارد آنها را دوباره بسازد. این اتفاق زمانی رخ میدهد که یک ماینر با رصد بلاکهای ایجاد شده، فرصت مناسبی برای آربیتراژ در بلاکهای قبلی مشاهده کند. زمانی که MEV در مقایسه با پاداش بلاک بهاندازه کافی بیشتر باشد، برهم زدن اجماع بلاکهای قدیمی میتواند منطقی باشد.
فرض کنید یک ماینر در بلاک شماره ۱۰۰ یک فرصت آربیتراژی ۵۰ هزار دلاری پیدا میکند؛ درحالی که آخرین بلاک، بلاک شماره ۱۰۲ است. این ماینر بهجای اینکه بلاک ۱۰۲ را ماین کند و تنها پاداش استخراج دریافت کند، بلاک ۱۰۰ را دوباره ماین میکند. برای اینکه بلاک او مورد تایید قرار بگیرد، بلاک ۱۰۱ و ۱۰۲ را نیز ماین میکند و از آنجایی که زنجیره بلاکهای او طولانیتر میشود، بلاک او در شبکه ثبت میشود.
لازم بهذکر است که منظور از ماینر، نودهایی با توان پردازشی بالا هستند. در برخی مطالب این حمله را مشابه با حمله ۵۱ درصد در نظر میگیرند؛ زیرا نودی که توان ماین مجدد یک بلاک ماینشده را دارد و برای طولانیشدن زنجیره بلاکهایش چندین بلاک بعدی را نیز استخراج میکند، توان پردازشی زیادی دارد.
Uncle Bandit Attack
در اتریوم گاهی ممکن است دو بلاک بهصورت همزمان استخراج شوند؛ اما در نهایت یکی از آنها میتواند به زنجیره اصلی اضافه شود. بلاکی که به شبکه متصل نمیشود (اما هنوز برای مدتی پذیرای برخی از تراکنشها است)، بلاک آنکل یا عمو (Uncle Block) نام دارد. برخلاف بیت کوین که تراکنشها حتی ممکن است تا چندین روز در این بلاک (در شبکه بیت کوین با نام Orphan شناخته میشود) بمانند، در اتریوم تنها چند دقیقه در بلاکهای وصلنشده باقی میمانند.
در این حالت ماینر تراکنش مورد نظر خود را که با یک فرصت آربیتراژ همراه است، در بلاک غیرمتصل یا همان بلاک آنکل مشاهده میکند. او تراکنش مورد نظر را از بلاک آنکل خارج میکند و با یک حمله ساندویچی (انجام یک تراکنش قبل و بعد از آن) از ارزش تراکنش مورد نظر بهرهبرداری میکند. در این حالت هیچ ریسکی تراکنش کاربران را تهدید نمیکند و بهدرستی انجام میشود.
آثار MEV روی شبکه
به دست آوردن حداکثر ارزش قابل استخراج نیازمند ثبت تراکنشهای زیادی از جانب کاربران یا رباتهاست. چنین رویدادی تراکم و فشار شبکه را افزایش میدهد که این امر خود به افزایش Gwei منتهی میشود. در نهایت آنچه اتفاق میافتد، افزایش کارمزدهاست و چه چیزی برای ماینرها مطلوبتر از انجام تراکنشهایی با کارمزد بالا؟
نکته دیگری که باید به آن اشاره کرد، به طرح EIP 1559 اتریوم برمیگردد. این پروپوزال به منظور بهبود قابلیت پیشبینی و کاهش کارمزد تراکنشها ارائه شده است. EIP 1559 یک تابع کاهش کارمزد دارد که سودآوری ماینرها را کم میکند. پس طبیعی است که ماینرها برای جبران این مسئله، اقداماتی برای بهرهمندی از MEV و افزایش سود خود انجام دهند.
راهکارهای مقابله با MEV
برای مقابله با حداکثر ارزش قابل استخراج، دو رویکرد و دیدگاه متفاوت وجود دارد. رویکرد اول مربوط به گروهی است که معتقدند MEV اجتنابناپذیر است؛ پس باید آن را مدیریت و دموکراتیک کرد. گروه مقابل آنهایی هستند که MEV را یک عنصر مخرب میدانند و معتقدند باید با آن مقابله کرد.
برخی از شبکهها مانند تایچی نتورک (Taichi Network) و بلاکس روت (BloXrout) از فرایند مخفیسازی تراکنشها استفاده میکنند. این شبکهها مدعی هستند که تراکنشها را بهصورت مخفیانه و مستقیم به استخرها منتقل میکنند، بدون آنکه آنها را به ممپول بفرستند. این فرایند باعث میشود تراکنشها از دید روباتها و حملهکنندگان پنهان بمانند و مستقیم میان ماینرها تقسیم شوند.
علاوهبر مورد بالا برخی از پروتکلها و پلتفرمها هم تراکنشها را بهصورت دستهای ادغام میکنند و بدون هزینه گس و با پرداخت انعام یا Tip آنها را به دست ماینرها میرسانند. در این حالت هم تراکنشها از دید بازیگران بد پنهان میماند.
چین لینک پروژه دیگری است که برای حل مشکل MEV، راهکار سرویس ترتیبدهی منصفانه (Fair Sequencing Services) را ارائه کرده است. این پروتکل فرایند ترتیبدهی تراکنشهای ورودی به ممپول را غیرمتمرکز میکند. اوراکل چین لینک به کمک این سرویس، پس از ورود تراکنشها به ممپول، آنها را خوانده و در قالب قراردادهای هوشمند به نودها میرساند. مقدار فی پرداختی توسط کاربران تاثیری در تقدم و تاخر آنها نخواهد داشت و به ترتیب ورودشان بستگی دارد. این کار از وقوع جنگ کارمزدی هم جلوگیری میکند.
سوالات متداول (FAQ)
مفهومی است که به حداکثر ارزشی که میتوان از یک بلاک به دست آورد، اشاره دارد. این ارزش، مقداری است مازاد بر پاداش استانداردی که از تولید بلاکها یا کارمزد به دست میآید.
این کار از طریق پیادهسازی روشهایی مانند فرانت رانینگ، آربیتراژ، بک رانینگ، حمله ساندویچی، لیکویید کردن حسابهای لندینگ، نادیده گرفتن تراکنشها و موارد دیگر انجام میشود.
موجب افزایش ازدحام و در نتیجه افزایش کارمزدها در شبکه میشود که به نفع ماینرها و به ضرر کاربرانی است که باید فی تراکنش را بپردازند.
جمع بندی
در این مقاله سعی کردیم با جزئیات و ارائه مثال توضیح بدهیم که حداکثر ارزش قابل استخراج چیست. این پدیده بهخاطر دستکاری ماینرها در پردازش تراکنشها به منظور کسب سود بیشتر به وجود میآید. در بخشی از مطلب به انواع استراتژیهایی که ممکن است ماینرها برای دستیابی به MEV پیادهسازی کنند، پرداختیم و برخی از راهحلها برای مقابله با آن را بازگو کردیم و گفتیم که رویکرد پروژههای مختلف نسبت به این پدیده متفاوت است. حالا به نظر شما آیا MEV پدیدهای اخلاقی است؟ آیا باید با آن مقابله کرد؟ راهکار کدام شبکه را برای مقابله با این مسئله بیشتر قبول دارید؟