نحوه انجام تراکنش اتمیک بین شبکه بیت کوین و مونرو چگونه است؟

نحوه انجام تراکنش اتمیک بین شبکه بیت کوین و مونرو چگونه است؟

vahid آذر ۲۸, ۱۴۰۰
37 دقیقه زمان مطالعه

تراکنش اتمیک یا Atomic swap اصطلاحی رایج در دنیای ارزهای دیجیتال است؛ در واقع هر فرایندی که در صورت فراهم بودن برخی الزامات اجرا شود و در صورت نبود آن ها اجرایی نشود در این دسته از تراکنش ها قرار می گیرد. یکی از معروف ترین و پرکاربردترین انواع این مبادلات تراکنش اتمیک بین شبکه بیت کوین و مونرو است که نیازی به ایجاد اعتماد ندارد. در ادامه این مطلب صرافی آنلاین اکس نوین قصد دارد اطلاعات بیشتری در این خصوص در اختیار شما قرار دهد.

تراکنش اتمیک بین شبکه بیت کوین و مونرو چگونه به وجود آمد؟

طراحان تراکنش های اتمیک همواره در تلاش بوده اند که بدون نیاز به اضافه کردن شبکه ای جدید اتصال بین بلاکچین های مختلف را برقرار کنند. در همین راستا آن ها به سراغ ارتباط بین بیت کوین و مونرو رفته اند؛ مونرو شبکه ای است که در آن مبدا و مقصد تراکنش ها و مقدار آن ها از دید ناظران کاملا پنهان است و به همین دلیل بسیاری از تریدرها استفاده از آن را ترجیح می دهند.
یکی از مشکلاتی که باعث شده بود تیم توسعه دهنده مبادلات اتمیک تاکنون به سراغ ارتباط این دو شبکه نرود عدم پشتیبانی مونرو از قابلیت Hashed Timelock یا قفل زمانی بیت کوین بود. بعد از انتشار مقاله جوئل گاگر که نشان می داد برای انجام این مبادلات نیازی به قفل های زمانی نیست؛ تیم توسعه دهنده آستین های خود را بالا زدند و تراکنش را به وجود آوردند.

چالش های پیش روی شکل گیری این شبکه چه بود؟

یکی از چالش های اصلی در شبکه مونرو نبود زبان اسکریپت نویسی است و همین مسئله هم باعث شده که این بلاکچین از هش های قفل شده پشتیبانی نکند. با طراحی دوباره بلاکچین مونرو می توان این مشکل را حل کرد؛ اما مسئله دیگری که وجود دارد این است که این شبکه برای تولید کلیدهای خصوصی و عمومی خود از خم های بیضوی edward25519 استفاده می کند و همین مسئله باعث می شود که محدودیت های زیادی برای کار با شبکه های دیگر نظیر بیت کوین و اتریوم ایجاد شود. برای حل این چالش لازم است در رمزنگاری تغییراتی به وجود آید که باعث شکل گیری تراکنش اتمیک بین شبکه بیت کوین و مونرو می شود. در ادامه در خصوص نحوه انجام این مبادلات و شیوه شکل گیری آن توضیحاتی را ارائه خواهیم داد.

پروتکل جدید مونرو به چه صورتی ایجاد می شود؟

قبل از اینکه در خصوص تراکنش اتمیک بین این دو بلاکچین توضیح دهیم بهتر است ببینیم که توسعه دهندگان چگونه چالش اول را حل کردند. آن ها ابتدا تلاش کردند که از راه حل پیشنهادی مقاله گاگر استفاده کنند؛ اما پیچیدگی های آن باعث شد که به سراغ راه حل جایگزینی بروند که ساده تر بود و زودتر به نتیجه می رسید. در باز طراحی مونرو حالاتی در نظر گرفته شده که تعداد تراکنش های مورد نیاز در سمت بیت کوین را یکی کاهش می داد؛ اما وجود حالات غیرقطعی در این شبکه های مشابه باعث شکل گیری شرایط مسابقه ای بین مبادلات و شکست برخی از آن ها شده بود.
در نهایت ترکیب هر دو رو باعث شکل گیری شبکه ای شد که با راهکار اصلی گاگر تفاوت هایی داشت که در ادامه آن ها را بیان می کنیم.

  • استفاده از کیف پول دو امضایی برای تراکنش بیت کوین
  • امکان پیاده سازی قفل های زمانی در سطح تراکنش ها
  • استفاده از گواه اثبات برابر لگاریتم گسسته (Discrete Log Equality) با رویکرد متفاوت
  • آشکارسازی کلیدهای درست در زمان دریافت یا برگشت خوردن بیت کوین

