شبکه لایتنینگ یا صاعقه یکی از راهکارهای بهبود مقیاسپذیری در بلاک چینهاست که بیت کوین و برخی از ارزهای دیجیتال دیگر از آن برای داشتن تراکنشهای سریع و کمهزینه استفاده میکنند. در ادامه با ارزمارکت همراه باشید تا نگاه دقیقتری به اینکه لایتنینگ چیست و چگونه کار میکند، بیاندازیم.
مشکل مقیاسپذیری
تراکنشهای بیت کوین در شبکه اصلی دو مشکل بزرگ دارند. یک اینکه کارمزد آنها معمولا برای انتقال مبالغ خرد زیاد است و دوم اینکه زمان زیادی برای تایید شدن نیاز دارند.
لایتنینگ با تمرکز بر روی این دو مشکل، امکان انجام تراکنشهای سریع و کمهزینه را با بیت کوین فراهم میکند.
بلاک چینهای امروزی برای حفظ ویژگی غیرمتمرکز بودن، مجبور به قربانی کردن مقیاسپذیری شدهاند. برای نمونه شبکه بیت کوین تنها ۷ تراکنش در ثانیه را میتواند پردازش کند که برای دستیابی به پذیرش جهانی، یک معضل بزرگ است.
تعریف سادهای که از مقیاس پذیری در بلاک چینها میتوان ارائه داد، به هم نخوردن عملکرد طبیعی شبکه با افزایش تعداد کاربران و تراکنشهاست تا تقاضای به وجود آمده قابل مدیریت باشد.
این مشکل اواخر سال ۲۰۱۷ و اوایل ۲۰۱۸ در شبکه بیت کوین با افزایش زمان لازم برای تایید تراکنشها و همچنین رشد نجومی کارمزدها به وضوح خود را نشان داد.
تاریخچه لایتنینگ
ایده لایتنینگ توسط جوزف پون و تادئوس دریجا از سال ۲۰۱۵ مطرح شد. شرکت بلاکاستریم نیز در ژانویه ۲۰۱۸ از ایده لایتنینگ استفاده کرد و شبکه آزمایشی آن را برای بیت کوین راه انداخت.
اما مفهوم لایتنینگ در حالت کلیتر قدمتی به اندازه خود بیت کوین دارد. این ایده به زمانی برمیگردد که از «کانالهای پرداختی» برای مبادله بیت کوین بین ۲ فرد صحبت میشد، به طوریکه دیگر نیاز نبود هیچکس از این مبادله اطلاع پیدا کند یا تراکنش توسط دیگران تایید شود.
راهحلهای دیگری مانند افزایش سایز بلاک نیز از گذشته مورد بحث بوده که در نهایت مشهورترین فورک حاصل از این بحثها، بیت کوین کش بود.
شبکه لایتنینگ چیست؟
از شبکه لایتنینگ یا صاعقه به عنوان راهکار لایه دوم (Second Layer) یا برونزنجیرهای (Off-Chain) یاد میشود. شبکه لایتنینگ بیت کوین امکان انجام تراکنشهای بسیار بیشتری را نسبت به حالت عادی میدهد. این شبکه به صورت برونزنجیرهای عمل میکند و نیازی به ثبت تمامی تراکنشها در بلاک چین نیست.
شبکه لایتنینگ یا هاردفورک یا سافتفورک نیست و از طرفی نیازی به اجماع بر روی بلاک چین بیت کوین، برای تایید تراکنشهای آن وجود ندارد. علاوه بر این لایتنینگ منحصر به بیت کوین نیست و برای سایر ارزهای دیجیتال مانند لایت کوین هم پیادهسازی شده است.
در لایتنینگ افراد با ایجاد «کانال پرداختی» با دیگران در شبکه و وارد کردن مقدار مشخصی بیت کوین به کانالها، به صورت دو نفره (P2P) میتوانند مبادلات خود را به صورت آنی و نامحدود انجام دهند.
این اتفاق پرداخت مبالغ خرد با بیت کوین را امکانپذیر میکند و دیگر برای خرید قهوه با بیت کوین، نیازی نیست که مدت طولانی را برای تایید تراکنش منتظر بمانید.
شبکه لایتنینگ چگونه کار میکند؟
اساس کار شبکه لایتنینگ، استفاده از «کانالهای پرداختی دوطرفه» است. کانالهای پرداختی همان «کیف پولهای چندامضایی» با قابلیتهای بهبود یافته هستند.
به همین خاطر زمان لازم برای انجام مبادله در شبکه لایتنینگ به اندازه ارتباط دو کیف پول با یکدیگر طول میکشد، نه بیشتر!
شاید عبارت «برونزنجیرهای» در ابتدا گیجکننده به نظر برسد و فکر کنید که بیت کوینهای شما از شبکه بلاک چین خارج میشوند و به فضای دیگری منتقل میگردند؛ اما در واقع اینگونه نیست و بیت کوینهای شما تا زمانی که کانال به صورت باز باقی بماند، در یک آدرس چندامضایی که در بلاک چین ثبت شده قرار خواهند داشت.
زمانی که دو کاربر بخواهند به مبادلات بین خود خاتمه دهند با بستن کانال، تراکنشی را به بلاک چین ارسال میکنند و آخرین وضعیت موجودی هر یک در بلاک چین ثبت میشود. البته تراکنش دیگری نیز زمان ایجاد کانال بین دو کاربر، بر روی بلاک چین ثبت میشود که در آن مقدار قرار گرفته از سوی هر نفر در کانال مشخص میشود.
به عبارت سادهتر لایتنینگ مانند این است که شما و دوستتان حساب و کتاب بین خودتان را روی کاغدی مینویسید و در زمان حلوفصل حساب، با جمع و تفریق هزینههای صرف شده توسط هر طرف، مبلغ مشخصی را یا شما به دوستتان پرداخت میکنید یا او به شما پرداخت میکند.
اما این مبادلات همواره بین شما و دوستتان که به او اعتماد دارید، نیست. احتمالا در بسیاری از موارد قصد مبادله با یک فرد غریبه را داشته باشید؛ اما در این مورد چگونه باید به او اعتماد کرد؟
پاسخ این است که زمان ایجاد کانال، هر یک از شما سپرده مشخصی که تقریبا مانند یک وثیقه عمل میکند را در کانال قرار میدهید. این سپرده باید مساوی یا بیشتر از مقداری که انتقال مییابد باشد.
آیا شبکه لایتنینگ امن است؟
سازوکاری که در خود شبکه لایتنینگ وجود دارد از کلاهبرداری جلوگیری میکند. فرض کنید شهاب و یاسمن هر کدام با قراردادن ۱ بیت کوین، کانالی ایجاد کردهاند و پس از انتقالات صورت گرفته موجودی شهاب ۰.۵ و یاسمن ۱.۵ بیت کوین است.
حال اگر شهاب بخواهد همان ۱ بیت کوین اول را پس بگیرد، طبق سازوکار لایتنینگ کل مبلغ کانال یعنی ۲ بیت کوین به صورت یک تراکنش به کیف پول یاسمن واریز میشود. چنین جریمههایی در شبکه تعبیه شده تا افراد را از تقلب کردن باز دارد.
به یاد داشته باشید که حتی اگر شهاب و یاسمن هزاران بار به هم بیت کوین انتقال دهند، تنها دو تراکنش اول و آخر که مربوط به ایجاد و بستن کانال پرداخت است، در بلاک چین ثبت میشود.
لایتنینگ به زبان فنی
در توضیح فنی نحوه انجام تراکنشها در لایتنینگ، مجموعه سه بخشی اینفوگرافیک «شبکه لایتنینگ (Lightning Network) چگونه کار میکند؟» تهیه شده است. اما در ادامه نیز به اختصار به جزئیات فنی این شبکه میپردازیم.
برای توضیح بهتر از مثال شهاب و یاسمن که میخواهند تراکنشی در لایتنینگ انجام دهند، استفاده میکنیم.
شهاب و یاسمن به همدیگر اعتماد ندارند و قرار است که یاسمن ۰.۲ بیت کوین به شهاب بفرستد. این دو نفر در آینده قرار است تراکنشهای زیادی با یکدیگر داشته باشند و به همین خاطر کانال پرداختی ایجاد میکنند که هر کدام از آنها ۱ بیت کوین در این کانال به عنوان سپرده قرار میدهد.
هر کدام از آنها ۱ بیت کوین به آدرس چندامضایی (multisig) در بلاک چین اصلی میفرستد. به این ترتیب با تایید اولین تراکنش توسط ماینرها در لایه اول (بلاک چین بیت کوین)، کانال پرداختی ساخته میشود.
آدرس چند امضایی این قابلیت را میدهد که برای انجام تراکنش به کلید خصوصی هر دو نفر نیاز باشد.
همین اتفاق در زمان بستن کانال و اعلام موجودی نهایی توسط شهاب و یاسمن هم انجام میشود.
لایتنینگ مجموعهای از کانالهای پرداختی است که از قراردادهای هوشمند برای اطمینان از اینکه شبکه به صورت غیرمتمرکز اداره میشود، استفاده میکند.
برای مثال اگر یاسمن بخواهد به مریم بیت کوین بفرستد، این کار را به واسطه کانالهایی که از قبل وجود دارد میتواند انجام دهد. کانال پرداختی یاسمن با شهاب، شهاب با زهرا و زهرا با مریم اجازه این کار را خواهد داد. اما به دلیل اینکه ماهیت روابط در شبکه بر پایه قراردادهای هوشمند است، یاسمن نیاز ندارد که به شهاب و زهرا (به عنوان واسطهها) اطمینان کند.
زهرا و شهاب «نودهای لایتنینگ» هستند. این نودها باید همیشه آنلاین باشند تا بتوان از آنها به عنوان واسط در شبکه لایتنینگ استفاده کرد.
در مثال قبلی، شهاب نمیتواند بیت کوینهای یاسمن را بدزدد؛ چرا که طبق عملکرد قراردادهای هوشمند باید ابتدا مبلغ را به زهرا بفرستد تا بتواند از یاسمن بیت کوین بگیرد.
اما با مشکل نودهای نامطمئن چه میتوان کرد؟ در صورتی که یکی از نودها وسط کار آفلاین شوند چه اتفاقی میافتد؟
لایتنینگ یک سازوکار درونی مبتنی بر قراردادهای هوشمند به نام HTLC یا «قراردادهای زماندار هششده» دارد که به کاربران اجازه میدهد به صورت یکطرفه بتوانند کانال پرداختی را ببندند.
قراردادها دارای ارزش زمانی هستند و به همین دلیل اگر نود شهاب یا زهرا آفلاین شود، یاسمن همیشه میتواند بیت کوینهایش را پس از گذشت یک بازه زمانی پس بگیرد.
تاریخچه تراکنشهای انجام شده بین یاسمن و مریم که با نام «وضعیتهای تراکنشها» از آنها یاد میشود، به صورت خودکار توسط نرمافزار لایتنینگ حذف میشوند. اگر یاسمن با دستکاری نرمافزار جلوی این کار را بگیرد و قصد ارسال یک «وضعیت قدیمی» به بلاک چین را داشته باشد که در آن حالت بیت کوینهایی که ارسال کرده را هنوز در اختیار دارد، نرمافزار مریم یا سرورهای طراحی شده دیگر جلوی این کار را میگیرند. آنها با رصد همیشگی تراکنشهای ارسالی به بلاک چین، اگر تراکنش یاسمن را پیدا کنند در این صورت تمامی بیت کوینهای یاسمن را در کانال گرفته و به مریم میدهند. این مجازات، انگیزه تقلب کردن را از یاسمن میگیرد.
چگونه از لایتنینگ استفاده کنیم؟
اولین نکتهای که باید به آن توجه کرد این است که چیزی به نام آدرس کیف پول در شبکه لایتنینگ وجود ندارد. کاربران در لایتنینگ با سیاهه یا اینویس (Invoice) سر و کار دارند.
سیاهه لایتنینگ حاوی تمامی اطلاعات موردنیاز برای ایجاد یک تراکنش توسط کاربر است. این اطلاعات شامل مقدار انتقال یافته به ساتوشی، زمان منقضی شدن سیاهه، زمان ایجاد سیاهه، کلید عمومی دریافتکننده تراکنش لایتنینگ و برخی دادههای دیگر است.
به دو روش میتوان به شبکه لایتنینگ متصل شد و از آن استفاده کرد؛ با راهاندازی نود لایتنینگ یا نصب کیف پولهای لایتنینگ.
راهاندازی نود لایتنینگ بیت کوین
همانطور که گفته شد لایتنینگ راهکار لایه دومی بر پایه بلاک چین بیت کوین است. به همین خاطر برای راهاندازی نود لایتنینگ باید ابتدا فول نود بیت کوین شوید. اما راهاندازی نود لایتنینگ حتی برای افراد فنی هم میتواند کار سختی باشد.
در حال حاضر سه پیادهسازی مختلف Lnd از لایتنینگ لبز، C-lightning از المنت پراجکت و ایکلیر از ACINQ برای شبکه لایتنینگ ارائه شده است. در میان ۳ نرمافزار مختلفی که این سه ارائه دادهاند، ایکلیر به دلیل رابط گرافیکی مناسبی که دارد، برای کابران عادی مناسبترین گزینه محسوب میشود.
کیف پولهای لایتنینگ بیت کوین
اگر به دنبال تجربه فول نود بودن نیستید، میتوانید کیف پولهای لایتنینگ بیت کوین را دانلود کنید. با اینکه بیشتر این کیف پولها هنوز در مراحل اولیه توسعه هستند، اما برای داشتن کارمزدهای پایین و تراکنشهای سریع میتوان از آنها استفاده کرد.
کیف پول Blue Wallet
اولین کیف پولی که برای iOS عرضه شد و رابط کاربری خوبی هم دارد. این کیف پول به صورت حضانتی (Custodial) است؛ یعنی کاربر کنترل کامل بیت کوینهایی که به کیف پول وارد میکند را ندارد و شرکت Blue Wallet مسئول نگهداری است. بلو والت هم اکنون برای اندروید و iOS عرضه شده است.
کیف پول Eclair
یکی از محبوبترین کیف پولهای لایتنینگ که میتوان از آن به عنوان کیف پول عادی بیت کوین هم استفاده کرد. این کیف پول که برای اندروید عرضه شده، کنترل بیت کوینها را به صورت کامل در اختیار کاربر گذاشته و امکان ارسال و دریافت بیت کوین در شبکه لایتنینگ را فراهم میکند.
کیف پول lnd
آخرین کلاینت عرضهشده از سوی لایتنینگلبز را میتوان در صفحه گیتهاب آن یافت. این کلاینت در ویندوز، لینوکس و مک قابل استفاده است.
مزایا و محدودیتهای لایتنینگ
مزایای لایتنینگ
محدودیتهای لایتنینگ
اعضای شبکه باید به طور مداوم بلاک چین بیت کوین را رصد کنند تا از خطر به سرقت رفتن بیت کوینهای کانالهای پرداختی در امان بمانند. البته این کار را برخی سرورها هم میتوانند انجام دهند.
باز کردن و بستن کانالهای پرداختی نیازمند تراکنشهای درونزنجیرهای است که نیازمند کارمزد و زمان نسبتا بیشتری است.