بک رانینگ (Back Running) چیست؟
مفهوم فرانت رانینگ (Front Running) تا به حال مورد توجه زیادی قرار گرفته و چه در حوزه مالی مدرن و چه سنتی، درباره آن مطالب مختلفی تهیه شده است. در یک توضیح ساده و کوتاه، فرانت رانینگ زمانی اتفاق میافتد که شما از قصد خرید یک فرد مطلع میشوید و با این اطلاعات میتوانید دارایی مورد نظر را خریداری و آن را به خریدار با قیمت بالاتر بفروشید. اما مفهوم دیگری به نام بک رانینگ (Back Running) در حوزه مالی وجود دارد که قصد داریم به آن بپردازیم. مفهوم بک رانینگ چیست و چگونگی انجام این حمله، تفاوت آن با فرانت رانینگ، انواع و معایب آن برای شبکههای بلاکچینی را توضیح دهیم.
بک رانینگ چیست؟
بک رانینگ با فرانت رانینگ متفاوت است. همانطور که توضیح دادیم، در فرانت رانینگ تراکنش ما قبل از تراکنش هدف انجام میشود؛ اما در Back Running درست برعکس است و تراکنش ما بلافاصله بعد از ثبت تراکنش در بلاک چین شبکه باید انجام شود.
بک رانینگ به شکلهای مختلفی انجام میشود. این مفهوم ممکن است در زمان انجام یک تراکنش سواپ در یک استخر نقدینگی، انجام شود یا زمانی که یک حساب معاملاتی یا یک تراکنش لندینگ (که نیاز به وثیقهگذاری دارد) لیکوید میشود، رخ دهد.
در ابتدا بهتر است قبل از توضیح درباره اینکه بک رانینگ چیست، به مفهومی به نام Bonding Curve یا منحنی اتصال اشاره کنیم. این مفهوم زمانی بکار میرود که یک تراکنش سواپ یا خریدوفروش در حال انجام است.
منحنی اتصال چیست و چه ارتباطی با بک رانینگ دارد؟
منحنی اتصال یک مفهوم اقتصادی – ریاضی است و از آن برای توصیف رابطه میان قیمت و عرضه یک دارایی استفاده میشود. شرط لازم برای برقراری این رابطه، محدودیت در عرضه یک دارایی است. وقتی شخصی یک دارایی را خریداری میکند، با خرید هر واحد عرضهشده، عرضه کل در گردش کاهش مییابد؛ بنابراین با توجه به این موضوع که اکنون دارایی در تملک فرد مورد نظر است و او نیز بهدنبال کسب سود خواهد بود، قیمت افزایش پیدا میکند؛ زیرا خریدار بعدی که میخواهد آن دارایی را داشته باشد، باید قیمت بیشتری برای خرید پرداخت کند. برای درک بهتر این مساله و ارتباط آن با مفهوم بک رانینگ، بهتر است مثالی بزنیم.
فرض کنید x میخواهد در یک پلتفرم دیفای (Defi)، مقداری از ارز دیجیتال A را بفروشد و در ازای آن، مقداری رمز ارز B خریداری کند. با توجه به «منحنی اتصال» و با انجام خرید، ارزش A بالا رفته و با فروش ارزش B کاهش مییابد (با توجه به عرضه در تملک). در همین حال اگر x استخر تراکنشها یا M را رصد کند، با خرید دارایی A میتواند از فرصت آربیتراژ آن در پلتفرمهای دیگر استفاده کند؛ یعنی x دارایی A را در پلتفرم اول خریداری میکند و در پلتفرم دوم بهفروش میرساند.
چند نوع بک رانینگ وجود دارد؟
همانطور که در بخش «بک رانینگ چیست؟» بیان کردیم، انواع مختلفی از Back Running وجود دارد. در این قسمت میخواهیم به انواع آنها و نوع عملکردشان اشاره کنیم.
یکی از انواع بک رانینگ، سفارشگذاری پس از انجام یک تراکنش فروش است. نکته مهمی که در اینجا وجود دارد این است که سفارشگذاری حتما باید در زمان مشخص و بعد از انجام تراکنش هدف انجام شود. بک رانینگ و تراکنش هدف باید در یک بلاک ثبت شوند. این نکته تنها برای این مدل از Back Running نیست و در تمام روشها صدق میکند.
نوع دیگر از بک رانینگ، ثبت سفارش بعد از لیکوید شدن یک قرارداد است. زمانی که یک قرارداد در حال لیکوید شدن است، اوراکلهای قیمتی پلتفرمی که از قرارداد میزبانی میکند، با آپدیت کردن، اطلاعات لیکوید شدن قرارداد را اعلام میکنند. افرادی که میخواهند از فرصت استفاده کنند و وثیقههای آنها را بخرند، بهسرعت وارد عملشده و ثبت سفارش میکنند.
البته بیان این موضوع شاید خالی از لطف نباشد که در موقع لیکوید شدن یک قرارداد در پلتفرمهای وامدهی و قرضدهی، ممکن است پای یک فرانت رانر در میان باشد. این افراد با انجام تراکنش Front Running نسب وثیقه به وام را دستکاری کنند. شاید بتوان اینگونه در نظر گرفت که در برخی موارد، حملهکنندگان یک حمله ساندویچی که ترکیبی از بک رانینگ و فرانت رانینگ است را ترتیب میدهند.
از دیگر مدلهای Back Running، مربوط به ری بیس (Rebase) برخی از کوینها و توکنها است. از ری بیس برای ثابت نگه داشتن قیمت برخی از داراییها استفاده میشود. مکانیسم ری بیس به این شکل عمل میکند که در صورت تغییر قیمت، برای ثابت نگه داشتن قیمت، موجودی کیف پول و عرضه در گردش تغییر پیدا میکند. به فرض مثال اگر ۱۰۰ عدد از توکن J داشته باشیم و قیمت آن کم شود، مقدار موجودی ما به ۹۵ عدد کاهش مییابد. این کاهش در نهایت باعث افزایش قیمت و بازگشت دارایی ما به سطح قبلی خود میشود. زمانی که فرایند ری بیسینگ در حال انجام است، بک رانرها وارد عمل میشود و تراکنشهای خود را ارسال میکنند که از اختلاف قیمت بهوجود آمده، بهرهمند شوند.
چگونه شانس موفقیت در بک رانینگ افزایش مییابد؟
انجام تراکنش در یک شبکه و ثبت آن در بلاک، توسط ماینرها انجام میشود. ماینرها نیز بهدنبال منفعت خود هستند و هر تراکنشی که کارمزد بالاتری پرداخت کند، اول از همه مورد بررسی قرار میگیرد. از آنجایی که بک رانرها بهدنبال کسب سود هستند، اگر پس از انجام تراکنش هدف مدام تراکنشهایی را با گس بالاتر ثبت کنند، حاشیه سود آنها کم و کمتر میشود و دیگر برای آنها توجیهپذیر نیست. البته عدهای ممکن است با وجود متحمل شدن هزینه بالا، هنوز انجام بک رانینگ برای عدهای سودآور و ارزنده باشد؛ اما اگر کسی نخواهد به این روش کار کند، روش دیگر یعنی ثبت متعدد تراکنش میروند.
برای مثال فرض کنید که میخواهید در یک مسابقه بختآزمایی شرکت کنید. تمام بلیطهای آن یک قیمت دارند و تنها یک روش وجود دارد که شانس شما برای برنده شدن افزایش پیدا کند؛ آن هم خرید چندین بلیط بختآزمایی است.
اما حالا چگونه یک بازیکن میتواند چندین تراکنش همزمان ارسال کند؟ همانطور که میدانیم یک کاربر در اتریوم، توسط نانس (Nonce) محدود میشود. نانس تراکنشهای انجام شده توسط یک آدرس واحد را پیگیری می کند و اگر تمام تراکنشهای منتهی به یک Nonce مشخص هنوز توسط ماینرها استخراج نشده باشند، هیچ تراکنش دیگری نمیتواند با آن نانس ماین شود.
پس چه کاری میتوان انجام داد؟ برای انجام یک بک رانینگ موفق باید از چندین حساب مختلف با یک میزان گس مشخص اقدام کرد. البته شاید این کار بهینه نباشد. حالت بهینهتر، فراخوانی قرارداد هوشمند از یک حساب است.
معایب و مشکلات بک رانینگ
شاید بک رانینگ در نگاه اول مانند فرانت مشکلی نداشته باشد و غیر اخلاقی به حساب نیاید. تنها مشکلی که پیش میآید این است که اگر افراد زیادی با این سیستم (بک رانینگ) وارد معامله و انجام تراکنش شوند، شبکه توسط تراکنشهای زیادی و بیهدف که سعی در انجام آربیتراژ دارند، شلوغ میشود و در نتیجه کارمزد تراکنش مدام افزایش خواهد یافت.
جمعبندی
در این مقاله به موضوع بک رانینگ ، پرداختیم. بک رانینگ جزو حملات دیفای قرار دارد و بهمعنای استفاده از فرصتهای بهوجود آمده بعد از یک تراکنش مشخص است. بک رانینگ ممکن است بعد از یک تراکنش خرید و فروش در یک دکس رخ دهد، ممکن است بعد از لیکوید شدن یک قرارداد وام دهی صورت بگیرد یا در اثر مکانیسم ری بیسینگ انجام شود.