پایه های تراکنش اتمیک (Atomic Swap) بین بیت کوین و مونرو

برای شکل گیری این تراکنش ها و مبادلات نیاز به در نظر گرفتن مفروضاتی است که فهم آن را برای افرادی که قصد استفاده از این شبکه را دارند راحت تر می کند. این مفروضات تعاریفی را ارائه می دهد که پیگیری مبادلات را برای شما ساده تر می کنند.

  • در تراکنش های اتمیک کلیدهای مخفی با حرف ایکس کوچک (x) و کلیدهای عمومی با حروف ایکس بزرگ (X) نشان داده می شوند.
  • قبل از به کار گیری پروتکل لازم است که مقدار معامله و زمان قفل های زمانی مورد استفاده در خرید و فروش بیت کوین بین طرفین مشخص شود.

نحوه انجام تراکنش اتمیک (Atomic Swap)

با توجه به تصویر زیر تراکنش اتمیک بیت شبکه بیت کوین و مونرو طبق مراحل زیر انجام خواهد شد.

نحوه انجام تراکنش اتمیک

۱- طرفین معامله باید آدرس ها، گواهی اثبات دانش صفر، کلیدها و امضاها را مبادله کنند.
۲- یکی از طرفین یک تراکنش با شرط زمانی مانند Tx_lock را ارسال می کند که طی آن بیت کوین ها با دو امضا به آدرس فرد دیگر ارسال می شوند.

بعد از گذشت مدت زمان t_1 فرستنده می تواند با استفاده از Tx_cancle یا Tx_refund فرایند معامله را لغو کند و موجودی را به حساب خود برگرداند. در صورتی که این کار در زمان تعیین شده انجام نشود طرف مقابل معامله می تواند فرستنده را تنبیه کند. برای این کار او بعد از فعال سازی تراکنش Tx-cancle و گذشتن مدت t_2 با استفاده از تراکنش Tx_punish تنبیه را اجرا می کند.

۳- اگر لغو تراکنش انجام نشود گیرنده می تواند قفل شدن بیت کوین ها را ببیند؛ پس زمان آن رسیده است که با استفاده از Tx_lock ارزهای خود را در شبکه مونرو منتشر کند.

تنها راهی که می توان بعد از اتمام این مرحله مونروها را خرج کرد داشتن کلید پنهان هر دو طرف معامله یعنی s_a و s_b است. در واقع تا زمانی که هر دو طرف از کلیدهای پنهان اطلاع نداشته باشند امکان خارج کردن مونرو وجود ندارد.

۴- بعد از اینکه فرستنده بیت کوین ها مطمئن شد که مرحله قبل به درستی انجام گرفته است با استفاده از تراکنش Tx_redeem امکان دریافت بیت کوین ها را به طرف مقابل می دهد.

۵- گیرنده بیت کوین ها به کمک اطلاعات موجود در تراکنش مرحله قبل می تواند آن ها رابه آدرس خود بفرستد. در این مسیر بخشی از کلید پنهان آشکار می شود.

۶- فرستنده اولیه با استفاده از تراکنش Tx_redeem و فرایند امضای آداپتور کلید پنهان s_a را استخراج می کند و بعد از ترکیب با کلید خود مونروها را به سمت حسابش می فرستد.

تراکنش های اصلی در مبادله اتمیک بیت کوین و مونرو چیست؟

