رمز ۳۱۳مرحلهٔ تصمیم، درس ۱۳ از ۲۵ صرافی و نخستین خرید
اسلیپیج چیست؛ لغزش قیمت در معامله و تنظیم تحمل لغزش
اسلیپیج یا لغزش قیمت فاصلهٔ قیمتی است که دیدید با قیمتی که معامله واقعاً به آن اجرا شد؛ علتها، تحمل لغزش، حملهٔ ساندویچی و راههای کاهش آن.
لغزش قیمت یا اسلیپیج (Slippage) فاصلهٔ بین قیمتی است که هنگام ثبت معامله انتظارش را دارید و قیمتی که معامله در عمل به آن انجام میشود [۱]. این فاصله بیشتر وقتی پیدا میشود که بازار سریع حرکت میکند، نقدینگی کم است یا سفارش شما نسبت به عمق بازار بزرگ است. لغزش همیشه به زیان شما نیست، اما در سفارش بازار و در سواپهای صرافی غیرمتمرکز باید آن را بخشی از هزینهٔ واقعی معامله حساب کنید.
قیمتی که دیدید و قیمتی که گرفتید
عددی که در صفحهٔ معامله میبینید، تصویری از یک لحظهٔ گذشته است: آخرین قیمتی که معاملهای به آن انجام شده یا بهترین پیشنهادی که در همان لحظه در بازار بوده است. سفارش شما اما چند لحظه بعد و با سفارشهایی اجرا میشود که آن لحظه واقعاً در بازار حاضرند. اگر در این فاصله چیزی تغییر کند، قیمت نهایی با عددی که دیدید فرق خواهد داشت. همین تفاوت را لغزش قیمت مینامند.
کمیسیون بورس و اوراق بهادار آمریکا (SEC) «سفارش بازار» را سفارش خرید یا فروش فوری تعریف میکند؛ سفارشی که اجرا شدن را در اولویت میگذارد ولی قیمت اجرا را از پیش معلوم نمیکند [۲]. نهاد خودانتظامی کارگزاریهای آمریکا (FINRA) هم میگوید سفارش بازار رایجترین نوع سفارش است و بیشترین اطمینان را از اجرا شدن میدهد، ولی ممکن است به قیمتی که دیده یا اعلام شده بود اجرا نشود، بهویژه در بازاری که سریع حرکت میکند [۳]. بنابراین اگر در راهنمای نخستین خرید ارز دیجیتال سفارش بازار را انتخاب میکنید، بدانید عدد روی صفحه یک برآورد است، نه قیمت نهایی.
فرق کلی این دو نوع سفارش در مقایسهٔ سفارش بازار و سفارش لیمیت آمده است.
مثال فرضی
فرض کنید در دفتر سفارش یک صرافی فرضی، فروشندگان اینطور صف کشیدهاند: ۲ واحد به قیمت ۱۰۰ دلار، ۳ واحد به قیمت ۱۰۱ دلار و بقیه به قیمت ۱۰۴ دلار. شما با دیدن عدد ۱۰۰ دلار، سفارش بازار برای ۵ واحد ثبت میکنید و انتظار دارید ۵۰۰ دلار بپردازید. سفارش شما ابتدا ۲ واحد ارزانتر را به ۲۰۰ دلار و سپس ۳ واحد بعدی را به ۳۰۳ دلار پر میکند؛ جمعاً ۵۰۳ دلار. میانگین قیمت شما ۱۰۰٫۶ دلار شده است و آن ۳ دلار اضافه، لغزش قیمت است. همهٔ این عددها فرضیاند و در این مثال هیچکس قیمت را دستکاری نکرده است؛ فقط عمق بازار کافی نبوده است.
لغزش با اسپرد در معاملات ارز دیجیتال یکی نیست. اسپرد فاصلهٔ بهترین قیمت خرید و بهترین قیمت فروش در یک لحظه است و پیش از ثبت سفارش دیده میشود؛ لغزش فاصلهٔ قیمت مورد انتظار و قیمت اجراست و اغلب فقط پس از معامله معلوم میشود. هر دو هزینهاند و روی هم جمع میشوند.
چرا لغزش رخ میدهد
چند عامل، جدا یا با هم، قیمت اجرا را از قیمت دیدهشده دور میکنند:
- سرعت حرکت بازار. در دقیقههایی که خبری منتشر میشود یا قیمت تند بالا و پایین میرود، سفارشهای موجود در دفتر سفارش پیاپی پر یا لغو میشوند. بین لحظهای که شما قیمت را میبینید و لحظهای که سفارشتان به موتور معاملات میرسد، تصویر بازار عوض شده است. FINRA هم همین بازارهای پرشتاب را جای اصلی این خطر میداند [۳].
- نقدینگی کم. نقدینگی یعنی اینکه در هر سطح قیمت چه مقدار سفارش آمادهٔ معامله است. در داراییهای کمحجم یا در ساعتهای خلوت، فاصلهٔ سطحهای قیمت در دفتر سفارش زیاد است و حتی سفارش متوسط هم به سطحهای گرانتر میرسد.
- اندازهٔ سفارش نسبت به عمق بازار. مثال فرضی بالا نشان داد که سفارش بزرگتر لایههای بیشتری از دفتر سفارش را مصرف میکند. سفارشی که برای یک بازار عمیق ناچیز است، در بازاری کمعمق میتواند قیمت را چند پله جابهجا کند.
- صف انتظار در بلاکچین. در صرافی غیرمتمرکز، معامله یک تراکنش است که باید در بلوک بعدی بلاکچین ثبت شود. تا آن لحظه، تراکنشهای دیگری ممکن است پیش از تراکنش شما اجرا شوند و قیمت استخر را تغییر دهند. هرچه شبکه شلوغتر و رقابت بر سر کارمزد شبکه بیشتر باشد، این فاصلهٔ زمانی و ابهام قیمت نهایی بیشتر میشود.
راهنمای Uniswap Labs بر یک تمایز مهم تأکید میکند: «اثر قیمتی» (Price Impact) با «لغزش قیمت» یک معنا ندارد [۱]. اثر قیمتی تغییری است که خود معاملهٔ شما، بسته به نقدینگی استخر، در قیمت ایجاد میکند. لغزش فاصلهٔ بین قیمتی است که انتظارش را دارید و قیمتی که پس از اتمام سواپ واقعاً دریافت میکنید؛ به همین دلیل، تغییرهایی که دیگران در همان فاصله در استخر ایجاد کردهاند نیز در آن منعکس میشود.
لغزش در صرافی غیرمتمرکز و تنظیم تحمل
سازوکار قیمتگذاری در صرافی متمرکز و صرافی غیرمتمرکز متفاوت است. صرافی غیرمتمرکز که در دیفای رایج است، معمولاً دفتر سفارش ندارد. بانک تسویه بینالملل (BIS) در بازبینی فصلی دسامبر ۲۰۲۱ توضیح میدهد که پروتکلهای «بازارساز خودکار» (AMM) به معاملهگران اجازه میدهند یک رمزدارایی را بهطور خودکار روی بلاکچین با رمزدارایی دیگر مبادله کنند؛ تأمینکنندگان نقدینگی دارایی خود را در «استخرهای نقدینگی» میگذارند و نرخ مبادله با تابع «حاصلضرب ثابت» تعیین میشود [۴].
معنای سادهاش این است که حاصلضرب مقدار دو توکن در استخر باید ثابت بماند. وقتی شما توکن الف را به استخر میدهید و توکن ب برمیدارید، مقدار ب در استخر کم میشود و هر واحد بعدی آن گرانتر میشود. هرچه استخر کوچکتر و معامله بزرگتر باشد، این جابهجایی تندتر است. به همین دلیل در یک استخر کمعمق، اثر قیمتی یک سواپ متوسط هم میتواند چشمگیر باشد.
تحمل لغزش چه کاری میکند
رابط کاربری بیشتر صرافیهای غیرمتمرکز پیش از تأیید سواپ، گزینهای به نام «تحمل لغزش» (Slippage Tolerance) نشان میدهد. این تنظیم به قرارداد هوشمند میگوید اگر قیمت نهایی بیش از این مقدار به ضرر شما جابهجا شد، سواپ را اجرا نکند. معمولاً کنار آن عددی مانند «حداقل دریافتی» هم نمایش داده میشود که همان بدترین نتیجهای است که با این تنظیم پذیرفتهاید.
رمزکلاس عدد مشخصی برای تحمل لغزش پیشنهاد نمیکند، چون هر عدد ثابتی در یک استخر عمیق و آرام بیش از اندازه گشادهدستانه و در یک استخر کمعمق و پرنوسان بیش از اندازه تنگ است. منطق انتخاب را میتوان اینطور خلاصه کرد:
- تحمل پایینتر: از شما در برابر قیمت بد محافظت میکند، اما اگر بازار کمی حرکت کند، تراکنش شکست میخورد و برمیگردد.
- تحمل بالاتر: احتمال اجرا را بیشتر میکند، اما بدترین قیمتی را که پذیرفتهاید بدتر میکند و، چنانکه در بخش بعد میبینید، به مهاجمان فضای بیشتری میدهد.
- پرسش درست: بهجای «چه عددی بگذارم؟» از خود بپرسید «اگر نتیجه دقیقاً همین حداقل دریافتی باشد، باز هم این معامله را میخواهم؟».
تحمل بسیار بالا مثل چک سفید است
قرارداد هوشمند هر قیمتی را تا سقف تحمل شما معتبر میداند. اگر رابط کاربری برای اجرای یک سواپ از شما میخواهد تحمل را به شکل غیرعادی بالا ببرید، آن را نشانهٔ نقدینگی بسیار کم، توکنی با سازوکار انتقال غیرعادی یا حتی یک دام بدانید و پیش از ادامه بررسی کنید. در بسیاری از شبکهها، تراکنش ناموفق هم کارمزد شبکه مصرف میکند.
حملهٔ ساندویچی
لغزش همیشه حاصل حرکت طبیعی بازار نیست. BIS در همان بازبینی هشدار میدهد که چون حجم سفارش پیش از اثر قیمتیاش علنی است، یک معاملهگر بدخواه میتواند درست پیش از آن سفارش خرید کند، درست پس از آن به فروش برساند و سود بگیرد [۴].
مستندات ethereum.org این رفتار را در چارچوب «ارزش استخراجپذیر حداکثری» (MEV) توضیح میدهند: بیشترین ارزشی که فراتر از پاداش استاندارد بلوک و کارمزد گس، با گنجاندن، حذف یا جابهجا کردن ترتیب تراکنشها در بلوک به دست میآید [۵]. حملهٔ ساندویچی سه مرحله دارد:
- مهاجم سواپ بزرگ شما را پیش از ثبت در بلوک میبیند و اثر قیمتی آن را تخمین میزند.
- تراکنشی درست پیش از تراکنش شما ثبت میکند و همان توکن را ارزان میخرد.
- پس از اجرای سواپ شما که قیمت را بالا برده است، همان توکن را به قیمت بالاتر میفروشد.
نتیجه این است که شما، که میان این دو تراکنش گیر افتادهاید، قیمت بدتری میگیرید [۵]. رابطهٔ این حمله با تحمل لغزش از خود سازوکار آن پیداست: مهاجم فقط تا جایی میتواند قیمت را به ضرر شما جابهجا کند که سواپ شما همچنان در محدودهٔ تحمل بماند؛ اگر از آن بگذرد، تراکنش شما برمیگردد و نقشهٔ او به هم میخورد. این یک نتیجهگیری منطقی است، نه یک آمار: هرچه تحمل گشادهدستانهتر باشد، سهم بالقوهٔ مهاجم بزرگتر است.
ابعاد این پدیده
پژوهش دانشگاهی کایهوا چین، لییی ژو و آرتور جرویس که در همایش امنیت و حریم خصوصی IEEE در سال ۲۰۲۲ ارائه شد، برآورد کرد که حملههای ساندویچی، لیکوئیدیشنها و آربیتراژ در صرافیهای غیرمتمرکز در یک بازهٔ ۳۲ ماهه روی اتریوم ۵۴۰٫۵۴ میلیون دلار سود برای ۱۱٬۲۸۹ نشانی ایجاد کردهاند [۶]. این رقم فقط به حملهٔ ساندویچی مربوط نیست، اما بخشی از آن هزینهای است که معاملهگران عادی به شکل قیمت بدتر پرداختهاند.
لغزش مثبت هم هست
لغزش فقط یک جهت ندارد. اگر در فاصلهٔ ثبت تا اجرای سفارش، قیمت به نفع شما حرکت کند، ممکن است قیمتی بهتر از آنچه دیدید بگیرید. در همان مثال فرضی، اگر درست پیش از رسیدن سفارش شما فروشندهای تازه ۵ واحد به قیمت ۹۹ دلار عرضه کرده بود، سفارش بازار شما ۵ واحد را به ۴۹۵ دلار پر میکرد، یعنی کمتر از آنچه انتظار داشتید.
سفارش محدود همین منطق را صریح میکند. به تعریف FINRA، سفارش محدود فقط به قیمت تعیینشده یا بهتر اجرا میشود و وقتی به کار میرود که گرفتن قیمت درست از سرعت اجرا مهمتر باشد [۳]. در این نوع سفارش لغزش منفی راه ندارد و بهبود قیمت ممکن است، ولی بهای آن احتمال اجرا نشدن یا نیمهاجرا ماندن سفارش است.
دو نکته را فراموش نکنید. نخست، اینکه لغزش مثبت در صرافی یا رابط کاربری به خود شما برسد یا نه، به قواعد همان پلتفرم بستگی دارد؛ پیش از معامله، راهنمای آن را بخوانید. دوم، لغزش مثبت اتفاقی است و نمیتوان روی آن حساب کرد. تنظیم تحمل لغزش هم فقط سمت منفی را محدود میکند؛ بنابراین برنامهٔ معاملهٔ شما باید بر پایهٔ بدترین نتیجهٔ پذیرفتهشده باشد، نه بهترین.
کاهش ریسک لغزش
لغزش را نمیتوان کاملاً حذف کرد، اما میتوان آن را کوچک و قابل پیشبینی کرد.
پیش از ثبت سفارش یا تأیید سواپ
- اگر قیمت برایتان مهمتر از سرعت است، سفارش محدود را در نظر بگیرید؛ FINRA همین کاربرد را برای آن ذکر میکند [۳].
- پیش از سفارش بازار، عمق دفتر سفارش را نگاه کنید و ببینید مقدار سفارش شما چند سطح قیمت را پر میکند.
- در دقیقههای پرشتاب، مثلاً بلافاصله پس از یک خبر مهم، از ثبت سفارش بازار بزرگ پرهیز کنید.
- در دارایی کمحجم، سفارش بزرگ را به چند بخش کوچکتر تقسیم کنید تا هر بخش لایههای کمتری از بازار را مصرف کند.
- در صرافی غیرمتمرکز، پیش از تأیید، «اثر قیمتی» و «حداقل دریافتی» را بخوانید، نه فقط قیمت نمایشدادهشده.
- تحمل لغزش را آگاهانه و با توجه به عمق استخر تعیین کنید و آن را فقط برای اینکه یک سواپ اجرا شود بالا نبرید.
- پیش از معاملهٔ اصلی، با مبلغی کوچک آزمایش کنید تا رفتار بازار یا استخر و کارمزدها را ببینید.
- هزینهٔ کل را با هم حساب کنید: کارمزد معامله، اسپرد، لغزش و در شبکههای بلاکچینی کارمزد شبکه.
سفارش توقف هم لغزش دارد
سفارش توقف (استاپ) را بسیاری برای محدود کردن زیان به کار میبرند، اما طبق تعریف SEC، این سفارش وقتی قیمت به «قیمت توقف» برسد به سفارش بازار تبدیل میشود؛ یعنی همهٔ خطرهای لغزش را با خود دارد و در بازاری که تند سقوط میکند ممکن است بسیار پایینتر از قیمت توقف اجرا شود. سفارش توقف-محدود ویژگیهای هر دو نوع را با هم دارد. در مثال فرضی SEC، سفارش فروش با قیمت توقف ۳ دلار و قیمت محدود ۲٫۵۰ دلار وقتی قیمت به ۳ دلار برسد فعال میشود، ولی فقط به قیمت ۲٫۵۰ دلار یا بهتر اجرا میشود [۲]. بهای این محافظت آن است که اگر قیمت سریع از ۲٫۵۰ دلار پایینتر برود، سفارش ممکن است اصلاً اجرا نشود.
شفافیت قیمت و قواعد اجرای سفارش یکی از معیارهایی است که در چکلیست ارزیابی امنیت و اعتبار صرافی هم به آن پرداختهایم. اگر برای استفاده از صرافی غیرمتمرکز دارایی را به کیف پول خودتان منتقل میکنید، پیش از آن مراحل و اهمیت برداشت به کیف پول شخصی را مرور کنید. این درس بخشی از مسیر آموزشی صرافی و نخستین خرید ارز دیجیتال است.
خودتان را بسنجید
تحمل لغزش را چقدر بگذارم؟
رمزکلاس عدد مشخصی پیشنهاد نمیکند، چون مقدار مناسب به نقدینگی استخر، سرعت حرکت بازار و اندازهٔ معاملهٔ شما بستگی دارد. تحمل بالاتر احتمال اجرای تراکنش را بیشتر میکند، ولی بدترین قیمتی را که پذیرفتهاید بدتر میکند و به مهاجم فضای بیشتری میدهد. تحمل پایینتر از شما محافظت میکند، اما ممکن است تراکنش شکست بخورد.
چرا تراکنشم با خطای لغزش شکست خورد؟
در صرافی غیرمتمرکز، اگر قیمت تا لحظهٔ اجرا بیش از تحملی که تعیین کردهاید به ضرر شما جابهجا شود، قرارداد هوشمند سواپ را اجرا نمیکند و تراکنش برمیگردد. علت معمولاً نوسان سریع، نقدینگی کم استخر یا معاملهای بزرگ نسبت به استخر است. در بسیاری از شبکهها کارمزد شبکهٔ تراکنش ناموفق هم پرداخت میشود، پس پیش از تکرار، علت را بررسی کنید.
حملهٔ ساندویچی چیست؟
در حملهٔ ساندویچی، مهاجم سواپ بزرگ در انتظار شما را میبیند، درست پیش از آن همان توکن را میخرد و درست پس از آن، به قیمتی که معاملهٔ شما بالا برده، میفروشد. نتیجه این است که شما قیمت بدتری میگیرید. مستندات ethereum.org این رفتار را بخشی از «ارزش استخراجپذیر حداکثری» (MEV) توضیح میدهد.
در صرافی متمرکز هم لغزش داریم؟
بله. سفارش بازار در صرافی متمرکز با سفارشهای موجود در دفتر سفارش جفت میشود و اگر عمق بازار کم باشد یا قیمت سریع حرکت کند، بخشی از سفارش به قیمتهای بدتر پر میشود. FINRA هم تصریح میکند سفارش بازار ممکن است به قیمتی که دیده بودید اجرا نشود. سفارش محدود این ریسک را با پذیرفتن احتمال اجرا نشدن مهار میکند.
منابع
- Price Impact vs Price Slippage – Uniswap Labs مشاهدهٔ منبع Price Impact vs Price Slippage – Uniswap Labs
- Types of Orders | Investor.gov مشاهدهٔ منبع Types of Orders | Investor.gov
- Order Types | FINRA.org مشاهدهٔ منبع Order Types | FINRA.org
- Trading in the DeFi era: automated market-maker مشاهدهٔ منبع Trading in the DeFi era: automated market-maker
- Maximal extractable value (MEV) | ethereum.org مشاهدهٔ منبع Maximal extractable value (MEV) | ethereum.org
- [2101.05511] Quantifying Blockchain Extractable Value: How dark is the forest? مشاهدهٔ منبع [2101.05511] Quantifying Blockchain Extractable Value: How dark is the forest?