اخبار و مقالاتمقاله

توضیح نحوه‌ی کارکرد شبکه‌ی لایتنینگ و افشای راز مشکل‌ساز این شبکه

نگاهی به مکانسیم پردازش پرداخت‌های کوچک در شبکه‌ی لایتنینگ و معرفی برخی از خصوصیت‌های دردسرساز این شبکه

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

ارسال دارایی در کانال لایتنینگ

کانال لایتنینگ را می‌توان به‌صورت رشته‌ای از سکه‌ها تجسم کرد که در میان دو نفر ایجاد شده است. با توجه به شکل 1 آلیس(Alice) می‌تواند با ارسال یک سکه به سوی باب(Bob) عملیات پرداخت را انجام دهد. درصورتی که باب یک کانال لایتنینگ با کارول(Carol) در اختیار داشته باشد، آلیس می‌تواند از طریق باب به کارول پرداخت کند. در این حالت، وی سکه‌ای را به سوی باب می‌فرستد و باب نیز یک سکه به سوی کارول ارسال می‌کند. بر اساس قاعده‌ی کلی حاکم بر شبکه‌ی لایتنینگ سکه‌ها تنها می‌توانند از یک‌طرف زنجیره به طرف دیگر حرکت کنند اما قادر به ترک زنجیره نیستند. این اصل مشکلات نقدینگی شبکه‌ی لایتنینگ(Liquidity Problems) را ایجاد کرده است.

ارسال سکه‌ها
شکل 1: آلیس می‌تواند از طریق باب تراکنش را به کارول ارسال کند. از آنجایی که سکه‌ها قادر به ترک زنجیره‌ نیستند، باب در زنجیره‌ی موجود با آلیس یک سکه از آلیس دریافت می‌کند و در زنجیره‌ی موجود با کارول یک سکه به کارول ارسال می‌کند.

 

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

در پایان این مقاله راز کوچک و کثیف شبکه‌ی لایتنینگ را آشکار خواهیم کرد: پرداخت‌های کوچک در شبکه‌ی لایتنینگ غیرقابل اعتماد است زیرا امکان از دست رفتن دارایی مشتریان در گره‌های مسیر‌یابی وجود دارد.

قفل هش و قفل زمانی(HTLCs)

برای توضیح عامل بازدارنده از بروز رفتار مخرب باب(دریافت سکه‌ها توسط باب و امتناع از ارسال سکه‌ها به کارول) معرفی «قفل‌ها(Locks)» در مثال ارائه شده از شبکه‌ی لایتنینگ ضروری است. به منظور اعمال محدودیت بر جابجایی سکه‌ها می‌توان قفل‌هایی را بر روی رشته‌ها قرار داد، قفل‌های اشاره شده تنها درصورت برآورده ساختن شرایط خاصی قابل بازگشایی هستند. قرارداد‌های هش و قفل زمانی که در سیستم پرداخت شبکه‌ی لایتنینگ استفاده می‌شوند، شامل دو نوع قفل هستند(شکل 2):

  • قفل هش(Hash-Lock) تنها با وارد کردن پسورد صحیح بازگشایی می‌شود
  • قفل زمانی(Time-Lock) به‌طور خودکار پس از مدتی بازگشایی می‌شود.
قفل زمانی و قفل هش
شکل 2: قفل هش در هنگام وارد کردن پسورد‌ی که حاصل هش یک عبارت مشخص است(در این مثال 45f8) باز می‌شود. قفل زمانی پس از پایان مدت زمان تعیین شده(در این مثال 48 ساعت) باز می‌شود.

به‌کارگیری قفل زمانی و قفل هش توسط آلیس

مجددا مثال ارسال یک سکه از آلیس به کارول و از طریق باب را به همراه جزئیات بیشتری بررسی می‌کنیم. باید توجه داشت که به منظور انجام پرداخت اتصال آلیس، کارول و باب به‌طور همزمان به شبکه ضروری است.

