یونی سواپ چیست؟
یونی سواپ چگونه کار میکند؟
همانطور که اشاره کردیم، Uniswap یک مارکت میکر اتوماتیک است، که در یک سیستم متشکل از قراردادهای هوشمند ساخته شده است. این پروتکل نیاز به واسطهها را از بین میبرد، در برابر سانسور مقاوم است و امنیت دارد. یونی سواپ یک برنامه تحت لیسانس (مجموعهای از مجوزها برای تضمین آزادی برای کاربران در زمینههای راهاندازی، یادگیری، بهاشتراکگذاری و تغییر و اصلاح نرمافزارها) است. جهت خرید و فروش تتر لطفا کلیک کنید.
هر جفت ارز دیجیتال در یونیسواپ، استخر نقدینگی مخصوص به خود را دارد. هر کسی میتواند با واریز کردن مقدار معادل از هر دو توکن در استخر نقدینگی، تبدیل به یک تامینکننده نقدینگی شود. در ازای این کار، به آنها یک LP Token یا توکن نقدینگی داده میشود، که در واقع نماینده نقدینگی او در استخرهاست. هر زمان که فرد اراده کرد، میتواند این توکنهای اصلی خود را با بازپرداخت توکنهای LP خود، برداشت کند.
نسخه ۱ یونی سواپ
در ورژن اول Uniswap، تمام استخرهای نقدینگی، با جفتهای اتر و یک توکن ERC20 تامین میشد. اگر کاربران میخواستند یک توکن ERC-20 را با توکن ای آر سی ۲۰ دیگر مبادله کنند، باید از روتر اتر استفاده میکردند، که در نتیجه کارمزد بیشتری باید پرداخت میکردند؛ زیرا امکان سواپ کردن مستقیم توکنها وجود نداشت. این موضوع، معایبی داشت:
- کارمزد بالاتر
- وابستگی شدید یونی سواپ به کوین اتر
- عدم امکان مبادله مستقیم توکنهای ERC20
به این دلایل، نسخه دوم یونی سواپ عرضه شد.
نسخه ۲ صرافی یونی سواپ
انتشار نسخه ۲ یونی سواپ در می ۲۰۲۰ (اردیبهشت ۹۹) شاهد یک ارتقای اساسی بود که امکان سواپ مستقیم ERC20 به ERC20 را فراهم میکرد و در جایی که لازم بود، توکن Wrap شده را از معادله حذف میکرد. همچنین یونی سواپ در نسخه ۲ پشتیبانی از توکنهای ناسازگار ERC20 مانند OMG و USDT و مجموعهای از پیشرفتهای فنی را اضافه کرد که استفاده از آن را جذابتر میکرد.
همچنانکه که محبوبیت و در سال ۲۰۲۰ به طور چشمگیری افزایش یافت، یونی سواپ نیز رشد مشابهی را تجربه کرد؛ زیرا بسیاری از پلتفرمهای به ارائهدهندگان نقدینگی یونی سواپ اجازه میدهند تا از توکنهای LP خود کسب سود کنند.
این امکان در ترکیب با ۰.۳ درصد کارمزدی که به ارائه دهندگان نقدینگی توزیع میشود، باعث شده است که یونی سواپ از نظر ارزش کل قفل شده (TVL) به یکی از صرافیهای پیشرو در صنعت بلاکچین تبدیل شود.
در دکسها، یکی از توکنها در ازای دیگری مبادله میشود. از آنجایی که استخرها معمولا بهصورت ۱ به ۱ تامین نقدینگی میشوند، اگر بخواهید یک توکن را Swap کنید، تقریبا به مقدار معادل، توکن دیگری را دریافت خواهید کرد. در نسخه دوم یونی سواپ، مبادله طبق فرمول سادهای انجام میشود:
x * y = k
در این فرمول، x و y نشاندهنده کوین ETH و توکنهای ERC20 موجود در استخر، یا دو توکن erc-20 موجود در استخر است و k نشاندهنده یک عدد ثابت است. زمانی که شما x و y را ضرب میکنید، ارزش آن باید همیشه برابر با ارزش k باشد. در ادامه، بیشتر درباره این فرمول صحبت خواهیم کرد.
در ورژن دوم یونی سواپ، ۰.۳ درصد کارمزد برای مبادلات دریافت میشود، که در بین تامینکنندگان نقدینگی آن استخر، نسبت به میزانی که نقدینگی را تامین کردهاند، تقسیم میشود.
کارمزد ۰.۳ درصدی برای پاداش به تامینکنندگان نقدینگی نسخه دوم یونی سواپ
به این دلیل که قیمت دو جفت ارز قابل معامله، از طریق مبادلات تغییر میکند، تفاوت بین قیمت یونی سواپ و قیمت صرافیهای دیگر، فرصتهای ایجاد میکند. این مکانیزم باعث میشود که قیمتهای Uniswap، تقریبا معادل قیمت بازار باشند.
روشی که یونیسواپ برای حل مشکل نقدینگی پیش گرفته، استفاده از یک پروتکل نقدینگی اتوماتیک است. بدین صورت که کاربران تشویق میشوند که تبدیل به تامینکننده نقدینگی شوند؛ زیرا مثلا اگر ۱۰۰۰ تتر و به میزان معادل آن اتر در استخر ETH/USDT تامین کنید، هر کاربری که این جفت ارز را مبادله کند، از کارمزد آنها (۰.۳ درصد) مقداری به شما میرسد.
کاربران با ادغام داراییهای خود در یک استخر، در واقع یک صندوق میسازند که تمام مبادلات آن جفت ارز، از آنجا انجام میشود. هر توکنی که در یونی سواپ لیست شده، دارای استخر خود است و کاربران میتوانند آن را تامین نقدینگی کنند. با این روش، خریدار یا فروشنده نیازی به انتظار برای پیدا شدن فروشنده یا خریدار مقابل ندارد و مبادله خود را به سرعت انجام میدهد؛ زیرا طرف مقابل او، استخر نقدینگی است.
در ازای تامین نقدینگی، شما یک توکن LP دریافت میکنید، که نماینده داراییهای شما در استخر است. برای مثال، فرض کنید که شما در استخری که ۱۰۰,۰۰۰ دلار نقدینگی دارد، ۱۰,۰۰۰ دلار نقدینگی تامین میکنید. در این صورت، ۱۰ درصد از تمام مبادلاتی که در آن استخر انجام میشود، به شما تعلق میگیرد؛ زیرا ۱۰ درصد از این استخر را شما تامین نقدینگی کردهاید. این توزیع فی، کاربران را تشویق به مشارکت در نقدینگی استخرها میکند و بدین صورت، مشکل نقدینگی دکسها برطرف میشود.
اگر تصمیم بگیرید که نقدینگی خود را از استخر خارج کنید، کافی است LP Token خود را در ازای دو توکن خود بازپرداخت کنید. در این صورت، توکن LP شما نابود میشود و دو توکن به کیف پول شما باز میگردد.
قیمت توکنها در یونی سواپ V2 چگونه مشخص میشود؟
یکی دیگر از المانهای مهم در این سیستم، نحوه تشخیص قیمت هر توکن است. در سیستم اوردربوک، که قیمت هر دارایی توسط بالاترین قیمت خرید و پایینترین قیمت فروش تعیین میشود. اما در یونی سواپ از سیستم مارکت میکر خودکار استفاده میشود؛ این روش، قیمت را بر اساس عرضه و تقاضا و یک معادله ریاضی مشخص میکند. در این روش، افزایش و کاهش قیمت یک رمزارز، بستگی به نسبت تعداد رمزارزهای موجود در استخر دارد.
زمانی که یک فرد میخواهد یک توکن ERC20 جدید به یونی سواپ اضافه کند، به همان معادل نیز باید کوین اتر یا یک توکن ERC20 دیگر را نیز بیافزاید. قیمت هر کدام از این توکنها بر اساس فرمول x*y=k محاسبه میشود؛ X معادل توکن A، y معادل توکن B و k نیز ثابت است و تغییر نمیکند.
برای مثال، فردی میخواهد از طریق یونی سواپ، توکن LINK را با اتر مبادله کند. این شخص مقدار زیادی LINK میخواهد خریداری کند و از آنجایی که اتر و لینک به میزان یکسان در استخر قرار دارند، نسبت نقدینگی آنها به هم میخورد؛ لینک به استخر اضافه میشود و اتر از استخر کم میشود. از آنجایی که k یک عدد ثابت است، ارزش اتر افزایش مییابد (زیرا مقدار آن کمتر است) و ارزش لینک کاهش مییابد (زیرا مقدار آن در استخر زیاد است). در نتیجه، این فرد مقدار اتر کمتری دریافت میکند (زیرا ارزش آن افزایش یافته است). یک مثال دیگر:
فرض کنید در استخر USDT/DAI (هر دو هستند و از آنجا که قیمت آنها برابر با ۱ دلار است، این مثال میتواند ملموستر باشد) ۱۰۰۰ و ۱۰۰۰ وجود دارد. این اعداد را در فرمول قرار میدهیم:
۱۰۰۰ * ۱۰۰۰ = ۱,۰۰۰,۰۰۰
اگر فردی بخواهد ۱۰۰ تتر را با ۱۰۰ دای مبادله کند، بنابراین موجودی تتر ۱۱۰۰ دلار و موجودی دای ۹۰۰ دلار خواهد شد. ما گفتیم که k (در این مثال عدد ۱,۰۰۰,۰۰۰) همواره ثابت است؛ اما اگر ۱۱۰۰ را ضربدر ۹۰۰ کنیم، عدد ۹۹۰,۰۰۰ بهدست میآید که درست نیست. از طرفی، دکسها قیمت را متوجه نمیشوند و تنها به تعادل نگاه میکنند. اگر این صرافیها قیمت را درک میکردند، به اندازه ۱۰۰ تتری که سواپ کرده بودیم، ۱۰۰ دای دریافت میکردیم (درست مثل صرافیهای متمرکز). اما کارکرد Dexها تفاوت دارد. چه اتفاقی رخ میدهد؟ زمانی که شما ۱۰۰ تتر میخواهید معامله کنید، در واقع میخواهید ۱۰۰ تتر به استخر اضافه کنید و ۱۰۰ دای از آن کم کنید. بنابراین ارزش تتر، چون تعداد آن بیشتر است، کاهش مییابد و ارزش دای به دلیل کمتر بودن تعداد آن، افزایش مییابد. در این صورت، شما تعداد کمتری DAI دریافت خواهید کرد؛ زیرا یونی سواپ طبق این فرمول، همیشه عدد k را ثابت نگه میدارد. پس:
X در اینجا عددی مجهول است. میخواهیم ببینیم که در صورتیکه موجودی تتر ۱۱۰۰ دلار شود، چه مقدار دای باید از استخر کم شود، تا عدد k همچنان ۱,۰۰۰,۰۰۰ باقی بماند.
پس ۱,۰۰۰,۰۰۰ را تقسیم بر ۱۱۰۰ میکنیم که نتیجه ۹۰۹.۰۹ میشود. بنابراین حدود ۱۰ درصد، توکن DAI کمتری دریافت خواهیم کرد؛ زیرا استخر باید متعادل باقی بماند. با سواپ کردن ۱۰۰ تتر، ما ۹۰.۱ دای دریافت خواهیم کرد.
معکوس این موضوع نیز صادق است؛ در استخری که ۱۱۰۰ تتر و ۹۰۹.۰۹ دای موجود است، در صورتی که بخواهیم دای را با تتر سواپ کنیم، حدود ۱۰ درصد تتر بیشتری دریافت خواهیم کرد:
بنابراین:
۱,۰۰۰,۰۰۰ تقسیم بر ۹۰۹.۰۹ = ۱۱۰۰
پس اگر ما ۱۰۰ دای را با ۱۰۰ تتر سواپ کنیم، ۱۰۹ تتر دریافت خواهیم کرد. به این درصد تغییری که در نهایت در سواپ ما ایجاد میشود، Price Impact یا تاثیر قیمت گفته میشود.
درک این موضوع در دکسها بسیار مهم است، که این مکانیزمها قیمت را متوجه نمیشوند؛ به عبارتی دیگر، دکسها قیمتها را از بازار نمیگیرند، بلکه بر اساس تعادل استخرها، قیمتها را تعیین میکنند. اگر تعادل استخر به هم بخورد، قیمت رمزارزها نیز تغییر خواهد کرد. در مثال بالا، هر دو توکن استیبل کوین بودند و قیمت آنها با هم برابر بود؛ اما با به هم خوردن تعادل، حدود ۱۰ درصد قیمتها تفاوت پیدا کرد. البته در واقعیت، اندازه استخرها بسیار بزرگتر است و بنابراین، تغییر قیمتها چندان به چشم نمیآید.
اندازه یا سایز استخر نقدینگی نیز بر روی تعیین قیمت توکنها تاثیر میگذارد؛ هرچه نقدینگی بیشتری در یک استخر وجود داشته باشد، مبادلات بزرگتر، تاثیر کمتری بر روی تغییر قیمتها میگذارند.
آربیتراژ
آربیتراژکنندگان در اکوسیستم یونی سواپ (صرفنظر از نسخه آن) نقش مهمی بازی میکنند. اینها تریدرهایی هستند که به دنبال یافتن قیمتهای متفاوت از یک دارایی، در صرافیهای مختلف هستند و از مبادله آنها سود کسب میکنند. برای مثال، فرض کنید که در صرافی کراکن با قیمت ۳۵,۵۰۰ دلار و در صرافی ، با قیمت ۳۵,۴۵۰ دلار معامله میشود. آربیتراژکننده، بیتکوین را از بایننس میخرد و در صرافی کراکن میفروشد و بدین ترتیب، ۵۰ دلار سود کسب میکند. آربیتراژ ریسک کمی دارد و اگر با مبالغ بالا انجام شود، سود خوبی برای تریدر به همراه دارد.
کاری که آربیتراژکنندگان در یونی سواپ انجام میدهند، این است که توکنهایی را پیدا کنند که قیمت آنها بالاتر یا پایینتر از میانگین قیمت بازار است و آن را میخرند یا از صرافی دیگری تهیه میکنند و در یونی سواپ میفروشند (آنها با خرید مبالغ بالا از یک توکن، باعث عدم تعادل استخر میشوند). این تریدرها این کار را آنقدر انجام میدهند، تا قیمت توکن دوباره با صرافیهای دیگر بالانس شود و دیگر نتوانند از خرید و فروش آن سود کسب کنند. سپس دنبال یک توکن دیگر میگردند و همین کار را با آن انجام میدهند. بنابراین آربیتراژکنندگان نقش بسیار مهمی در معادلسازی در یونی سواپ و دیگر صرافیها دارند.
نسخه سوم یونی سواپ
در ماه می ۲۰۲۱ (اردیبهشت ۱۴۰۰)، نسخه ۳ یونی سواپ راهاندازی شد که ویژگیهای جدیدی را به پلتفرم اضافه کرد؛ اول از همه، ویژگی نقدینگی متمرکز است. این خصوصیت، ارائه دهندگان نقدینگی را قادر میسازد تا نقدینگی را در یک محدوده قیمتی سفارشی تامین کنند.
همچنین نسخه سوم صرافی یونی سواپ، سطوح کارمزد بیشتری را اضافه کرده است و معاملهگران را قادر میسازد تا سطح ریسک خود را در هنگام معامله داراییهای بیثبات، بهتر تعیین کنند. علاوهبراین، اوراکلهایی اضافه کرده است، که تضمین میکند قیمتهای DEX بهروز هستند.
یونی سواپ V3 این موارد جدید را معرفی کرد:
- نقدینگی متمرکز، که به تامینکنندگان نقدینگی این امکان را میدهد که بازه قیمتی برای نقدینگی خود تعیین کنند و زمانی که قیمت دارایی به این بازه رسید، پاداش کارمزد سواپ کاربران را دریافت کنند. در واقع هر تامینکننده، برای بازه مشخصی از قیمت تامین نقدینگی میکند. بنابراین تمام این بازهها در کنار یکدیگر، یک منحنی را تشکیل میدهند.
- سطوح مختلف کارمزد، که با تامینکنندگان نقدینگی اجازه میدهد که درجات مختلفی از ریسک داشته باشند. در نسخه دوم، پاداش ۰.۳ درصد از فی کاربران بود و در تمام استخرها ثابت بود. با این روش، شما میتوانید با انتخاب بازه کمتری از قیمت، درصد فی بیشتری دریافت کنید.
- این موضوعات باعث بهرهوری سرمایه میشود و اسلیپیج معاملات را کاهش میدهد.
در یونی سواپ V2 نقدینگی بر اساس فرمول x*y=k و بهصورت خطی و مساوی توزیع میشد و داراییها بین قیمتهای ۰ تا بینهایت حرکت میکنند. در بیشتر استخرها، اکثریت این استخرها بهکار نمیآید. برای مثال، جفت ارز DAI/USDC تنها ۰.۵ درصد سرمایه را برای معامله بین ۰.۹۹ تا ۱.۰۱ دلار ذخیره میکند؛ محدوده قیمتیای که تامینکنندههای نقدینگی انتظار دارند بیشترین حجم را در آن ببینند و در نتیجه بیشترین کارمزد را دریافت کنند. LPها تنها در بخش کوچکی از سرمایه خود کارمزد دریافت میکنند، که میتواند ضرر ناپایدار (Impermanent Loss) را جبران کند و شاید مقدار کمی سود برای تامینکننده باقی بماند.
در Uniswap V3 تامین کنندگان نقدینگی میتواند سرمایه خود را در بین بازه خاصی از قیمت متمرکز کند. این باعث میشود که در این قیمتها، نقدینگی بیشتری تجمیع شود، که این موضوع باعث اسلیپیج بسیار پایینتر نسبت به نسخه دوم یونی سواپ شود. برای مثال در استخر DAI/USDC که نوسان قیمت بسیار کمی دارد (هر دو استیبل کوین هستند)، تامینکنندگان میتوانند در بازههای ۰.۹۹ تا ۱.۰۱ دلار نقدینگی بسیار زیادی تامین کنند و در نتیجه، هم درصد بیشتری از کارمزد را دریافت کنند و هم مبادلهکنندگان با Slippage کمتری مواجه شوند؛ زیرا همانطور که اشاره کردیم، هرچه میزان نقدینگی یک استخر بیشتر باشد، تعادل آن کمتر بههم میخورد و اسلیپیج نیز کمتر میشود.
مشخص کردن بازه قیمتی در نسخه ۳ یونی سواپ
LPها حتی میتوانند سرمایه خود را در یک استخر تقسیم کنند؛ مثلا در استخر ETH/DAI، انتخاب کنند که ۱۰۰ دلار نقدینگی را در بین بازه قیمتی ۱۰۰۰ تا ۲۰۰۰ دلار تامین کنند و ۵۰ دلار از سرمایه خود را نیز به تامین نقدینگی بازه ۱۵۰۰ تا ۱۷۵۰ دلار اختصاص دهند؛ طبیعتا در بازههای قیمتی کوچکتر، تعداد تامین کنندگان نقدینگی کمتر است و بنابراین، کارمزدهای بیشتری به LPها میرسد.
برای مثال، شخص شماره ۱ و شخص شماره ۲، هر دو میخواهند در استخر ETH/DAI تامین نقدینگی کنند و هر کدام از آنها نیز ۱ میلیون دلار سرمایه دارند. قیمت فعلی اتر نیز ۱۵۰۰ دای است.
شخص شماره ۱ تصمیم میگیرد که سرمایه خود را به کل بازههای قیمتی اختصاص دهد (درست مانند ورژن ۲). بنابراین او ۵۰۰,۰۰۰ دای و ۳۳۳.۳۳ اتر (جمعا ۱ میلیون دلار) تامین نقدینگی میکند.
نفر دوم یک پوزیشن متمرکز ایجاد میکند؛ او تصمیم میگیرد که تنها در بازه قیمتی ۱۰۰۰ تا ۲۲۵۰ دلار سرمایه تامین کند. او ۹۱,۷۵۱ دای و ۶۱.۱۷ اتر جمعا معادل ۱۸۳,۵۰۰ دلار تامین نقدینگی میکند و مابقی ۸۱۶,۵۰۰ دلار خود را نگه میدارد.
با این که شخص شماره ۱ حدود ۵.۵ برابر شخص ۲ تامین نقدینگی کرده، اما در صورتیکه قیمت ETH/DAI در بازه ۱۰۰۰ تا ۲۲۵۰ دلار باقی بماند، هر دو به همان میزان کارمزد دریافت میکنند. حتی پوزیشن متمرکز فرد شماره ۲، میتواند بهعنوان یک حد ضرر (Stop-Loss) عمل کند؛ زیرا اگر به ۰ برسد، فرد اول کل ۱ میلیون دلار خود را از دست میدهد و تنها یکپنجم از سرمایه فرد شماره ۲ از بین میرود.
اگر قیمت خارج از بازه قیمتی کاربران حرکت کند، کارمزد دریافت نخواهند کرد و آنها باید منتظر باشند که قیمت دوباره به همان بازه برگردد، تا فی دریافت کنند.
ادغام یونی سواپ با راهکارهای لایه ۲
ادغام راهکارهای لایه ۲ با یونی سواپ، باعث رشد چشمگیر Uniswap، و است. هیدن آدامز بنیانگذار صرافی یونی سواپ، اعلام کرده که با ادغام این راهحلهای لایه دوم، بیشترین حجم معاملات در یک دوره ۲۴ ساعته، به ۳۳.۴ میلیون دلار رسیده است. این صرافی همچنین از شبکه نیز پشتیبانی میکند و میتوانید توکنهای این شبکه را با یکدیگر مبادله کنید.
در نوامبر ۲۰۲۰ (آبان ۹۹)، آربیتروم ادعا کرد که در شبکه آزمایشی یونیسواپ نسخه ۲ که از ۳۹۰ سواپ در ثانیه پشتیبانی میکند، در مقایسه با تنها هفت سواپ در شبکه اصلی اتریوم، به کاهش ۵۵ برابری هزینههای گس دست یافته است.
آربیتروم به گونهای طراحی شده است که به توسعهدهندگان اجازه میدهد تا به راحتی قراردادهای هوشمند سازگار با و تراکنشهای اتریوم را بدون هیچ تغییری در کد، در لایه دوم اجرا کنند و در عین حال از امنیت لایه ۱ اتریوم نیز بهرهمند شوند.
آربیتروم از تکنیکی به نام Rollups برای ثبت دستهای از تراکنشهای ارسالشده در زنجیره اصلی اتریوم و اجرای آنها بر روی زنجیره جانبی لایه ۲ استفاده میکند و از شبکه اصلی اتریوم برای اطمینان از صحت نتایج استفاده میکند. این فرآیند به تخلیه هر چه بیشتر بار محاسباتی اتریوم که در حال حاضر از آن رنج میبرد، کمک میکند.
Optimism یک راه حل مقیاسپذیری لایه ۲ اتریوم است، که از Optimistic Rollups برای دستیابی به هزینههای بسیار کمتر، تاخیر بسیار کمتر و توان عملیاتی بسیار بیشتر در مقابل لایه ۱ اتریوم استفاده میکند و در عین حال کاربری را نیز بهبود میدهد.
در جولای ۲۰۲۱ (تیر ۱۴۰۰)، نسخه ۳ یونی سواپ در آپتیمیزم راهاندازی شد که مزایای زیر را برای کاربران به ارمغان میآورد:
- سرعت به همراه امنیت.
- کاهش هزینههای گس تا ۳۵ برابر نسبت به شبکه اصلی.
- با استفاده از رولآپهای آپتیمیستیک، تغییرات حالت (State) با حداقل بررسی در شکه اصلی منتشر میشود، که امکان سرعت بیشتر را فراهم میکند.
- صرفهجویی تا ۱۰ برابر در هزینهها با استفاده از Optimism.