مبادله اتمی مختصر یا SAS، در واقع تکاملی از مبادله اتمی یا مبادله اتمی است که میتوانیم آنها را در چندین بلاک چین مشاهده کنیم. تفاوت این است که SAS به دنبال سادهتر، کارآمدتر و ایمنتر کردن روش کار این فناوری است.
توسعه دهندگان بلاک چین به طور فزاینده ای بر روی ارائه عملکردهای جدید متمرکز شده اند، به ویژه آنهایی که امکان عملیات متقابل چندین بلاک چین را فراهم می کنند، و یکی از آن فناوری ها، Succinct Atomic Swapیا مبادلات مختصر اتمی است.
Succinct Atomic Swap (SAS)، بهبود در Succinct Atomic Swap
ایده Succinct Atomic Swap (SAS) در ذهن روبن سامسن ریشه دارد، که در ۱۱ می ۲۰۲۰، پیام زیر را در لیست توسعه بیت کوین نوشت: SAS: Succinct Atomic Swap. سامسن در این پیام ایده ای را توضیح داد که امکان ایجاد تبادلات اتمی را به سرعت، با پیچیدگی کمتر کد و اسکریپت و با فعالیت کم در بلاک چین ممکن می کرد. همه اینها در حالی که از انعطاف پذیری ECDSA بهره می برند و حتی با استفاده از آدرس های چند امضایی شرکت های Schnorr (MultiSig) به آینده نگاه می کنند.
ایده سامسن بر اساس کار تیم مونرو (XMR) و مبادله اتمی آنها بین مونرو و بیت کوین بود. و همچنین، من در مورد آنچه توسط کاربر @TierNolan در سال ۲۰۱۳ در انجمن معروف Bitcointalk ارائه شد، ایده گرفتم. در هر یک از موارد، پیشنهاد سامسن روش انجام مبادلات اتمی را تا حد زیادی ساده میکند و در عین حال تأثیر آنها بر زنجیره بلوکی را کاهش میدهد، بدون اینکه امنیت و حریم خصوصی آنها قربانی شود.
با وجود ایده درخشان، این نوع پروتکل هنوز ساخته نشده است و در یک مدل آزمایشی باقی مانده است.
پروتکل چگونه کار می کند؟
اکنون، عملکرد این پروتکل در وهله اول به فناوری هایی بستگی دارد که قبلاً در بیت کوین موجود است. ما در مورد رمزارز ECDSA، یا همچنین امضاهای Schnorr، آدرس های چند امضایی، و علاوه بر این از کدهای عملیاتی (OP_CODES) Be CLTV، nLockTime ، nSequence صحبت می کنیم. به بیان ساده، در ابتدایی ترین حالت، نیازی به افزودن هیچ چیز اضافی به پروتکل بیت کوین و سایر ارزهای دیجیتال مشتق شده از بیت کوین نیست.
شروع فرآیند SAS
فرآیند اجرای SAS زمانی آغاز می شود که دو نفر مبادله را آغاز کنند. در این صورت از آن افراد به عنوان لورا و دانیل یاد خواهیم کرد. لورا ۱ بیت کوین دارد که می خواهد معادل آن را با دانیل که لایت کوین (LTC) دارد مبادله کند، و همه اینها بدون گذر از یک صرافی متمرکز.
بنابراین لورا ۱ BTC را در معامله ای آماده می کند که با امضای مشترک با استفاده از امضای خود و دانیل امضا کرده است. این اولین تراکنش که هنوز ارسال نشده است، در حالت انتظار به بلاک چین می رسد. این کار با استفاده از OP_CODES مانند CLTV و nLockTime امکان پذیر است، که امکان تعریف یک بازه زمانی و سایر شرایط لازم برای پردازش تراکنش را فراهم می کند. در این صورت، شرط آزاد شدن معامله مذکور این است که دانیل راز خود را برای لورا فاش کند، چیزی که در این مرحله هنوز اتفاق نیفتاده است.
برنامه نویسی این تراکنش با CLTV از نکته دیگری نیز تبعیت می کند و آن این است که در صورت عدم انجام مبادله طرفین، می توان تراکنش مذکور را به بلاک چین ارسال کرد و پس از مدتی، لورا می تواند بدون مشکل در بازیابی وجوه، آن را از حالت انسداد خارج کند. این روش امکان پذیر است زیرا CLTV می تواند یک آدرس multisig را تحت شرایط خاصی که می تواند برنامه ریزی شود به یک آدرس واحد تبدیل کند. همزمان که لورا وجوه خود را بازیابی می کند، رازی را برای دانیل فاش می کند که به او امکان می دهد وجوهی را که در تراکنش لایت کوین خود مسدود کرده است، بازیابی کند.
آماده سازی معامله دوم
در حالی که اولین تراکنش هنوز ارسال نشده است، لورا و دانیل در حال آماده سازی بقیه شرایط برای مبادله هستند. در این مرحله، لورا و دانیل اکنون یک تراکنش جدید و دوم ایجاد می کنند، اما یک قفل در سطح تراکنش با استفاده از nSequence روی آن قرار می دهند. این کار تا زمانی که زمان بلاک سپری شود از گرفتن تراکنش توسط ماینرها جلوگیری می کند، این زمان توسط لورا و دانیل تعیین می شود و آنها تصمیم گرفته اند به آن یک ساعت بلاک بدهند.
این بلوک در تراکنش به عنوان بیمه ای ساخته شده است که از از دست دادن پول لورا در صورتی که دانیل ناصادقانه عمل کند جلوگیری می کند. و به لطف قفل و شرایطی که در آن تراکنش ایجاد شده است، لورا می تواند تراکنش مذکور را بدون مشکل بازیابی کند. از این رو، انتخاب قفل OP_CODE nSequence است، زیرا امکان قفل نسبی را فراهم می کند. یعنی قفل فقط زمانی فعال می شود که تراکنش قبلی و خروجی های مرتبط با آن (اولین تراکنش امضا شده توسط لورا و دانیل) قبلاً در بلاک چین گنجانده شده باشد.
ارسال تراکنش ها
حال، مورد بعدی این است که شروع به ارسال تراکنش ها کنید. لورا ابتدا تراکنش دوم را ارسال می کند که تا زمانی که تراکنش اول به بلاک چین برسد، به طور نامحدود قفل می شود. با این حال، این واقعیت ارسال تراکنش دوم به شبکه برای دانیل نشان دهنده این است که لورا فرآیند تبادل را آغاز کرده است. بنابراین کاری که دانیل انجام می دهد این است که یک تراکنش در لایت کوین برای کل صرافی ایجاد می کند و برای آن عملیات از امضای لورا و او استفاده می کند.
این تراکنش در لایت کوین توسط لورا مشاهده می شود که مطابق با آن، اولین تراکنش را ارسال می کند که حاوی ۱ بیت کوین برای دانیل است. لورا نمی تواند به وجوه موجود در لایت کوین دسترسی داشته باشد زیرا راز دانیل را که برای باز کردن قفل تراکنش لازم است نمی داند. بنابراین هنگامی که لورا اولین تراکنش را به بلاک چین بیت کوین ارسال می کند، ساعت قفل شروع به تیک تاک شدن می کند.
اکنون، نکته دیگری باقی مانده است، چگونه ممکن است که لورا و دانیل اسرار لازم برای باز کردن قفل تراکنش های مربوطه خود را در بیت کوین و لایت کوین بدانند؟ خوب، در این مرحله چیزی که به عنوان آداپتور امضای ECDSA شناخته می شود وارد عمل می شود. این آداپتور این امکان را به ECDSA می دهد که تحت شرایط خاصی راز لازم را فاش کند تا دانیل و لورا بتوانند تراکنش های خود را باز کنند. به این ترتیب، آنها می توانند با موفقیت تبادل را انجام دهند، چیزی که در زیر توضیح خواهیم داد.
لحظه مبادله
اکنون، به همان سرعتی که اولین تراکنش در بلاک چین بیت کوین انجام می شود، فرآیند مبادله آغاز می شود. اولین معامله به گونه ای امضا می شود که تنها در صورتی معتبر است که دانیل راز خود را فاش کند. یعنی اگر دانیل بیت کوین را بخواهد، این تنها در صورتی امکان پذیر خواهد بود که دانیل در تعامل با تراکنش مذکور راز را فاش کند. این به این دلیل است که لورا این تراکنش را به گونهای امضا میکند که تنها تحت این فرض معتبر خواهد بود و مسئول آن آداپتور امضای ECDSA خواهد بود. در مورد تراکنش دوم نیز همین اتفاق می افتد، بنابراین دانیل تنها یک گزینه دارد، تعامل با آن تراکنش ها و مطالبه بیت کوین های مورد نظرش.
بنابراین، هنگامی که دانیل با معامله برای ادعای بیت کوین تعامل می کند، راز را برای لورا فاش می کند. در این مرحله، لورا راز دنیل و راز خودش را میداند، بنابراین میتواند به بلاک چین لایتکوین برود و با هر دو راز در اختیارش، تراکنش لایتکوین را که دانیل در ازای بیتکوین فرستاده است، باز کند. به این ترتیب، لورا و دانیل با موفقیت یک مبادله اتمی مختصر (SAS) را انجام دادند.
اگر فرآیند با موفقیت کامل شود، تراکنش دوم نامعتبر خواهد بود. اما اگر فرآیند انجام نشود، تراکنش دوم (مسدود شده با nSequence) به عنوان یک تراکنش بازپرداخت عمل می کند و به لورا اجازه می دهد بیت کوین خود را بدون مشکل پس بگیرد. در نهایت، در بهترین حالت، یک SAS همیشه می تواند در دو تراکنش ساده در بلاک چین انجام شود