در ابتدا آلیس از کارول درخواست می‌کند تا یک پسورد مخفی ایجاد کند و هش پسورد را به وی ارائه کند. فرض می‌کنیم که کارول عبارت «boondoggle» را به عنوان پسورد انتخاب کرده است در نتیجه حاصل هش عبارت یعنی «45f8» به آلیس ارائه می‌دهد. سپس آلیس قفل هش در میان خود و باب قرار می‌دهد این قفل در ازای وارد کردن پسوردی که حاصل هش آن «45f8»است، بازگشایی می‌شود. در این مرحله آلیس و باب هیچکدام نمی‌توانند قفل را باز کنند زیرا هیچ‌کدام پسورد را نمی‌دانند. سپس آلیس سکه‌ای را در زنجیره قرار می‌دهد و یک قفل زمانی را در سمت چپ سکه قرار می‌دهد که به‌طور خودکار پس از 48 ساعت بازگشایی خواهد شد(شکل 3).

اعلام هش پسورد کارول
شکل3: آلیس با دراختیار داشتن هش پسورد کارول قادر به ایجاد قفل هش برای حفاظت از رمزارزهایی است که به باب ارسال کرده است(تا وی رمزارزها را در نهایت به کارول ارسال کند). ایجاد قفل زمانی برای رمزارزها به آلیس کمک می‌کند تا در صورت ناکامی باب در تکمیل عملیات پرداخت(در طی مدت زمان 48 ساعت) سکه‌ها را بازگرداند.

به‌کارگیری قفل زمانی و قفل هش توسط باب

باب می‌داند درصورتی که پیش از مهلت زمانی 48 ساعت پسورد را کشف کند، سکه را به‌دست خواهد آورد. وی همچنین می‌داند(بر اساس اطلاعاتی که آلیس به باب داده است) که کارول در ازای دریافت یک سکه پسورد را اعلام خواهد کرد. باب همان قفل هش را در زنجیره‌ی میان خودش و کارول قرار می‌دهد یک سکه به سوی کارول ارسال می‌کند و آن را با قفل زمانی دیگری قفل می‌کند(شکل 4). وی می‌داند که کارول برای برای بازکردن قفل هش و دریافت سکه باید پسورد را وارد کند. باب نیز برای باز کردن قفل هش و دریافت سکه در زنجیره‌ی میان باب و آلیس به همین پسورد نیاز دارد.

قرار دادن قفل زمانی و قفل هش آلیس و باب
شکل4: در صورتی که کارول پیش از مهلت زمانی 48 ساعته پسورد را اعلام کند، باب سکه‌هایی که از سوی آلیس ارسال شده است را در اختیار می‌گیرد. وی همان قفل هش را در سکه‌های ارسال شده به کارول قرار می‌دهد و یک قفل زمانی در آن تعبیه می‌کند. اعلام پسورد تنها راهی است که کارول می‌تواند سکه‌ها را دریافت کند و باب به این پسورد برای دریافت سکه‌ها از آلیس نیاز دارد.

اعلام پسورد و تکمیل فرآیند پرداخت

کارول پسورد(boondoggle) را در قفل هش وارد می‌کند پردازنده‌ی قفل تایید می‌کند که حاصل هش «boondoggle» معادل است با «45f8» و در نهایت قفل باز می‌شود. در نتیجه کارول سکه را به رشته‌ی خویش اضافه می‌کند(شکل 5).

کارول با دانستن پسورد صحیح قفل هش را باز می‌کند
شکل 5: کاورل پسوردش را برای باز کردن قفل و دریافت سکه اعلام می‌کند.

در حالی که پسورد کارول برای باب آشکار شده است، وی قفل هش سکه‌ای که از سوی آلیس ارسال شده است را به‌طور مشابه باز می‌کند(شکل 6) و در نهایت تراکنش تکمیل می‌شود.