با انجام مراحلی که در بخش قبل بیان کردیم شما می توانید مقداری بیت کوین بدهید و در ازای آن تعدادی مونرو دریافت کنید؛ بدون اینکه نیاز به تغییر بلاکچین یا استفاده از واسطه های غیر ایمن داشته باشید. همان طور که احتمالا خودتان هم متوجه شده اید در هر مرحله از تراکنش اتمیک بین شبکه بیت کوین و مونرو تعدای تبادل وجود دارد که باید به درستی انجام شوند. در این بخش مهم ترین مبادلات این شبکه را بررسی می کنیم.

تبادل آدرس

در این بخش لازم است که آدرس های موردنظر از کیف پول های بیت کوین خارج و به عنوان مقصد تراکنش ها برای طرف مقابل ارسال شوند.

تبادل کلید

در تراکنش اتمیک هر طرف دارای یک کلید پنهان مخصوص به خود است که تا زمان اطمینان از درست بودن معامله نباید آن را لو بدهد. البته برای تکمیل تراکنش و آزاد شدن قفل های زمانی لازم است که کلید هر دو طرف با هم ترکیب شود. توجه داشته باشید که کلیدهای پنهان در هر تراکنش متفاوت است و بعد از به اشتراک گذاشتن کلیدهای عمومی تولید می شود.
این کلید دارای دو بخش s و v است که بخش s برای خرج کردن و بخش v نیز برای مشاهده جزییات مبادلات تعریف شده است. در ابتدای تراکنش این بخش ها با استفاده از کلید عمومی قفل می شوند. بعد از اینکه امکان مشاهده خروجی برای هر دو طرف فراهم شد، ابتدا بخش v و سپس بخش های s در اختیار طرفین معامله قرار می گیرد. در نهایت کسی که به هر دو کلید دسترسی داشته باشد می تواند تراکنش را خرج کند.

حل چالش دوم

همان طور که گفتیم یکی از مسائل مهم در تراکنش اتمیک بین شبکه بیت کوین و مونرو خم های بیضوی متفاوت آن ها است؛ این خم ها برای تولید کلید به کار می روند و از آنجایی که کلیدها یکی از اصلی ترین فاکتورها در انجام تراکنش های این چنینی هستند باید این معضل را به نحوی حل کرد. توسعه دهندگان این شبکه برای حل مشکل از گواه اثبات معرفی شده تویط سرنگ نوتر استفاده کردند. در واقع با استفاده از این گواه دیگر لازم نیست که تناظر کلیدهای عمومی و پنهان در شبکه بررسی شود. با امضا کردن آن طرفین بر سر این موضوع توافق می کنند که کلیدهای عمومی از پیش مشخص هستند و افشای کلید پنهان نشان دهنده همین تناظر میان آن ها است.
گفتیم که در مرحله آخر از انجام تراکنش لازم است که کلید پنهان معامله گر مونرو توسط فرستنده بیت کوین ها رمزگشایی شود تا مبادله انجام گیرد. تا زمانی که این مرحله به طور کامل انجام نشود به دلیل عدم تناظر بین کلیدها در دو شبکه امکان تکمیل تراکنش وجود نخواهد داشت. به همین منظور لازم است که کلید عمومی بیت کوین توسط گیرنده در مونرو تولید شود و با استفاده از آن یک گواه اثبات دانش صفر به وجود آید که تناظر بین کلیدهای پنهان و عمومی را مشخص می کند.
بعد از به وجود آمدن این گواه و به اشتراک گذاشتن آن با فرستنده بیت کوین امضای آداپتوری بر روی کلید عمومی ساخته می شود و کلید پنهان طرف مقابل رمزگشایی خواهد شد. اکنون باید این دو کلید با یکدیگر ترکیب شوند تا تراکنش استخراج مونرو به طور کامل انجام گیرد. در طرف مقابل نیز برای استخراج بیت کوین ها باید فرایند مشابهی رخ دهد تا مبادله تکمیل شود.

چه راهکارهایی برای مقابله با تخلف وجود دارد؟

