سواپ USDT به مونرو در MoneroP2P چگونه کار میکند
پاسخ کوتاه: USDT شما در یک قرارداد هوشمند میماند که فقط وقتی میتواند به فروشنده پرداخت کند که او یک راز را آشکار کند. همان راز، نیمهای است که شما برای باز کردن آدرس مونرویی که فروشنده XMR را در آن گذاشته کم دارید. به همین دلیل سواپ «اتمی» است: یا هر دو طرف کامل میشوند یا هیچکدام. اگر مشکلی پیش بیاید، قرارداد USDT شما را برمیگرداند.
برای تازهکارها
گاوصندوقی با دو قفل را تصور کنید:
- شما و فروشنده («میکر») با هم یک آدرس مونرو میسازید و هر کدام فقط نیمی از کلید آن را دارید. بدون هر دو نیمه، هیچکس نمیتواند آنچه در آن است را جابهجا کند.
- شما USDT را در یک قرارداد واریز میکنید. قرارداد میداند نیمه کلید میکر را چگونه بررسی کند، اما خود آن را نمیداند.
- میکر XMR را به آدرس مشترک واریز میکند. برنامه بررسی میکند که مقدار درست رسیده باشد.
- شما در قرارداد تأیید میکنید که همه چیز درست است.
- میکر USDT را برداشت میکند و برای این کار باید نیمه کلیدش را به قرارداد بدهد، که قرارداد آن را روی زنجیره منتشر میکند.
- برنامه آن نیمه کلید را برمیدارد، با نیمه شما ترکیب میکند و XMR را به آدرس شما میفرستد.
اگر میکر هرگز XMR را واریز نکند، شما تأیید نمیکنید و USDT خود را با بازپرداخت پس میگیرید.
آنچه لازم دارید
| نیاز | برای |
|---|---|
| یک کیف پول مرورگری (متامسک یا سازگار) با USDT | واریز به قرارداد |
| کمی از رمزارز شبکه (مثلاً ETH روی Arbitrum) | پرداخت گس |
| یک آدرس مونرو | دریافت XMR (چگونه کیف پول بسازیم) |
| یک فایل بازیابی محافظتشده با رمز | ادامه دادن اگر زبانه را بستید |
دو مهلت (t0 و t1)
| زمان | آنچه شما میتوانید | آنچه میکر میتواند |
|---|---|---|
| پیش از t0، هنوز تأیید نشده | تأیید یا بازپرداخت | هیچ |
| پس از تأیید، یا بین t0 و t1 | انتظار | برداشت (با آشکار کردن رازش) |
| از t1 به بعد | بازپرداخت | هیچ |
مهم: اگر پیش از t0 نه تأیید کنید نه بازپرداخت، قرارداد به میکر اجازه برداشت میدهد، حتی اگر هرگز XMR واریز نکرده باشد. به همین دلیل وقتی XMR تا نزدیکی t0 بررسی نشود، برنامه بهطور خودکار از شما بازپرداخت میخواهد، و به همین دلیل باید فایل بازیابی را نگه دارید.
توضیح فنی
- نیمههای کلید. هر طرف یک اسکالر ۲۵۲ بیتی
sانتخاب میکند. کلید خرج آدرس مشترکS_taker + S_maker(ed25519) و کلید مشاهدهv_taker + v_makerاست. - اثبات DLEQ. هر طرف بدون فاش کردن ثابت میکند که پشت کلید ed25519 (مونرو) و یک کلید secp256k1 همان
sقرار دارد، و قرارداد همین را بررسی میکند. ما از ساختارsigma_funاستفاده میکنیم، همان که eigenwallet به کار میبرد. - قرارداد. برای هر سواپ یک اسکرو (کلون EIP-1167) مقادیر
keccak(s_maker·G)وkeccak(s_taker·G)را ذخیره میکند.claim(s_maker)وrefund(s_taker)راز را با ترفندی مبتنی برecrecoverبررسی میکنند. بازههای زمانی آنها هرگز همپوشانی ندارند. - بررسی XMR. میکر شناسه تراکنش و کلید تراکنش را میفرستد؛ برنامه بدون همگامسازی کامل کیف پول، پرداخت را با
check_tx_keyبررسی میکند. - انتقال نهایی. وقتی راز میکر در رویداد
Claimedظاهر شد، برنامهs_taker + s_makerرا محاسبه میکند و XMR را به آدرس شما میفرستد.
طراحی کامل در سند معماری (به اسپانیایی) آمده و بر پروتکل AthanorLabs استوار است.