باب سکه‌ها را دریافت می‌کند
شکل6: پسورد کارول برای باب مشخص شده است و می‌تواند سکه‌‌ها را از آلیس دریافت کند و عملیات پرداخت را تکمیل کند.

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

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

راز کوچک و کثیف شبکه‌ی لایتنینگ

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

در زمانی که آلیس سکه‌ها را به سوی باب ارسال می‌کند، شرایطی وجود دارد که در شکل 7 نشان داده شده است. این کانال دارای سه وضعیت خروجی شامل سکه‌های آلیس، سکه‌های باب و سکه‌های در حال ارسال است.

وضعیت تراکنش‌های کانال لایتنینگ
شکل7: وضعیت تراکنش‌های کانال لایتنینگ شامل سه خروجی است که سکه‌های آلیس، سکه‌های باب و سکه‌های در حال ارسال را شامل می‌شود.

درصورتی که ارزش دارایی‌های ارسال شده از آستانه‌ی داست(Dust) بیت کوین(تراکنش‌های بسیار کوچک که ارسال آن به دلیل کارمزد تراکنش‌ها به صرفه نیست) کمتر باشد، امکان نمایش آن به عنوان خروجی سوم(سکه‌های در حال ارسال) در وضعیت تراکنش کانال وجود ندارد. بنابراین استفاده از قفل زمانی و قفل هش در زمان ارسال تراکنش‌های بسیار کوچک امکان‌پذیر نیست.

سطل کارمزد ماینر‌ها

به منظور توضیح راز شبکه‌ی لایتنینگ، فرض ثابت بودن تعداد سکه‌ها بر روی یک رشته ثابت را اصلاح می‌کنیم. در حقیقت در کنار هر رشته یک سطل فرضی با عنوان «کارمزد ماینر‌ها» وجود دارد که بخش کوچکی از سکه‌ها را شامل می‌شود. ماینر‌هایی که وضعیت تراکنش‌های کانال را تایید می‌کنند و آن‌ها را در بلاکچین اعمال می‌کنند، دارایی‌های موجود در هر سطل را نیز دریافت می‌کنند. تنها در صورتی که طرفین کانال(آلیس و باب) توافق کنند امکان انتقال بخشی از سکه‌ها به سطل و یا بلعکس وجود دارد.

آلیس و باب به‌جای قفل کردن دارایی‌ها در پرداخت‌های کم ارزش با استفاده از قفل هش و قفل زمانی، دارایی ارسال شده را به سطل کارمزد(Fee Bucket) منتقل می‌کنند(شکل 8). باب اطمینان دارد زمانی که کارول پسورد را اعلام کرد، آلیس با وی در بازگرداندن دارایی از سطل کارمزد همکاری خواهد کرد.

کارمزد ماینر‌ها
شکل8: درصورتی که سکه‌های ارسال شده از آستانه‌ی اعلام شده برای ارزیابی داست کمتر باشد، مکانیسم HTLC قابل استفاده نخواهد بود زیرا تراکنش وضعیت کانال قابل استخراج نخواهد بود. آن‌ها به‌جای استفاده از مکانیسم قفل زمانی و هش، سکه‌ها را در سطل کارمزد ماینرها قرار می‌دهند.

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

پرداخت‌های کوچک قابل اطمینان نیستند

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

در این سناریو کارول انتخاب‌های محدودی دارد: وی می‌تواند بدون واکنش زیان را بپذیرد و یا کانال موجود میان خود و باب را متوقف کند. اما مسدود ساختن کانال هیچ کمکی به باز‌پس‌گیری دارایی وی نمی‌کند چرا‌که درصورت وقوع این سناریو، دارایی موجود در سطل کارمزد به یک ماینر ارسال خواهد شد.

