Cover photo

Bedrock update and solution to miner extractable value problem in Optimism

بازار پر رونق کریپتوکارنسی هم برای سرمایه گذاران خرد و کلان جذابیت بسیار زیادی دارد. همین موضوع باعث ایجاد رقابت پروژه ها برای بهبود وضعیت خود و حرکت به سمت به یک شرایط بهتر است.
امروز درباره یکی از مشکلاتی موجود در دیفای صحبت میکنم و در نهایت یک راهکار برای طیف خاصی از پروژه های اکوسیستم اتریوم.

برای شروع مطلب باید اول با مفهوم “ارزش قابل استخراج ماینر” یا (Miner Extractable Value) آشنا بشیم.

ماینرها یا ولیدیتورها برای تایید و ثبت تراکنش برروی شبکه پاداش دریافت میکنند، گاهی اوقات شرایطی پیش میاد که میتوانند سودی بجز سود معمول کسب کنند. به این سود مازاد که در ادامه درباره ش توضیح میدم اصطلاحا میگن (Miner Extractable Value) یا MEV.
البته چون کسانی بجز ماینرها هم در این عرصه شروع به فعالیت کردند (بات ها) اصطلاح (Maximum Extractable Value) هم درموردش بکار برده میشه.

بریم ببینیم که اینی که گفتم یعنی چه!؟

فرانت رانینگ (Front Running)

فرانت رانینگ در بازارهای مالی سنتی اینطوریه که یک شخص (حقیقی یا حقوقی) با اتکا به رانت اطلاعاتی که داره، قبل از دیگران شروع به خرید یک دارایی یا یک سهم میکنه، و اینطوری بعد یک سود بزرگ بدست میاره. اما در دنیای بلاکچین فرانت رانینگ بطور خلاصه به عملی میگن که در طی اون تراکنشی قبل از یک تراکنش خاص در شبکه ثبت میشه.
گستره و پیچیدگی این عمل زیاده، اما من با یک مثال ساده سعی میکنم که فرانت رانینگ رو توضیح بدم.
مثلا مسعود یک تراکنش در حجم بزرگ برای خرید یک توکن ایجاد میکنه. خب همچین تراکنشی میتونه باعث افزایش قیمت اون توکن بشه. بعد از اون یک بات تراکنشی برای خرید همون دارایی ایجاد میکنه بطوری که اون تراکنش قبل از تراکنش مسعود در بلاکچین ثبت بشه.
شاید براتون سوال پیش بیاد که بات بعد از مسعود تراکنش رو ایجاد کرده، پس چطور میتونه قبل از مسعود تراکنش رو ثبت کنه؟

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

بک رانینگ (Back Running)

بک رانینگ هم عملی است مرتبط است با اولویت ثبت تراکنش، که اینبار مهاجم سعی می‌کند تراکنش خود را بلافاصله بعد از تراکنش هدف ثبت کند.
گستره این عمل هم وسیعه، بخاطر همین تلاش میکنم با یک مثال ساده بک رانینگ هم توضیح بدم.

مسعود یک تراکنش بزرگ برای سواپ توکن ABC به توکن XYZ ایجاد میکنه. این عمل باعث کاهش قیمت توکن ABC در استخر نقدینگی ABC/XYZ خواهد شد.
پس بات سعی میکند یک تراکنش بلافاصله بعد از مسعود برای خرید توکن ABC ایجاد کند و درنتیجه توکن ABC را ارزانتر بدست بیاورد و با آربیتراژ آن در پلتفرم‌های دیگر کسب سود کند.
تراکنش های بک رانینگ حتما باید بعد از تراکنش هدف ثبت شوند، وگرنه ارزشی نخواهند داشت.

حمله ساندویچی (Sandwich Attack)

حمله ساندویچی از ترکیب دو تاکتیک قبلی بوجود میاد و همونطور که از اسمش مشخصه یک شخص با دو تراکنش قبل و بعد از یک تراکنش خاص، سعی میکنه کسب سود کنه. مثلا مهاجم با شناسایی وامهایی که از نظر نسبت “وثیقه به وام” در شرایط خطرناکی هستند و در معرض لیکوئید شدن هستند، با فرانت رانینک کردن تراکنش پس دادن وام یا افزایش وثیقه گیرنده وام، آن را لیکوئید کرده و با یک تراکنش بک رانینگ وثیقه وام را با تخفیف از پلتفرم خریداری کند و از یک سود تضمین شده بهره‌مند گردد. برای درک بهتر این حمله یک مثال ساده‌تر مطرح میکنم؛ مسعود در استخر ETH/USDT یک تراکنش با حجم بزرگ برای خرید ETH ایجاد میکند، شخص مهاجم میداند که قرار است قیمت ETH افزایش پیدا کند، این تراکنش را شناسایی کرده، یک تراکنش قبل از مسعود با گس فی بیشتر ایجاد میکند تا ETH را با قیمت کمتر از مسعود خریداری کند، یک تراکنش فروش هم بعد از مسعود ایجاد میکند. به این صورت مسعود ETH را با قیمت بیشتر و مقدار کمتری خریداری میکند و قیمت ETH را نیز افزایش میدهد، شخص مهاجم ETH را با قیمت بالاتر به فروش میرساند و بدین شکل قیمت ETH را هم بصورت کاذب بالا میبرد.

راه حل‌های مقابله با این مشکل

این مشکل در هر شبکه‎‌ای که وابسته به تایید تراکنش‌ها توسط ولیدیتور یا ماینر است وجود خواهد داشت.
حتی شبکه اتریوم بعداز مرج و شاردینگ هم این مشکلات را خواهد داشت. راهکارهای مقیاس پذیری آپتیمیستیک رول‌آپ هم با این مشکل مواجه هستند.
یکی از راهکارهایی که برای این مشکل ارئه شده انتخاب گزینه Slippage هستش که با تنظیم اون اگر تراکنش ما بیشتر از یک حدی دچار لغزش قیمت شد، تراکنش رو لغو میکنه و اینطوری مشکل فرانت رانینگ برامون اتفاق نمیوفته.
یا اینکه برخی از پلتفرم ها با در دست داشتن مقداری از قدرت هش شبکه، تراکنش های مربوط به کاربران خود را مستقیم پردازش، تایید و ثبت میکنند که این کار باعث میشود تراکنش ها از دسترس بات‌ها و ماینرها در امان باشد.
حتی برخی از پروژه ها خدماتی به کاربر ارائه میدند با میزان Slippage برابر با صفر، که این هم میتواند از بروز چنین مشکلاتی جلوگیری کند.

نقش بروزرسانی Bedrock در حل این مشکل

بروزرسانی Bedrock که آپتیمیزم را به ارزان‌ترین، سریع‌ترین و پیشرفته‌ترین آپتیمیستک رول‌آپ تبدیل خواهد کرد.
این بروزرسانی با مدولار کردن شبکه آپتیمیزم، راه را برای تبدلی شدن آپتیمیزم به پروژه ای “معادل اتریوم” (Ethereum-Equivalence) باز خواهد کرد. همانطور که در مقالات رسمی اعلام شده، آپتیمیزم قصد دارد یک لایه امنیتی ZK اضافه کند. این کار در عمل جدا از اینکه سرعت تایید و ثبت تراکنش ها را افزایش میدهد، با استفاده از اثبات دانش صفر تراکنش ها را از دید دیگران خارج میکند و بدیدن ترتیب مشکلات مطرح شده در بالا رفع خواهند شد.

Loading...
highlight
Collect this post to permanently own it.
0xmasoud.eth logo
Subscribe to 0xmasoud.eth and never miss a post.