مقدمه - آشنایی با شبکه ی lightening بیت کویین
رمزارزها دارای ویژگیهای منحصربهفردی هستند: بهراحتی نمیتوان آنها را هک یا نابود کرد و هر شخص میتواند از آنها برای انتقال ارز به تمام نقاط جهان بدون دخالت شخص ثالث استفاده کند. برای اطمینان از پایدار بودن این ویژگیها، معاملات قابلتوجهی باید انجام شود. از آنجاییکه گرههای (Nodes) زیادی مسئول ادارهی یک شبکهی رمزارز هستند، ظرفیت پذیرش محدود است و در نتیجه، تعداد تراکنشها در هر ثانیهای (TPS) که یک شبکهی بلاکچین میتواند پردازش کند، برای تکنولوژی که هدف آن، استفاده شدن توسط تودهی مردم است، نسبتاً کم میباشد. برای غلبه بر محدودیتهای ذاتی تکنولوژی بلاکچین، چند راهحل مقیاسپذیری برای افزایش تعداد تراکنشهایی که یک شبکه از عهدهی آنها برمیآید، ارائه شده است. در این مقاله، نگاهی عمیق به شبکهی لایتنینگ (Network Lightning)- یکی از چند شبکهی گسترشیافتهی پروتکل بیتکوین- خواهیم انداخت.
شبکهی لایتنینگ چیست؟
شبکهی لایتنینگ، شبکهای است که در بالای بلاکچین قرار دارد تا تراکنشهای سریع فرد به فرد را تسهیل کند. این شبکه منحصر به بیتکوین نیست- رمزارزهای دیگری همچون Litecoin هم آن را در خود ترکیب کردهاند. شما ممکن است ندانید که منظور ما از 'قرار گرفتن در بالای بلاکچین' چیست. شبکهی لایتنینگ، پدیدهای است که راهحل خارج از زنجیره (Off-Chain) یا لایهی دومی (Layer Two) نامیده میشود و به افراد این امکان را میدهد تا بدون نیاز به ثبت هر تراکنش در بلاکچین، معامله کنند. شبکهی لایتنینگ از شبکهی بیتکوین جداست- گرهها و نرمافزارهای خاص خود را دارد. با این حال، با زنجیرهی اصلی ارتباط دارد. برای ورود یا خروج از شبکهی لایتنینگ، باید تراکنشهای خاصی در بلاکچین ایجاد کنید.
آنچه شما با تراکنش نخست خود انجام میدهید، ایجاد نوعی قرارداد هوشمند با کاربر دیگر است که در ادامهی این مطلب، به جزئیات آن خواهیم پرداخت- الان فقط به قرارداد هوشمندی فکر کنید که دارای دفتر کل خصوصی (Ledger Private) با کاربر دیگری است. شما میتوانید تراکنشهای زیادی را در این دفتر کل بنویسید. این تراکنشها فقط برای شما و طرف مقابلتان قابلمشاهده هستند، اما بدلیل وجود چند ویژگی خاص، هیچیک از شما نمیتوانید در آن تقلب کنید.
این دفتر کل کوچک، کانال نامیده میشود. فرض کنید آلیس و باب هر کدام 5 بیتکوین را در این قرارداد هوشمند قرار دادهاند. در کانال خود- هر دوی آنها 5 بیتکوین موجودی دارند. سپس آلیس برای دفتر کل مینویسد که 1 بیتکوین به باب پرداخت کنید. الان، باب دارای 6 بیتکوین و آلیس دارای 4 بیتکوین میباشد. بعد، باب 2 بیتکوین به آلیس ارسال میکند و موجودی آلیس، 6 بیتکوین و موجودی باب، 4 بیتکوین میشود. آنها میتوانند برای مدتی به این کار ادامه دهند. در هر زمان، هر یک از این دو نفر میتوانند وضعیت فعلی کانال را در بلاکچین منتشر کنند. در آن مرحله است که موجودی هر طرف کانال، به طرفهای مربوطه در زنجیره اختصاص مییابد. همانطور که از نام آن مشخص است، تراکنشهای لایتنینگ بهسرعت انجام میشوند. نباید منتظر هیچ تائید بلوکی ماند- پرداختها بههمان سرعتی که اتصال اینترنت شما اجازه میدهد، انجام میشود.
چرا شبکهی لایتنینگ ضروری است؟
تا الان، شبکهی لایتنینگ ظاهراً معقولترین روش برای مقیاسگذاری بلاکچین بیتکوین میباشد. هماهنگی ایجاد تغییرات در یک اکوسیستم گسترده، سخت است، چون خطر ایجاد هارد فورک (Forks Hard) و خطر ایجاد باگهای بهشدت فاجعهبار وجود دارد. با در خطر قرار گرفتن مقادیر زیاد پول، این تجربه بسیار خطرناک میشود. وقتی این تجربه را از بلاکچین دور میکنید، انعطافپذیری بیشتری خواهید داشت. اگر مشکلی پیش بیاید، تاثیری در شبکهی اصلی بیتکوین نخواهد گذاشت. راهحلهای لایهی دو، هیچیک از فرضهای امنیتی را که این پروتکل برای بیش از 10 سال حفظ کرده، تضعیف نمیکند. هیچ الزامی برای تغییر روش قدیمی انجام تراکنشها وجود ندارد. تراکنشهای درون زنجیرهای برای کاربر نهایی، به کار عادی خود ادامه میدهد، اما آنها الان گزینهی تراکنشهای خارج از زنجیره را نیز دارند. استفاده از شبکهی لایتنینگ، فواید گوناگونی دارد. در ادامه، به برخی از این فواید اشاره خواهیم کرد.
مقیاسپذیری شبکهی لایتنینگ
بلاکهای بیتکوین تقریباً هر ده دقیقه ایجاد میشوند و میتوانند بسیاری از تراکنشها را انجام دهند. فضای بلاک، یک منبع کمیاب است. بنابراین، شما باید به کاربرهای دیگر پیشنهاد دهید تا بلاک شما را بهموقع در این لیست قرار دهند. ماینرها، پیش از هر چیز، به پول اهمیت میدهند. در نتیجه، ابتدا تراکنشهای با مبالغ بالاتر را وارد میکنند. وقتی کاربران زیادی وجود ندارد که مبالغ را همزمان ارسال کنند، مشکلی پیدا نخواهد شد. شما میتوانید هزینهی کمی را تعیین کرده و معامله را در بلوک بعدی انجام دهید. اما وقتی همه، تراکنشهایشان را همزمان انجام میدهند، متوسط هزینه ممکن است بهشکل قابلتوجهی افزایش پیدا کند. در چند مورد، این هزینه از 5 دلار بالاتر میرود. در اوج بازار Bull 2017، این هزینه از 50 دلار عبور کرد.
برای تراکنشهایی که ارزش آنها به هزاران دلار بیتکوین میرسد، این هزینه ناچیز است، اما برای پرداختهای کمتر، قابلدوام نیست. چهکسی دوست دارد با هزینهی 5 دلاری، قهوهی 3 دلاری بنوشد؟
در شبکهی لایتنینگ، شما دو هزینه پرداخت میکنید- یک هزینه برای باز کردن کانال خود و هزینهی دیگر برای بستن آن. اما شما و طرف مقابلتان، پس از باز شدن کانال، میتوانید هزاران تراکنش را بهصورت رایگان انجام دهید. پس از پایان تراکنش، فقط باید وضعیت نهایی را در بلاکچین منتشر کنید. در این طرح بزرگ، اگر کاربران بیشتری به راهحلهای خارج از زنجیرهای همچون شبکهی لایتنینگ اعتماد کنند، فضای بلاک بهتر استفاده میشود. انتقال کمارزش و با تناوب بالا را میتوان در کانالهای پرداخت انجام داد، در حالیکه فضای بلاک برای تراکنشهای بزرگتر و باز/بسته شدن کانال استفاده میشود. این اتفاق میتواند سیستم را برای کاربران گستردهتری در دسترس قرار دهد و به آن اجازه میدهد تا در طولانیمدت، مقیاسبندی شود.
پرداختهای خُرد
در هر تراکنش، حداقل مقداری برای ارسال بیتکوین وجود دارد- تقریباً 0.00000546 بیتکوین. بههنگام نوشتن، این تقریباً معادل چهار سنت است. مبلغ کمی است، اما شبکهی لایتنینگ به شما این امکان را میدهد تا محدودیتهایی را برای تراکنش در کوچکترین واحد موجود- 0.00000001 بیتکوین یا یک ساتوشی اعمال کنید. شبکهی لایتنینگ برای پرداختهای خُرد، بسیار جذابتر است. هزینههای تراکنشهای منظم، ارسال مقادیر ناچیز را در زنجیرهی اصلی، غیرعملی میسازد. با این حال، در یک کانال، میتوانید کسری از بیتکوین را رایگان ارسال کنید. پرداختهای خُرد دارای استفادههای گوناگونی است. برخی حدس میزنند که آنها میتوانند جایگزین مناسبی برای مُدلهای مبتنی بر اشتراک باشند که در این مُدلها، کاربر هر زمان که از یک سرویس استفاده میکند، مبلغ کمی را پرداخت میکند.
حریم خصوصی
مزیت دوم شبکهی لایتنینگ این است که میتواند سطح بالایی از حریم خصوصی را به کاربر ارائه دهد. طرفها نیازی ندارند کانالهای خود را در معرض شبکهی وسیعتری قرار دهند. اگرچه میتوانید به بلاکچین نگاه کنید و بگویید که این تراکنش، یک کانال را باز کرده است، اما لزوماً نمیتوانید بگویید که در داخل کانال چه میگذرد. اگر شرکتکننده تصمیم بگیرد کانال خود را خصوصی کند، فقط اوست که میداند چه تراکنشهایی در حال رخ دادن است. اگر آلیس با باب و باب با کارول کانال دارد، آلیس و کارول هم میتوانند از طریق باب، به همدیگر پرداخت داشته باشند. اگر دن به کارول متصل باشد، آلیس هم میتواند به او پرداخت داشته باشد. شما میتوانید گسترش شبکهی کانالهای پرداخت بههمپیوسته را تجسم کنید. در چنین ساختاری، پس از بسته شدن کانال، دیگر نمیدانید که آلیس به چه کسی وجه ارسال کرده است.
شبکهی لایتنینگ چگونه کار میکند؟
تا به الان توضیح دادیم که چگونه شبکهی لایتنینگ به کانالهای بین گرهها در سطح بالا وابسته است. حال بیایید نگاهی دقیقتر به آن بیندازیم.
آدرسهای چند امضایی
آدرس چند امضایی (Multi-Signature)، آدرسی است که چندین کلید خصوصی میتواند از آن هزینه کند. هنگام ایجاد چنین آدرسی، شما مشخص میکنید که چند کلید خصوصی میتواند از آن موجودی هزینه کند و به چه تعدادی از این کلیدها برای امضای یک تراکنش نیاز است. برای مثال، طرح 1 از 5 به این معناست که پنج کلید میتواند یک امضای معتبر ایجاد کند و فقط به یکی از این کلیدها نیاز است. طرح 2 از 3 نشان میدهد که از سه کلید احتمالی، به دو کلید برای هزینهی این موجودیها نیاز است.
برای راهاندازی یک کانال لایتنینگ، شرکتکنندگان در یک طرح 2 از 2، موجودیها را قفل میکنند. یعنی، فقط دو کلید خصوصی وجود دارد که میتواند امضاء کند و برای جابهجایی سکهها، به هر دو نیاز است. بیایید دوباره به مثال آلیس و باب بازگردیم. آنها در ماههای آینده پرداختهای زیادی به همدیگر خواهند داشت. بنابراین، آنها تصمیم میگیرند که یک کانال در شبکهی لایتنینگ باز کنند. این فرایند با هر دو نفر آنها شروع میشود که مثلاً 3 بیتکوین در آدرس چند امضایی مشترک قرار میدهند. لازم به ذکر است که باب نمیتواند بدون موافقت آلیس، موجودی را از این آدرس خارج کند یا برعکس. الان، آنها فقط میتوانند یک ورق کاغذ داشته باشند که موجودی هر طرف را تنظیم میکند. موجودی شروع هر دو، 3 بیتکوین است. اگر آلیس بخواهد 1 بیتکوین به باب پرداخت کند، چرا یادداشت نکند که آلیس الان دارای 2 بیتکوین و باب دارای 4 بیتکوین است؟ موجودیها را میتوان از این طریق ردیابی کرد تا زمانیکه آنها تصمیم به انتقال وجوه کنند. مهمتر از همه، آیا این امکان که کسی همکاری نکند، وجود دارد؟ اگر آلیس در نهایت 6 بیتکوین و باب 0 بیتکوین داشته باشد، باب با خودداری از آزاد کردن وجوه، چیزی از دست نمیدهد (احتمالاً بهجز دوستی با آلیس).
قراردادهای هَش با محدودیت زمانی (HTLCs)
سیستم فوقالذکر خستهکننده است و دارای تنظیمات معتبر امروزی چندانی نیست. اگر مکانیزمی را معرفی کنیم که 'قرارداد' بین آلیس و باب را اجرا کند، قضیه بسیار جالبتر میشود. اگر یکی از طرفین تصمیم بگیرد که طبق قوانین بازی نکند، طرف دیگر همچنان راهی برای بیرون آوردن موجودی خود از کانال دارد. این مکانیسم، یک قرارداد هَش با محدودیت زمانی (Hash Timelock Contract) (یا HTLC) نامیده میشود. این اصطلاح ممکن است ترسناک بهنظر برسد، اما درک آن، کاملاً ساده است. این مکانیسم، از ادغام دو تکنولوژی دیگر (Hashlocks و Timelocks) بوجود آمده تا هرگونه رفتار غیرمسئولانه را در کانالهای پرداخت برطرف کند.
یک Hashlock، به شرایطی گفته میشود که بر تراکنش قرار داده میشود و حکم میکند که شما فقط با اثبات اینکه رازی (Secret) را میدانید، میتوانید وجوهی را هزینه کنید. فرستنده دادهای را هَش میکند و آن هَش را در تراکنش به گیرنده قرار میدهد. تنها راهی که گیرنده میتواند آن وجوه را هزینه کند این است که آیا دادههای اصلی (آن راز) متناسب با آن هَش هست یا نه. و تنها راهی که آنها میتوانند این دادهها را فراهم کنند این است که فرستنده آن دادهها را به آنها بدهد. یک Timelock به شرایطی گفته میشود که مانع از هزینهی وجوه پیش از یک زمان خاص میشود یا بهصورت یک زمان واقعی یا یک ارتفاع بلوک خاص مشخص میشود. HTLCها از ترکیب Hashlocks و Timelocks ایجاد میشوند. در عمل، از HTLCها میتوان برای ایجاد پرداختهای مشروط استفاده کرد- گیرنده باید قبل از زمان مشخصی، یک راز ارائه دهد یا فرستنده میتواند وجوه را پس بگیرد. در قسمت بعدی با مثالی بهتر، این موضوع توضیح داده شده است. خُب، بیایید دوباره به موضوع آلیس و باب برگردیم.
باز و بسته شدن کانالها
در مثال ما، آلیس و باب تراکنشهایی ایجاد کردهاند که آدرس چند علامتی را هزینه میکند که آنها بهاشتراک میگذارند. اما این تراکنشها همچنان در بلاکچین منتشر نمیشوند! پس اول باید کار دیگری انجام دهیم.
بهیاد داشته باشید، تنها راهی که این سکهها میتوانند از این آدرس چند علامتی خارج شوند، این است که هم آلیس و هم باب مشترکاً تراکنشی را امضاء کنند. اگر آلیس بخواهد هر شش سکه را به یک آدرس بیرونی بفرستد، به تائید باب احتیاج دارد. او ابتدا باید یک تراکنش (شش بیتکوینی به این آدرس) ایجاد کرده و امضای خودش را به آن بیفزاید. او میتواند بلافاصله به پخش تراکنش اقدام کند، اما این تراکنش نامعتبر است، چون باب امضای خود را وارد نکرده است. آلیس ابتدا باید تراکنش ناقص را به او بدهد. وقتی او امضای خود را اضافه میکند، آن تراکنش معتبر میشود. ما همچنان مکانیسمی نداریم که بتواند کاری کند که همه با صداقت بازی کنند. همانطور که پیشتر گفتیم، اگر طرف مقابل شما از همکاری کردن خودداری کند، وجوه شما گرفتار میشود. بیایید وارد مکانیزمی شویم که مانع انجام این کار میشود. هر طرف باید دارای یک راز باشد- اجازه دهید ما این رازها را As و Bs بنامیم. اگر آلیس و باب این رازها را فاش کنند، کار وحشتناکی خواهد بود. بنابراین، آنها را فعلاً پنهان نگه میدارند. این دو نفر، هَشهای راز مربوطه را ایجاد میکنند- h(As) و h(Bs). بنابراین، بهجای بهاشتراک گذاشتن رازهایشان، آنها آن هَشها را با هم بهاشتراک میگذارند.
آلیس و باب همچنین باید مجموعهای از تراکنشها را قبل از انتشار اولین تراکنش خود به آدرس چند امضایی ایجاد کنند. در صورتیکه طرف مقابل تصمیم به تصرف وجوه نماید، این به آنها یک درمان خواهد داد. اگر به کانالی همچون دفتر کل کوچک فکر میکنید که پیشتر به آن اشاره کردیم، پس تراکنشهای تعهد (Transaction Commitment)، بهروزرسانیهایی است که برای دفتر کل ایجاد میکنید. هر زمان که یک جفت تراکنش تعهد جدید ایجاد میکنید، وجوه بین دو شرکتکننده را دوباره متعادل میسازید. تراکنش آلیس دارای دو خروجی است- یکی پرداخت به آدرسی که متعلق به اوست و دیگری پرداخت در یک آدرس چند امضایی جدید که قفل شده است. او آن را امضاء میکند و به باب میدهد.
باب نیز همین کار را انجام میدهد- یک خروجی به خود او پرداخت میکند و دیگری به آدرس چند امضایی دیگر. او آن را امضاء میکند و به آلیس میدهد.
برای معتبر کردن تراکنش باب، معمولاً آلیس میتواند امضایی را اضافه کند. اما توجه داشته باشید که این وجوه از آدرس چند امضایی 2 در 2 هزینه میشود که ما هنوز آن را تامین نکردهایم. این شبیه به آن است که بخواهید چکی را از حسابی هزینه کنید که موجودی آن فعلاً صفر است. در نتیجه، این تراکنشهای تاحدی امضاشده فقط در صورت راهاندازی و استفاده از آدرس چندامضایی، قابلاستفاده خواهد بود.
آدرسهای چندامضایی جدید (که در آن، 3 خروجی بیتکوین مقرر شده است)، دارای چند ویژگی جالب هستند. بیایید دوباره تراکنش ناقصی را بررسی کنیم که آلیس امضاء کرده و به باب داده است. خروجی چندامضایی را میتوان تحت شرایط زیر هزینه کرد:
- هر دو طرف میتوانند مشترکاً آن را امضاء کنند.
- باب میتواند بعد از مدت زمانی مشخص (بدلیل محدودیت زمانی ما)، خودش آن را خرج کند.
- اگر آلیس از Bs مخفی باب اطلاع داشته باشد، میتواند آن را خرج کند.
- برای تراکنشی که باب به آلیس میدهد:
- هر دو طرف میتوانند مشترکاً آن را امضاء کنند.
- آلیس میتواند بعد از مدت زمانی مشخص، خودش آن را خرج کند.
- اگر باب از As پنهان آلیس اطلاع داشته باشد، میتواند آن را خرج کند.
بهیاد داشته باشید که هیچیک از طرفین از راز طرف مقابل باخبر نیستند. بنابراین 3) همچنان امکانپذیر نیست. نکتهی دیگری که باید به آن توجه داشته باشید این است که اگر تراکنشی را امضاء میکنید، طرف مقابل شما میتواند بلافاصله آن را هزینه کند، چون هیچ شرایط خاصی در خروجی او وجود ندارد. یا شما میتوانید منتظر بمانید تا محدودیت زمانی منقضی شود و وجوه را خود هزینه کنید یا میتوانید برای خرج کامل آنها، با طرف مقابل همکاری کنید. خُب، الان میتوانید تراکنشها را در آدرس اصلی چندامضایی 2 از 2 منتشر کنید. در نهایت، انجام این کار امن است، چون اگر طرف مقابل شما کانال را ترک کند، میتوانید وجوه خود را بازیابی کنید. پس از تائید معاملات، کانال بالا میآید و شروع به کار میکند. نخستین جفت تراکنشها، وضعیت فعلی دفتر کل کوچک را به ما نشان میدهد. در حال حاضر، دفتر کل کوچک 3 بیتکوین به باب و 3 بیتکوین به آلیس پرداخت خواهد کرد. وقتی آلیس میخواهد پرداخت جدیدی به باب انجام دهد، این جفت دو تراکنش جدید برای جایگزینی مجموعهی اول ایجاد میکند. آنها نیمه امضاشده هستند. با این حال، آلیس و باب ابتدا رازهای قدیمی خود را رها میکنند و برای مرحلهی بعدی تراکنشها، هَشهای جدیدی را معامله میکنند.
هر یک از طرفین میتوانند در هر زمان یکی از جدیدترین تراکنشها را امضاء و پخش کنند تا آن تراکنش در بلاکچین بنشیند. اما هر طرفی که این کار را انجام دهد، باید منتظر باشد تا محدویت زمانی منقضی شود، در حالیکه طرف دیگر میتواند بلافاصله آن را هزینه کند. بهیاد داشته باشید، اگر باب تراکنش آلیس را امضاء و پخش کند، آلیس الان خروجی دارد که هیچ شرطی در آن نیست. هر دو طرف میتوانند با هم توافق کنند تا کانال را ببندند (بستن مشترک کانال). این احتمالاً سادهترین و سریعترین راه برای بازگرداندن وجوه خود به زنجیره است. با این حال، حتی اگر یک طرف بدون واکنش باشد یا از همکاری خودداری کند، طرف دیگر میتواند با انتظار برای منقضی شدن محدویت زمانی، وجوه خود را پس بگیرد.
شبکهی لایتنینگ چگونه از تقلب جلوگیری میکند؟
شما میتوانید یک بردار حمله را در اینجا شناسایی کنید. اگر باب در حال حاضر 1 بیتکوین موجودی دارد، چهچیزی مانع میشود که او نتواند تراکنش قدیمیتر را پخش کند، تراکنشی که در آن او بیشتر داشته است؟ او قبلاً تراکنش نیمه امضاءشدهای را از آلیس دریافت کرده و فقط باید امضای خود را اضافه کرده و آن تراکنش را پخش کند، درست است؟ هیچچیز او را از این کار بازنمیدارد- بهجز این حقیقت که او ممکن است کل موجودی خود را از دست بدهد. بیایید فرض کنیم که او این کار را انجام میدهد و تراکنش قدیمی را پخش میکند که یک سکه به آلیس و پنج سکه به آن آدرس چند امضایی پرداخت میکند که پیشتر ذکر شد. آلیس بلافاصله سکهی خود را دریافت میکند. از طرف دیگر، باب باید منتظر بماند تا محدویت زمانی منقضی شود و بتواند از آن آدرس چندامضایی هزینه کند. بهیاد بیاورید که شرط دیگری را که ذکر کردیم، به آلیس این امکان را میدهد تا همان وجوه را بلافاصله هزینه کند؟ او به رازی نیاز دارد که در آن زمان نداشت. او الان این راز را دارد- بهمحض ایجاد دور دوم تراکنش، باب این راز را کنار میگذارد. در حالیکه باب نشسته و نمیتواند کاری انجام دهد، چون منتظر منقضی شدن محدویت زمانی است، آلیس میتواند این وجوه را جابهجا کند. این مکانیسم مبتنی بر مجازات به این معناست که بعید است شرکتکنندگان تقلب کنند، چون همتای او به سکههای خود دسترسی دارد.
پرداختهای مسیریابی (Payments Routing)
ما پیشتر به این موضوع پرداختیم- کانالها میتوانند به هم متصل باشند و در غیر اینصورت، شبکهی لایتنینگ برای پرداختها چندان مفید نخواهد بود. آیا قصد دارید 500 دلار را در یک کانال دارای کافیشاپ قفل کنید تا بتوانید هزینههای روزانهی خود را برای چند ماه آینده دریافت کنید؟ شما مجبور نیستید این کار را انجام دهید. اگر آلیس کانال خود را با باب باز کند و باب دارای یک کانال با کارول باشد، باب میتواند پرداختهایی بین این دو داشته باشد. این میتواند در چندین 'Hops' جواب دهد، یعنی آلیس میتواند به هر کسی که دارای مسیری است، بهخوبی وجوه را پرداخت کند.
واسطهها بدلیل نقش خود در مسیریابی، ممکن است هزینهی جزئی بگیرند (اگرچه هیچ الزامی برای این کار وجود ندارد.) شبکهی لایتنینگ همچنان بسیار جدید و نوست. در نتیجه، بازار همچنان باید به تحقق آن فکر کند. آنچه بسیاری انتظار دارند ببینند، هزینههای مبتنی بر نقدینگی ارائه شده است. در زنجیرهی پایه، هزینهی شما فقط بر اساس فضایی است که تراکنش شما در یک بلوک اشغال میکند- ارزش منتقل شده مهم نیست- هزینهی پرداخت 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 بیتکوین را با هزینهی ده ساتوشی میفرستم. به این شکل، هرچه وجوه بیشتری از موجودی محلی او را کارول در مسیرهای 'قویتری' فداکاری کند، سود بیشتری نیز بدست میآورد.
همانطور که قبلاً ذکر شد، هیچ الزامی برای دریافت هزینه وجود ندارد. برخی ممکن است نگران کاهش نقدینگی نباشند و برخی دیگر ممکن است فقط کانالها را مستقیماً به گیرنده باز کنند.
محدودیتهای شبکهی لایتنیگ
اگر اثبات شود که شبکهی لایتنینگ، راهحلی برای تمام مشکلات مقیاسپذیری بیتکوین است، عالی خواهد شد. متاسفانه، این شبکه مشکلات خاص خود را دارد که ممکن است بهعنوان مانعی در سر راه آن سبز شود.
قابلیتاستفاده
بیتکوین شهودیترین سیستم برای مبتدیان نیست- آشنایی با آدرسها، هزینهها و غیره گیجکننده است. اما کیف پولها میتواند این موضوع پیچیده را ساده کند و به کاربر چیزی دهد که بهشکل عجیبی، شبیه سیستمهای پرداخت موجود است. شما میتوانید از کسی بخواهید تا کیف پول تلفن هوشمند را دانلود کند و برای او سکه بفرستید و او هم بدون مشکل به کار خود ادامه میدهد. در حال حاضر، این در شبکهی لایتنینگ امکانپذیر نیست. در برنامههای گوشیهای هوشمند، گزینهها محدود هستند- در کل، برای استفادهی کامل از گرههای لایتنینگ، باید به یک گره بیتکوین دسترسی داشته باشید. پس از آنکه گیرنده تنظیم شد، کاربران همچنین باید قبل از پرداختها، بتوانند کانالها را باز کنند. این میتواند یک فرایند زمانبر باشد و وقتی مفاهیمی همچون ظرفیت ورودی/خروجی به یک تازهوارد معرفی میشود، این مفاهیم میتواند سنگین باشد. این بدان معناست که پیوسته بهبودهایی برای کاهش موانع ورود و فراهم کردن تجربهی بهروزتر برای کاربران در حال انجام است.
نقدینگی
یکی از بزرگترین انتقادات به شبکهی لایتنینگ این است که توانایی شما برای تراکنش داشتن، محدود است. شما نمیتوانید بیش از آنچه در یک کانال قفل کردهاید، هزینه کنید. اگر همهی وجوه خود را هزینه کنید، بهگونهای که موجودی از راه دور دارای تمام وجوه کانال باشد، باید کانال را ببندید. بهعنوان یک راه جایگزین، میتوانید صبر کنید تا کسی از طریق آن، به شما پرداخت کند، اما این روش ایدهآلی نیست. مسیرهای شما همچنین میتوانند از طریق ظرفیت کل کانال محدود شوند. دوباره به مثال آلیس <> کارول <> فرانک توجه کنید. اگر آلیس و کارول در کانال خود دارای ظرفیت 5 بیتکوین باشند، اما کارول و فرانک فقط ظرفیت 1 بیتکوین داشته باشند، آلیس هرگز نمیتواند بیش از 1 بیتکوین ارسال کند. کل موجودی باید در طرف کارول کانال کارول <> فرانک باشد تا بتواند کار کند. این میتواند بهشدت مقدار بودجهی قابلانتقال در کانالهای LN را محدود کند و بنابراین، تاثیر قابلتوجهی بر قابلیتاستفاده دارد.
قطبهای متمرکز
بدلیل مسئلهی ذکر شده در بخش قبل، این نگرانی هست که این شبکه، ایجاد 'قطبهای' گسترده را تسهیل کند: قطبهایی بزرگ و بههم متصل و نزدیک به هم که نقدینگی زیادی دارند. هرگونه پرداختهای قابلتوجه و بزرگ باید از طریق برخی از این نهادها انجام شود. مشخصاً این وضعیت خوبی نخواهد بود و سیستم را ضعیف میکند، چون آفلاین عمل کردن این نهادها، روابط بین همتایان را بهشکل قابلتوجهی دچار اختلال میکند. همچنین خطر سانسور نیز افزایش مییابد، چون فقط چند نقطه وجود دارد که معاملات از طریق آنها انجام میشود.
وضعیت فعلی شبکهی لایتنینگ
از آوریل 2020، شبکهی لایتنینگ سالم بهنظر میرسد. این شبکه به بیش از 12000 گره آنلاین، بیش از 30000 کانال فعال و بیش از 920 بیتکوین خود افتخار میکند.
چند مکانیسم گوناگون برای گره وجود دارد- Blockstream’s c-lightning، Lightning Labs’ Lightning Network Daemon و ACINQ’s Eclair چند تا از محبوبترین مکانیسمها هستند. برای کاربرانی که کمتر گرایشهای تخصصی دارند، شرکتهای بسیاری گرههای Plug And Play ارائه میدهند. تنها کاری که باید با این گرهها انجام دهید این است که دستگاه را روشن کنید و برای شروع کار با شبکهی لایتنینگ آماده شوید.
سخن پایانی
از زمان راهاندازی شبکهی اصلی در سال 2018 و علیرغم اینکه خیلیها فکر میکنند که این شبکه همچنان در حالت بتا قرار دارد، شبکهی لایتنینگ رشد قابلتوجه و چشمگیری به خود دیده است. اما همچنان چند مانع در ارتباط با قابلیتاستفاده هست که باید بر آنها غلبه کرد، چون برای کار با گره لایتنینگ، در حال حاضر به درجهای از مهارت و تخصص فنی نیاز است. اما با توجه به میزان پیشرفت رخ داده، با گذشت و مرور زمان، احتمالاً شاهد کاهش موانع خواهیم بود. اگر این مشکلات را بتوان حل کرد، شبکهی لایتنینگ میتواند به بخش جداییناپذیر اکوسیستم بیتکوین تبدیل شود و مقیاسپذیری و سرعت تراکنشها را تقویت کند.