با وجود امکان شکست در طرحی که بر اساس اطمینان میان طرفین مبادلات ارائه شده است(راز شبکه‌ی لایتنینگ)، در عمل نتایج کاملا مطلوبی را شاهد هستیم. باب از هیچ انگیزه‌ای برای خودداری از تحویل سکه‌ها به کارول برخوردار نیست. درصورتی که وی از تحویل سکه‌ها خودداری کند، شرایط برای او بهتر نخواهد بود(یک ماینر سکه‌ها را دریافت خواهد کرد) و حتی ممکن است شرایط نامطلوب‌تری مواجه گردد(از آنجایی که در این حالت اعتماد کارول را از دست خواهد داد کارول احتمالا کانال میان خود و باب را متوقف خواهد کرد).

استدلال‌های مطرح شده در مقابل مشکلات موجود در شبکه

استفاده از روش HTLC ماهیت غیرقابل اعتماد پرداخت‌ در شبکه‌ی لایتنینگ را تغییر داده است. به دلیل اقدامات طرف مقابل در هنگام پرداخت دارایی با ارزش بالاتر از مقدار «داست» امکان از دست رفتن دارایی کارول، باب و آلیس وجود ندارد. اما در زمان انجام تراکنش‌ها با ارزش کمتر از مقدار آستانه‌ی داست امکان زیان آلیس، باب و کارول به دلیل اقدامات طرف مقابل وجود دارد. این الگوی امنیتی نسبت به تصورات رایج در جامعه کاملا متفاوت است.

اهمیت پرداخت‌های کوچک شبکه‌ی لایتنینگ

در این شرایط ممکن است برخی از کاربران ادعا کنند که «چه کسی به پرداخت‌های کوچک اهمیت می‌دهد؟» این استدلال به دو دلیل قابل پذیرش نیست:

مقیاس‌پذیری هسته‌ی بیت کوین در لایه‌ی اصلی بلاکچین که در آن تسویه‌ی مبادلات با کارمزد بالا انجام می‌شود، مقدار آستانه‌ی دارایی برای ارزیابی به عنوان «داست» را تعیین می‌کند. تراکنش‌های «داست» در حقیقت خروجی‌هایی را شامل می‌شود که از نظر اقتصادی قابل خرج کردن نیست چرا‌که کارمزد مورد نیاز برای خرج کردن این نوع دارایی از ارزش دارایی بیشتر است. به عنوان مثال، در صورتی که کارمزد ارسال تراکنش در سطح 100 دلار قرار بگیرد، بسیاری از دستمزد‌های ماهیانه در سراسر جهان به عنوان «داست» ارزیابی خواهند شد.

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

آینده‌ای را تصور کنید که در آن اغلب تراکنش‌ها در شبکه‌ی لایتنینگ پردازش می‌شود و کارمزد ارسال تراکنش‌ها در لایه‌ی اصلی بیت کوین(L1) در سطح بالاتر از 100 دلار قرار گرفته است. ارسال تراکنش‌ها با ارزش کمتر از 100 دلار در شبکه‌ی اصلی هیچ ارزشی نخواهد داشت زیرا هزینه‌ی خرج کردن دارایی‌ها نسبت به ارزش دارایی در سطح بالاتری قرار دارد.

در این سناریو، شبکه‌ی لایتنینگ با شرایطی مواجه خواهد شد که در آن پرداخت‌های با ارزش 50 دلار قابل اعتماد نخواهد بود. زیرا انجام پرداخت با ارزش 50 دلار در لایه‌ی اصلی شبکه‌ی بیت کوین اقتصادی نیست و انجام این تراکنش در شبکه‌ی لایتنینگ به عنوان «داست» ارزیابی می‌شود. در این شرایط استفاده از روش از قفل زمانی و قفل هش برای ارسال تراکنش قابل استفاده نیست. بنابراین امکان از دست رفتن 50 دلار از دارایی کاربر به دلیل راز موجود در شبکه‌ی لایتنینگ وجود دارد.

کنترل هاب‌ها بر دارایی کاربران

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