با وجود اینکه در بسیاری از تراکنش های اتمیک چنین مشکلی پیش نمی آید؛ اما ممکن است یکی از طرفین به تعهدات خود به درستی عمل نکند و بعد از استخراج مونرو یا در هر مرحله دیگری از تراکنش همه چیز را به هم بریزد. برای پیشگیری از وقوع چنین اتفاقی مکانیزم تنبیه و بازگشت در تراکنش اتمیک بین شبکه بیت کوین و مونرو تعریف شده است.
در فرایند مبادله زمان های t_1 و t_2 برای این تعریف شده اند که هر دو طرف فرصت کافی برای تصمیم گیری و لغو تراکنش را داشته باشند. بعد از گذشت این زمان و وارد شدن Tx_lock به شبکه دیگر امکان لغو معامله و انصراف از آن وجود ندارد. در زمان t_1 فرستنده مونرو امضای آداپتوری خود را بر روی Tx_refund می گذارد تا فرستنده بیت کوین در صورت تمایل آن را لغو کند. با این کار هیچ مبادله ای صورت نمی گیرد و موجودی به حساب هر دو طرف برمی گردد.
فرایند لغو باید به گونه ای تعریف شود که کلید خصوصی فرد انصراف دهنده مشخص شود و طرف مقابل نیز بتواند تراکنش را لغو کند. در این مرحله نیازی به استفاده از قفل زمانی نیست؛ چرا که برای ارسال Tx_cancle باید زمان t_1 به طور کامل سپری شود. بعد از سپری شدن این زمان یک تراکنش تنبیه Tx_punish به مقصد ارسال می شود تا طرف دیگر بتواند در زمان t_2 معامله را کنسل کند. در این حالت باید قفل زمانی تعریف شود تا فرستنده تراکنش تنبیه بعد از سپری شدن زمان بتواند به موجودی مبادله شده دسترسی داشته باشد و آن را خرج کند.
با وجود این دو فرایند دیگر این امکان وجود ندارد که یکی از طرفین از ارسال امضای آداپتوری و افشای کلید پنهان خود خودداری کند. بعد از گذشتن این دو زمان و عدم لغو تراکنش اتمیک اگر یکی از طرفین پشیمان شود یا به هر دلیلی کلیدهای خود را در اختیار دیگری نگذارد باز هم با استفاده از گواه های امضا شده و بدون نیاز به امضای آداپتور امکان آزادسازی ارزهای مبادله شده وجود دارد.

نحوه انتقال بیت کوین و مونرو به کیف پول

اکنون که تراکنش های لغو و تنبیه توسط دو طرف پذیرفته شدند، هر دو اطمینان دارند که حتی در صورت خودداری طرف مقابل از افشای اطلاعات به ارزهای دیجیتال مورد مبادله دسترسی خواهند داشت. برای انتقال ارزها به کیف پول باید تراکنش قفل Tx_lock امضا شود و درون شبکه قرار گیرد. بعد از اطمینان از اینکه تراکنش به بلوک شبکه اضافه شده طرف مقابل آن را تایید می کند و انتقال ارزهای دیجیتال تکمیل می شود.
در نهایت هریک از طرفین می تواند در صورت عدم همکاری طرف مقابل معامله را به طور کامل لغو کند. این موضوع باعث می شود که هر طرف با اطمینان کامل امضای آداپتور خود را به اشتراک بگذارد و کلید پنهان را به مقصد ارسال کند. نکته مهم اینکه بعد از تایید تراکنش توسط هر دو طرف و اتمام آن حتی نیاز به انتقال ارزها به آدرس شخصی هم نیست و میتوان تراکنش اتمیک بین شبکه بیت کوین و مونرو را تمام شده دانست.

سخن پایانی

با استفاده از تراکنش های اتمیک می توان انتقال ارزها بین دو شبکه کاملا متفاوت مونرو و بیت کوین را در بستری ایمن و کاربر پسند انجام داد. با این کار دیگر نیازی نیست نگران کلاهبرداری های طرفین معامله یا قفل شدن دارایی خود برای زمانی نامعلوم باشید. در واقع مکانیزم های امنیتی موجود در این تراکنش ها باعث می شود که طرفین معامله به راحتی به یکدیگر اعتماد کنند و نگران از دست رفتن دارایی خود هم نباشند.