شبکه لایتنینگ بیت کوین چگونه کار می کند؟
آدرس های چند امضایی
توضیح دادیم که چگونه شبکه لایتنینگ بیت کوین به کانالهای بین نودها در سطح بالایی متکی است. حالا بیایید نگاهی به نحوه کار بیندازیم. آدرس چند امضایی (یا چند علامتی) آدرسی است که چندین کلید خصوصی می توانند از آن استفاده کنند. هنگام ایجاد یک آدرس چند امضایی، مشخص میکنید که چه تعداد کلید خصوصی میتواند از وجوه استفاده کنند، و چه تعداد از آن کلیدها برای امضای یک تراکنش لازم است. به عنوان مثال، طرح 1 از 5 به این معنی است که پنج کلید می توانند یک امضای معتبر تولید کنند و فقط یک کلید لازم است. یک طرح 2 از 3 نشان می دهد که از بین سه کلید ممکن، حداقل دو کلید خصوصی برای ارسال وجوه نیاز است.
برای راه اندازی یک کانال لایتنینگ بیت کوین، شرکت کنندگان وجوه را در یک طرح 2 از 2 قفل می کنند. تنها دو کلید خصوصی با قابلیت امضا وجود دارد و هر دو برای جابجایی بیتکوینها مورد نیاز هستند. بیایید آلیس و باب را در این مرحله بررسی کنیم. آنها در ماه های آینده مبالغ زیادی به یکدیگر خواهند پرداخت، بنابراین تصمیم می گیرند یک کانال شبکه لایتنینگ باز کنند. این کار با واریز هر دو، مثلاً 3 بیت کوین به آدرس چندامضایی مشترک آغاز می شود. شایان ذکر است که باب نمی تواند بدون موافقت آلیس وجوه را از آدرس خارج کند یا برعکس.
اکنون، آنها فقط می توانند یک ورق کاغذ را نگه دارند که موجودی هرطرف را مشخص میکند. هر دو دارای موجودی اولیه 3 بیت کوین هستند. اگر آلیس می خواهد 1 بیت کوین به باب پرداخت کند، چرا فقط یادداشت نکنید که آلیس اکنون 2 بیت کوین و باب صاحب 4 بیت کوین است؟ مانده ها را می توان به این ترتیب ردیابی کرد تا زمانی که آنها تصمیم بگیرند وجوه را خارج کنند.
این ممکن است، اما فایدهاش چیست؟ مهمتر از آن، آیا این کار را برای عدم همکاری بعضی از افراد راحتتر نمیکند؟ اگر آلیس 6 بیت کوین و باب هیچ بیت کوینی دریافت نکند، باب با امتناع از آزاد کردن وجوه (به جز دوستی او با آلیس) چیزی از دست نمی دهد.
قراردادهای هش با محدودیت زمانی (HTLC)
سیستم فوق خسته کننده است و نسبت به تنظیمات مورد اعتماد امروزی چیز زیادی ارائه نمی دهد. وقتی مکانیسمی را معرفی می کنیم که قرارداد بین آلیس و باب را اجرا می کند، بسیار جالب تر می شود. اگر یکی از طرفین تصمیم بگیرد که طبق قوانین بازی نکند، طرف دیگر هنوز راه حلی برای خروج سرمایه خود از کانال دارد. این مکانیسم یک قرارداد هش با محدودیت زمانی (HTLC) است. این اصطلاح ممکن است ترسناک به نظر برسد، اما در واقع یک مفهوم کاملاً ساده است. این سیستم دو فناوری دیگر هش لاک (Hash Lock) تایم لاک (Time Lock) را برای رفع هرگونه رفتار غیرمسئولانه در کانالهای پرداخت با یکدیگر پیوند میدهد.
هشلاک شرطی است که برای تراکنش تعیین میشود که شما فقط میتوانید با اثبات این که یک راز را میدانید، میتوانید ارز را ارسال کنید. فرستنده یک قطعه داده را هش می کند و هش را در تراکنش به گیرنده وارد می کند. تنها راهی که گیرنده می تواند آن را خرج کند این است که داده اصلی (راز) را که با هش مطابقت دارد ارائه دهد. و تنها راهی که آنها می توانند آن داده ها را ارائه کنند این است که فرستنده آن را به آنها بدهد. تایم لاک شرایطی است که شما را از خرج کردن وجوه قبل از زمان مشخصی باز می دارد.
HTLC ها با ترکیب هشلاک و تایم لاک ایجاد می شوند. در عمل، از HTLCها می توان برای ایجاد پرداخت های مشروط استفاده کرد. برای مثال گیرنده باید قبل از زمان معینی راز را ارائه کند، یا فرستنده می تواند وجوه را پس بگیرد. این قسمت احتمالاً با یک مثال بهتر توضیح داده شده است، بنابراین بیایید به مثال آلیس و باب برگردیم.
باز و بسته شدن کانال های لایتنینگ بیت کوین
ما مثالی زدیم از آلیس و باب که به تازگی تراکنش هایی ایجاد کرده اند که آدرس چند امضایی را که به اشتراک می گذارند تامین می کند. اما این تراکنش ها هنوز در بلاک چین منتشر نشده اند! برای این کار باید یک کار دیگر انجام دهیم. به یاد داشته باشید، تنها راهی که آن سکه ها می توانند از آدرس چندامضایی خارج شوند این است که آلیس و باب به طور مشترک یک تراکنش را امضا کنند. اگر آلیس می خواست تمام شش بیت کوین را به یک آدرس خارجی بفرستد، به تایید باب نیاز داشت. او ابتدا یک تراکنش (شش بیت کوین به این آدرس) جمع آوری کرد و امضای خود را اضافه کرد.
او میتواند فوراً تراکنش را منتشرکند، اما نامعتبر خواهد بود زیرا باب امضای خود را درج نکرده است. آلیس ابتدا باید معامله ناقص را به او بدهد و هنگامی امضای خود را اضافه کرد، معتبر می شود. ما هنوز مکانیزمی را برای حفظ صادقانه بازی همه ایجاد نکرده ایم. همانطور که قبلاً گفتیم، اگر طرف مقابل شما از همکاری امتناع کند، وجوه شما عملاً گیر میافتد. بیایید مکانیسمی را بررسی کنیم که از این کار جلوگیری می کند.
هر یک از طرفین باید یک رمز بیاورند. بیایید فرض کنیم رمزها As و B هستند. اگر آلیس و باب آنها را فاش کنند، اتفاق وحشتناکی خواهد بود، بنابراین فعلاً آنها را مخفی نگه می دارند. این جفت هش های رمز مربوطه را ایجاد می کند h (As) و h (Bs). بنابراین به جای به اشتراک گذاشتن رمز خود، آن هش ها را با یکدیگر به اشتراک می گذارند. آلیس و باب همچنین باید قبل از انتشار اولین تراکنش های خود در آدرس چند امضایی، مجموعه ای از تراکنش های تعهد ایجاد کنند. در صورتی که دیگری تصمیم بگیرد وجوه را گروگان نگه دارد، این به آنها راه حلی می دهد.
اگر به کانالی مانند دفتر کل کوچکی که قبلاً به آن اشاره کردیم فکر می کنید، تراکنش های تعهدی به روز رسانی هایی هستند که در دفتر کل انجام می دهید. هر زمان که یک جفت تراکنش تعهدی جدید ایجاد می کنید، موجودی دو نفر دیگر را مشخص میکنید.
آلیس دو خروجی خواهد داشت. یکی آدرسی را که او دارد پرداخت می کند و دیگری که در یک آدرس چندامضایی جدید قفل شده است. او آن را امضا می کند و به باب می دهد.
تراکنش آلیس با دو خروجی – یکی به آدرس خودش و دیگری به چندامضایی جدید. او هنوز به امضای باب نیاز دارد تا آن را معتبر کند.
باب هم همین کار را میکند. یک خروجی به خودش پرداخت میشود و دیگری به یک آدرس چندامضایی پرداخت میشود. او آن را امضا می کند و به آلیس می دهد.
به طور معمول، آلیس میتواند یک امضا به تراکنش باب اضافه کند تا معتبر باشد. اما توجه داشته باشید که این وجوه از چندامصایی 2-از-2 که ما هنوز تامین مالی نکرده ایم خرج می شود. این کمی شبیه تلاش برای خرج کردن چک از حسابی است که در حال حاضر موجودی آن صفر است. بنابراین، این تراکنشهای دارای امضای جزئی تنها زمانی قابل استفاده خواهند بود که قرارداد چندامضایی راهاندازی و اجرا شود.
آدرسهای چند امضای جدید (جایی که 3 خروجی بیت کوین در آن مقصد هستند) ویژگیهای عجیبی دارند. بیایید نگاهی به تراکنش ناقصی بیندازیم که آلیس امضا کرد و به باب داد. خروجی چندامضایی را می توان تحت شرایط زیر ارسال کرد:
- هر دو طرف می توانند با همکاری آن را امضا کنند.
- باب می تواند پس از مدت زمان مشخصی آن را به تنهایی خرج کند (به دلیل قفل زمانی ما).
- اگر آلیس از B های مخفی باب مطلع باشد، می تواند آن را خرج کند.
برای معامله ای که باب به آلیس داد:
- هر دو طرف می توانند با همکاری آن را امضا کنند.
- آلیس می تواند آن را پس از مدت زمان مشخصی صرف کند.
- باب می تواند آن را خرج کند اگر راز آلیس (As) را بداند.
به خاطر داشته باشید که هیچ یک از طرفین راز طرف مقابل را نمی دانند، بنابراین حالت آخر هنوز امکان پذیر نیست. نکته دیگری که باید به آن توجه کنید این است که اگر معامله ای را امضا کنید، طرف مقابل شما می تواند بلافاصله آن را خرج کند زیرا شرایط خاصی برای خروجی آنها وجود ندارد. میتوانید برای خرج کردن وجوه توسط خودتان منتظر بمانید تا قفل زمانی منقضی شود، یا میتوانید با طرف مقابل برای خرج کردن آنها همکاری کنید.
اکنون می توانید تراکنش ها را در آدرس چند امضایی اصلی 2 از 2 منتشر کنید. در نهایت انجام این کار بی خطر است زیرا اگر طرف مقابل شما کانال را رها کند، می توانید وجوه خود را بازیابی کنید. پس از تایید تراکنشها، کانال راه اندازی می شود. اولین جفت تراکنش وضعیت فعلی دفتر کل کوچک را به ما نشان می دهد. در حال حاضر، 3 بیت کوین به باب و 3 بیت کوین به آلیس پرداخت می کند. هنگامی که آلیس می خواهد پرداخت جدیدی به باب انجام دهد، این جفت دو تراکنش جدید را برای جایگزینی مجموعه اول ایجاد می کند. با این حال، آلیس و باب ابتدا اسرار قدیمی خود را رها می کنند و هش های جدید را برای دور بعدی تراکنش ها مبادله می کنند.
هر یک از طرفین می توانند یکی از جدیدترین تراکنش ها را در هر زمانی که بخواهند امضا و پخش کنند تا آن را در بلاک چین تسویه کنند. اما هر کدام از طرفین این کار را انجام دهد باید صبر کند تا قفل زمانی منقضی شود، در حالی که طرف دیگر می تواند فوراً وجوه را ارسال کند. به یاد داشته باشید، اگر باب تراکنش آلیس را امضا و پخش کند، او اکنون خروجی دارد که هیچ شرطی در آن وجود ندارد. هر دو طرف می توانند توافق کنند که کانال را با هم ببندند (بستن اشتراکی). این احتمالا ساده ترین و سریع ترین راه برای بازگرداندن وجوه خود به زنجیره است. با این حال، حتی اگر یکی از طرفین پاسخگو نباشد یا از همکاری امتناع کند، طرف دیگر همچنان میتواند وجوه خود را با منتظر ماندن در قفل زمانی پس بگیرد.
چگونه شبکه لایتنینگ بیت کوین از تقلب جلوگیری می کند؟
اگر درخال حاضر موجودی باب یک بیت کوین باشد، چه چیزی مانع از آن می شود که تراکنش قدیمی را در جایی که بیشتر داشت، پخش کند؟ او قبلاً تراکنش نیمه امضا شده را از آلیس دریافت کرده است، فقط باید امضای خود را اضافه کند و آن را پخش کند، درست است؟ هیچ چیز او را از انجام این کار باز نمی دارد، به جز این واقعیت که او می تواند تمام موجودی خود را از دست بدهد. فرض کنید او این کار را انجام می دهد و یک تراکنش قدیمی را پخش می کند که یک سکه به آلیس و پنج سکه به آن آدرس چند امضایی که قبلاً ذکر کردیم پرداخت می کند.
آلیس بلافاصله سکه خود را دریافت می کند. از طرف دیگر، باب باید منتظر بماند تا قفل زمانی منقضی شود تا از آدرس چندامضایی خرج کند. شرط دیگری را که ذکر کردیم به خاطر دارید که به آلیس اجازه می دهد همان سرمایه را بلافاصله خرج کند؟ او به رمزی نیاز دارد که در آن زمان نداشت. او اکنون به محض ایجاد دور دوم تراکنشها، باب آن راز را فاش کرد. در حالی که باب نشسته است و نمی تواند کاری انجام دهد و منتظر است تا قفل زمانی منقضی شود، آلیس می تواند آن وجوه را جابجا کند. این مکانیسم مبتنی بر مجازات به این معنی است که شرکت کنندگان حتی بعید به نظر می رسد که سعی کنند تقلب کنند زیرا طرفهای مقابل به سکه های خود دسترسی خواهند داشت.
مسیریابی پرداختها
قبلاً به این موضوع اشاره کردیم که کانالها را میتوان به هم متصل کرد. در غیر این صورت شبکه لایتنینگ برای پرداختها مفید نخواهد بود. آیا واقعاً قصد دارید 500 دلار را در یک کانال با یک کافی شاپ قفل کنید تا بتوانید نیاز خود را برای چند ماه آینده دریافت کنید؟ شما مجبور نیستید این کار را انجام دهید. اگر آلیس یک کانال با باب باز کند و باب قبلاً یک کانال با کارول داشته باشد، باب میتواند پرداختها را بین این دو انجام دهد. این می تواند در چندین مرحله کار کند، به این معنی که آلیس می تواند به طور موثر به هر کسی که یک مسیری بین آنها وجود دارد، بیت کوین ارسال کند.
برای نقش خود در مسیریابی، واسطه ها ممکن است هزینه اندکی دریافت کنند (اگرچه هیچ تعهدی وجود ندارد). شبکه لایتنینگ هنوز بسیار جدید است، بنابراین بازار کارمزد آن هنوز شکل نگرفته است. آنچه که بسیاری انتظار دارند ببینند، کارمزدهای مبتنی بر نقدینگی ارائه شده است.
در زنجیره پایه، کارمزد شما صرفاً بر اساس فضایی است که تراکنش شما در یک بلوک اشغال می کند (ارزشی که منتقل می شود مهم نیست). برای مثال تراکنش 1 دلاری و 10،000،000 دلاری یک فضای یکسان را اشغال میکنند. در مقابل، چیزی به نام فضای بلوک در شبکه لایتنینگ وجود ندارد. در عوض، ایده تعادل محلی و از راه دور وجود دارد. موجودی محلی مقداری است که میتوانید آن را به انتهای کانالبفرستید، در حالی که موجودی از راه دور چیزی است که طرف مقابل شما میتواند به شما بفرستد.
بیایید یک مثال دیگر را بررسی کنیم. بیایید نگاهی دقیقتر به یکی از مسیرهای بالا بیندازیم: آلیس <> کارول <> فرانک.
آلیس <> کارول و کارول <> فرانک هر کدام مجموعاً 1 بیت کوین ظرفیت دارند. موجودی محلی آلیس 0.7 بیت کوین است. اگر آنها اکنون روی بلاک چین مستقر شوند، او 0.7 بیت کوین دریافت می کند و کارول موجودی راه دور (یعنی 0.3 بیت کوین) را دریافت می کند. اگر آلیس بخواهد 0.3 بیت کوین برای فرانک ارسال کند، 0.3 بیت کوین را به سمت کانال کارول می فرستد. سپس کارول 0.3 بیت کوین را از موجودی محلی خود در کانال به فرانک می دهد. در نتیجه، تراز کارول ثابت می ماند: دریافت 0.3 بیت کوین از ظرف آلیس و ارسال 0.3 بیت کوین به فرانک یکدیگر را خنثی می کنند.
کارول ارزش خود را از ایفای نقش به عنوان یک ارتباط بین فرانک از دست نمی دهد، اما خودش را کمتر انعطاف پذیر می کند. ببینید، او اکنون می تواند 0.6 بیت کوین در کانال خود با آلیس خرج کند، اما فقط 0.1 بیت کوین در کانال با فرانک میتواند انتقال دهد. شما می توانید موقعیتی را تصور کنید که آلیس فقط به کارول متصل است، در حالی که فرانک به شبکه بسیار گسترده تری متصل است. کارول قبلاً میتوانست مجموعاً 0.4 بیتکوین را از طریق فرانک برای دیگران ارسال کند، اما اکنون فقط میتواند 0.1 بیتکوین را بفرستد، زیرا این تنها چیزی است که او در انتهای کانال دارد.
در این سناریو، آلیس به طور موثری به نقدینگی کارول نیاز دارد. بدون هیچ گونه انگیزه ای، کارول ممکن است نخواهد موقعیت خود را تضعیف کند. بنابراین، در عوض، او ممکن است بگوید من هر 0.01 بیت کوین را با هزینه 10 ساتوشی مسیریابی خواهم کرد. به این ترتیب، هر چه بیشتر از موازنههای محلیاش، کارول در مسیرهای «قویتر» قربانی کند، سود بیشتری میبرد. همانطور که قبلا ذکر شد، عملاً هیچ الزامی برای دریافت هزینه وجود ندارد. برخی ممکن است نگران کاهش نقدینگی نباشند. دیگران ممکن است فقط کانال ها را مستقیماً به گیرنده باز کنند.
وضعیت فعلی شبکه لایتنینگ بیت کوین
از مارس 2022، شبکه لایتنینگ بیت کوین در حال رشد است. بیش از 35000 نود آنلاین و بیش از 85000 کانال فعال و کمی بیش از 3570 بیت کوین ظرفیت دارد.
سخن پایانی
از زمان راه اندازی شبکه اصلی لایتنینگ بیت کوین در سال 2018، رشد چشمگیری داشته است، علیرغم اینکه بسیاری آن را هنوز در مرحله بتا می دانند. هنوز برخی از موانع قابل استفاده برای غلبه بر وجود دارد، زیرا در حال حاضر کاربران به درجه ای از مهارت فنی برای کارکردن با نود لایتنینگ نیاز دارند. اما با میزان توسعه ای که برای لایتنینگ بیت کوین رخ میدهد، ممکن است شاهد کاهش موانع ورود به این تکنولوژی به مرور زمان باشیم. اگر مشکلات حل شوند، شبکه لایتنینگ بیت کوین می تواند به بخشی جدایی ناپذیر از اکوسیستم بیت کوین تبدیل شود و مقیاس پذیری و سرعت تراکنش را تا حد زیادی افزایش دهد.
برای مطالعه اخبار مرتبط با رمزارزها در ایران و جهان، وبلاگ و کانال خبری ما را دنبال کنید.