با فرض افزایش کارمزد ارسال تراکنش در آینده، گذرگاه‌های اصلی(هاب) بر دارایی کاربران به‌طور موثری کنترل خواهند داشت. در صورتی که دارایی‌ها توسط توسط روش HTLC محافظت نشود، کاربران قادر به بازیابی دارایی‌ها نخواهند بود. بعلاوه در صورتی که ارزش دارایی کاربران در سطح برابر یا کمتر از کارمزد تراکنش‌های شبکه‌ی بیت کوین قرار بگیرد موجودی کاربران در تله‌ی هاب‌ها قرار خواهد گرفت. حذف یک کانال نیز به از دست رفتن تمامی دارایی کاربر منجر خواهد شد. هاب‌ها همچنین می‌توانند برای برآورده ساختن شرایط خاصی دارایی کاربران را به‌طور نامحدود قفل کنند(به عنوان مثال آشکار ساختن اطلاعات مسیر‌یاب پیازی(Onion-Routing) برای اهداف احراز هویت مشتریان و مقابله با پولشویی). همچنین امکان سرقت از کاربران به صورت اخذ کارمزد‌های گزاف وجود خواهد داشت. در این شرایط نیز کاربران برای دسترسی یافتن به دارایی‌های خود مجبور به پرداخت کارمزد خواهند بود.

از آنجایی که برخی از هاب‌های شبکه‌ی لایتنینگ(هاب‌های دارای تعداد اتصالات بالا)، بر دارایی کاربران به‌طور موثری کنترل دارند، تنظیم قوانین مناسب بر فعالیت آن‌ها ضروری به‌نظر می‌رسد.

دیگر مشکلات شبکه‌ی لایتنینگ

دلایل دیگری که احتمالا منجر به افزایش کارمزد شبکه‌ی بیت کوین و ایجاد مشکلاتی در شبکه‌ی لایتنینگ خواهند شد عبارتند از:

  • شبکه‌ی لایتنینگ تنها مقیاس تراکنش‌ها(و نه کاربران) را افزایش می‌دهد. راه‌اندازی گره‌ی کامل همچنان هزینه‌ی بالایی را به کاربر تحمیل می‌کند.
  • شرایط شبکه‌ی اصلی بیت کوین(L1) مبادلات شبکه‌ی لایتنینگ(L2) را تحت تاثیر قرار می‌دهد.
  • معمولا «وضعیت دارایی‌ها» از طریق تراکنش‌های شبکه‌ی لایتنینگ در دسترس قرار ندارد. همچنین احتمال شکست در پرداخت‌های کوچک اجتناب نا‌پذیر است.
  • در صورت گسترش گراف شبکه‌ی لایتنینگ مسیر‌یابی نیز دشوار‌تر می‌شود و در این شرایط هاب‌های شبکه‌ی لایتنینگ برای کاهش مشکلات مسیر‌یابی و نقدینگی متمرکز‌تر خواهند شد.
  • لزوم اتصال کاربران به شبکه برای دریافت سکه‌ها، استخدام برج‌های مراقبت(Watchtowers) برای نظارت بر تقلب در کانال، عضویت در سرویس‌های مسیر‌یابی برای ارسال دارایی، پشتیبان‌گیری پویا از وضعیت‌ کانال برای محافظت در برابر خرابی داده‌ها بخشی از تجربیات کاربران عادی را در زمان راه‌اندازی کیف‌پول به منظور فعالیت‌های دیگری به‌جز نگه‌داری رمزارزها محسوب می‌شود.
  • ریسک سیستماتیک: به منظور تامین نقدینگی لازم برای انجام تراکنش‌ها باید دارایی قابل توجهی در کانال‌های لایتنینگ(کیف‌پول‌های گرم) قفل شود.
  • پس از پایان انتشار بیت کوین کارمزد تراکنش‌ها نتواند مشوق‌های لازم برای استمرار فعالیت ماینر‌ها و تامین امنیت شبکه‌ی بلاکچین را ایجاد کند.

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

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

دکمه بازگشت به بالا