لایتینگ (Lightning )

وقتی ساتوشی ناکاموتو وایت پیپر بیت کوین را ارائه داد ایده روشی برای پرداخت الکترونیک همتا به همتا و بدون نیاز به اعتماد به شخصی ثالث را در ذهن داشت. با وجود پیشرفتهای چشمگیر شبکه بیت کوین در طی این سالها، وجود برخی مشکلات سبب شده تا آرزوی ناکاموتو تماما اجرا نشود.
شبکه لایتنینگ (Lightning Network ) به عنوان راه حلی برای حل این مشکلات پا به عرصه نهاد. اگرچه شبکه لایتنینگ نتوانسته است پاسخی کامل برای حل این مشکل داشته باشد اما بیشک موفق شده است تا بیت کوین را برای تراکنشهای روزمره و به عنوان ابزاری برای خرید کالا و خدمات مناسبتر سازد.
در ادامه این مطلب درباره اینکه شبکه لایتنینگ چیست و چگونه کار میکند بیشتر خواهید خواند. همچنین در مورد تاریخچه این سیستم، موارد استفاده از آن و راههای استفاده از آن صحبت خواهیم کرد. همراه ما باشید.
فهرست مطالب
شبکه لایتنینگ
لایتنینگ راهکاری لایه دو و خارج از شبکه (Off-chain ) برای شبکه بیت کوین است که با میسر ساختن کانالهای پرداخت، امکان پرداخت امن دو طرفه بین دو یا چند نفر را بدون نیاز به اعتماد فراهم میکند. با توجه به سرعت بالا و کارمزد کم این راهکار، این شیوه میتواند گزینه مناسبی برای پرداختهای خرد روزانه باشد. همچنین از آن جا که این راهکار، تنها در هنگام باز کردن و بستن کانال، اطلاعات را در شبکه اصلی بیت کوین ثبت میکند، میتواند منجر به کاهش بار هر چند اندک شبکه بیت کوین نیز شود.
علت نیاز به لایتنینگ
علت نیاز به لایتنینگ، حل مشکل مقیاسپذیری بیت کوین واستفاده روزمره از آن در زندگی به عنوان ابزاری برای پرداخت است. لایتنینگ همچنین به دنبال دموکراتیزه کردن دسترسی به امکانات مالی در مناطق کمتر برخوردار جهان است. در کشوری همانند السالوادور که ۷۰ درصد تجارت در آن به وسیله پول نقد انجام میشود و بسیاری از مردم به موسسات مالی دسترسی ندارند، راهکار لایتنینگ میتواند به کمک بسیاری آید.
در سمت دیگر ماجرا، نرخ انجام تراکنش در شبکه بیت کوین حداکثر ۷ تراکنش بر ثانیه است و این مانعی جدی برای استفاده از آن است (در مقام مقایسه شرکت خدمات پرداخت ویزا قادر به پردازش بیش از ۵۰۰۰۰۰ تراکنش بر ثانیه است ).
نگاهی به گذشته لایتنینگ
پس از اینکه ایده بیت کوین توسط ساتوشی ناکاموتو در سال ۲۰۰۸ مطرح شد، یکی از اولین نظراتی که مطرح شد (توسط جیمز دانلد ) حاوی این جمله بود: آن طور که من از پیشنهادت دستگیرم شد، نمیتواند به مقیاس مورد نظرت برسد و 13 سال بعد هنوز این مشکل وجود دارد.
اولین نشانههای شبکه لایتنینگ را میتوان در ریشه مفهومی به اسم کانال پرداخت (Payment Channel ) جستجو کرد که عمری به قدمت شبکه بیت کوین دارد. کانال پرداخت در واقع موجودی بیت کوین بین دو آدرس است که بقیه جهان از آن اطلاع ندارند و مهمتر از آن میتواند مقادیر آن بارها آپدیت شود بی آن که نیاز به تراکنشی بر روی شبکه اصلی باشد. وقتی موجودی یک طرف زیاد شود، به همان مقدار از موجودی طرف مقابل کم میشود. این به دو طرف اجازه میدهد تا بارها برای یکدیگر تراکنش بفرستند بدون اینکه باری به شبکه اصلی اضافه کنند. پس از اینکه تراکنشهای مدنظر بین دو آدرس انجام پذیرفت، میتوان با یک تراکنش در شبکه اصلی، حسابها را تسویه کرد و کانال پرداخت را بست. از آن جا که تراکنشهای درون کانال پرداخت، خارج از شبکه (Off-Chain ) انجام میپذیرند، هزینه تراکنش اندکی دارند و سریعتر هستند چرا که نیازی به ماینینگ و به دنبال آن تشکیل چند بلوک برای تایید نیست.
ایده این کار در اولین نرم افزار توسعه یافته برای بیت کوین توسط ناکاموتو در سال ۲۰۰۹ وجود داشت؛ در چند خط کدی که در تصویر زیر مشاهده میکنید واز نسخه ۰.۱ نرم افزار بیت کوین برداشته شده است؛ کاربران میتوانند یک تراکنش را پیش از تایید آپدیت نمایند.

این کد حکم پیشنویسی برای اتفاقات آتی بود. ساتوشی ناکاموتو طی سالهای آتی در طی صحبتهای خصوصیاش با توسعهدهندگان نرمافزار بیت کوین جی (bit coin j ) این ایده را کاملتر کرد.
در طی سالهای ۲۰۱۱ تا ۲۰۱۵ چندین طراحی برای کانالهای پرداخت و پرداخت خارج از شبکه ارائه و پیشنهاد شد.طراحیهایی همچون:
- کانالهای اسپیلمن (Spilman)
- آمیکو پی (Amiko Pay ) که ترکیبی از تکنولوژی ریپل و بیت کوین بود
- سیستم پیشنهادی منی روزنفلد (Meni Rosenfeld)
- کانال پرداخت الکس اکسلراد (Alex Akselrod)
- سیستم پرداخت استارتاپی سوئدی به نام استراو پی (Straw pay )
- کانال پرداخت دکر-واتنهوفر (Decker-Watten Hofer )با نام کانالهای پرداخت خرد دوپلکس (DMC )
هر کدام از این روشها معایب و مزایایی داشتند :
- احتیاج به تغییرات گسترده در پروتکل بیت کوین (هارد فورک ) برای عملی شدن
- کار کردن در یک جهت برای انجام تراکنش که منجر به بستن کانال فعلی و ایجاد کانال جدید میشد.
- نیاز به اعتماد به سیستم واسطه
- قرار گرفتن در معرض خطر چکشخواری بیت کوین (Bitcoin Malleability )
- و غیره…
با این حال احتمالا اگر استفاده از شیوه فعلی رواج پیدا نمیکرد، یکی از راههای جایگزین میتوانست همهگیر شود. حال سوال این است که شبکه لایتنینگ دستپخت ذهن کیست؟
قطعات پایانی پازل در اوایل سال ۲۰۱۵ کنار هم قرار گرفت؛ در آن زمان تادئوس درایا (Thaddeus Dryja ) و جوزف پون (Joseph Poon ) ایده شبکه لایتنینگ را در مقالهای منتشر کردند. این مقاله چند راهکار برای محقق کردن شبکه پرداخت بدون نیاز به اعتماد در خود داشت: هیچ کدام از طرفین معامله نمیتوانست بدون در معرض خطر قرار دادن پولی که در کانال قرار داده، دست به تقلب بزند. همچنین واسطههای تراکنشها نمی توانند حتی به شکلی جزئی در تراکنشها دست ببرند و در نهایت این پیشنهاد نیاز به تغییر جزیی در پروتکل بیت کوین داشت و کاربرپسندتر بود. نوآوری کلیدی این ایده در طراحی کانال پرداخت درایا-پون بود. این کانال همانند برخی دیگر از کانالهای قبلی ، از تراکنشهای نیمه امضا شده که بین طرفین به اشتراک گذاشته میشوند، سود میبرد اما با افزودن گام به اشتراک گذاری هش، امکان دو طرفه بودن را به آن افزود. همچنین این طراحی از مکانیزم قراردادهای هوشمند قفل شده با هش و زمان (Hashed Time lock Contracts ) و بعدها از مکانیزمهای CLTV (Check Lock Time Verify ) و CSV (Check Sequence Verify ) بهره میبرد که توسط تایر نولان (Tier Nolan ) و سپس پیتر تاد (Peter Todd ) پیشنهاد و به پروتکل بیت کوین اضافه شد.
پس از آن مجموعههای مختلفی از این ایده استفاده کردند. در سال ۲۰۱۵ شرکت بلاک استریم (Block stream ) اولین نمونه عملی شبکه لایتنینگ را به زبان سی توسعه داد و آن را c-lightning نامید. به تدریج شرکتهای مختلفی از ایده لایتنینگ برای توسعه نسخه خود بهره گرفتند. آسینکیو (ACINQ ) راهکاری با زبان اسکالا توسعه داد. در ژانویه ۲۰۱۶، ایدهپردازان لایتنینگ در کنار چندی دیگر، شرکت لایتنینگ لبز (Lightning Labs ) را بنا نهادند که محصولی به نام lnd ارائه داد که نسخهای از لایتنینگ به زبان گو (Go ) بود. در ادامه محصولات دیگری با نامهای lit، thunder و Flare وارد بازار شدند. افزایش راهکارها خود تهدیدی برای استفاده عملی و رواج این ایده بود. در اواخر سال ۲۰۱۶، در سومین کنفرانس مقیاسپذیری بیت کوین، بحثهایی در خصوص هماهنگی و ایجاد فریمورکی مشترک برای تمامی راهکارهای لایتنینگ در گرفت که منجر به تدوین پروتکل بولت (Basis Of Lightning Technology ) شد. اگر وایت پیپر لایتنینگ را پایه تئوری شبکه لایتنینگ در نظر بگیریم، پروتکل بولت پایه و اساس عملی شبکه لایتنینگ به معنای چیزی که امروزه میشناسیم است.
در اولین تراکنش آزمایشی شبکه لایتنینگ کریستین دکر این تصویر را از راستی راسل خریداری کرد. این پرداخت به وسیله بیت کوین مشقی انجام شد.
- در اکتبر ۲۰۱۶ اولین تراکنش در نسخه آلفا سی لایتنینگ انجام شد.
- در ژانویه ۲۰۱۷، نسخه آلفا lnd منتشر شد.
- در تابستان ۲۰۱۷ پروتکل بیت کوین به روز رسانی شد وسگویت (SegWit ) به آن افزوده شد.
- در نوامبر ۲۰۱۷ لایتنینگ لبز اولین تراکنش لایتنینگ بین شبکهای را بین دو شبکه بیت کوین و لایت کوین انجام داد.
- در تاریخ ۴ ژانویه ۲۰۱۸، Tor Guard اولین ارائه دهنده VPN بود که از طریق این شبکه شروع به فروش VPN های خود کرد.
- در همین ماه Block stream یک سیستم پردازش پرداخت برای خردهفروشان وب به نام Lightning Charge راه اندازی کرد و خاطر نشان کرد که این شبکه ۶۰ گره یا نود فعال دارد و فعلا در مرحله آزمایش به سر میبرد.
- در دسامبر ۲۰۱۷ سرویسبیت ریفیل (Bit refill ) امکان پرداخت قبوض تلفن به وسیله لایتنینگ را فراهم کرد.
- در فوریه ۲۰۱۸ لازلو هانیچ که مسبب روز پیتزا بیت کوین است، این بار به وسیله شبکه لایتنینگ پیتزا خرید.
- در مارس ۲۰۱۸، lnd بدل به اولین توسعهای از لایتنینگ شد که نسخه بتای خود را ارائه داد.
پیتزا لایتنینگ؛ لازلو هانیچ این بار با استفاده از شبکه لایتنینگ پیتزا خریداری کرد.
روش کار لایتنینگ
یکی از فناوری هایی که ساخت شبکه لایتنینگ را امکان پذیر میسازد قراردادهای قفل شده با هش و زمان و یا Hash Time Locked Contract و یا به اختصار HTLC است. این نوع قراردادها در اصل یک نوع تراکنش بیت کوین هستند که از قابلیتهای چند امضایی و قفل زمانی که از پیش در پروتوکل بیت کوین تعریف شدهاند، استفاده میکنند. در واقع HTLC فناوری تازه ای نیست و امکان ایجاد این نوع تراکنشها از قبل در بیت کوین وجود داشته است.
چند امضایی (Multi Signature ) قابلیتی است که با استفاده از آن میتوان ورودی تراکنشی ایجاد کرد که به جای یک امضا به چند امضا برای انتقال بیت کوین های موجود در آن نیاز داشته باشد. با استفاده از قفل زمانی (Time Locked) هم میتوان ورودی تراکنشی ایجاد کرد که تا رسیدن به یک شماره بلاک خاص و یا استخراج تعداد معینی بلاک قابل خرج کردن نباشد. با ترکیب این دو ویژگی تراکنشهای بیت کوین میتوان یک HTLC ایجاد کرد.
با استفاده از این ویژگی میتوان مبادله بین زنجیرهای (با دیگر شبکههای منطبق با شبکه بیت کوین همچون لایت کوین ) بینیاز به اعتماد انجام داد:
فرض کنید سارا یک بیت کوین دارد و میخواهد آن را بدون نیاز به اعتماد کردن به حمید بدهد و ۸۰ لایت کوین در ازای آن از حمید دریافت کند. او برای این کار ابتدا یک کلید محرمانه (Secret Key ) که در واقع یک عدد رندوم است و فقط خودش آن را میداند ، تولید میکند. سپس هش این عدد را محاسبه میکند و این هش را در اختیار حمید میگذارد. از آنجا که هش یک تابع یک طرفه است، حمید هیچگاه از روی هش نمیتواند کلید محرمانهای که سارا ایجاد کرده است را پیدا کند.

سپس سارا یک تراکنش دو امضایی بیت کوین با مبلغ ۱ بیت کوین و به مقصد آدرس حمید ایجاد میکند که برای خرج کردنش به امضای دیجیتال خودش و حمید نیاز دارد و امضای خودش را بر روی آن قرار میدهد. علاوه بر این سارا دو قفل هم بر روی این تراکنش اضافه میکند. یک قفل هش (Hash Lock ) که با استفاده از هش Secret Key ساخته میشود و باعث میشود که حمید تنها در صورتی بتواند این تراکنش را امضا کند و این یک بیت کوین را به آدرس خود منتقل کند که کلید محرمانه را داشته باشد. قفل دوم هم قفل زمانی (Time Lock ) است و در حالتی کاربرد دارد که حمید Secret Key را ارائه نکند، در آن صورت بعد از استخراج تعداد معینی بلاک در بلاکچین بیت کوین، این یک بیت کوین به آدرس سارا برمیگردد.
از طرف دیگر حمید هم یک تراکنش دو امضایی لایت کوین با مبلغ ۸۰ LTC به مقصد آدرس سارا ایجاد میکند که برای خرج کردنش به امضای دیجیتال خودش و سارا نیاز دارد و امضای خودش را بر روی آن قرار میدهد. او هم با استفاده از هش Secret Key که سارا به او داده است یک Hash Locked به این تراکنش اضافه میکند که به سارا اجازه ایجاد امضای دوم و انتقال این ۸۰ LTC به آدرسش را میدهد. همچنین یک قفل زمانی هم برای حالتی که سارا اقدام به این کار نکرد ایجاد میکند که باعث میشود بعد از استخراج یک تعداد بلاک این ۸۰ LTC به آدرس خودش بازگردد.
به هرکدام از این تراکنشها یک قرارداد قفل شده با هش و زمان یا HTLC میگویند. طرفین بعد از ایجاد این تراکنشها که هر کدام فقط یک امضا از دو امضا را دارد، یک نسخه از آن را برای طرف دیگر ارسال میکنند.
بعد سارا که Secret Key را در اختیار دارد میتواند قفل هشی که حمید بر روی تراکنش لایت کوین ایجاد کرده را باز کند و بعد با استفاده از کلید خصوصیش امضا دوم این تراکنش را هم ایجاد کند و ۸۰ لایت کوین را به آدرس خودش منتقل نماید. بعد از اینکه سارا از Secret Key که خودش ساخته بود استفاده کرد و این تراکنش را در شبکه بیت کوین منتشر کرد، همه از جمله حمید از آن Secret Key مطلع میشوند. سپس حمید با استفاده از این Secret Key میتواند قفل هشی که سارا بر روی تراکنش بیت کوین ایجاد کرده بود را باز کند و امضای دوم مورد نیاز را بر روی این تراکنش ایجاد کند و ۱ بیت کوین را به آدرس خودش منتقل کند.

اما اگر مثلا سارا به هردلیلی اقدام به امضا و انتشار تراکنش لایت کوین نکند و از Secret Key استفاده نکند چه میشود؟ این جاست که قفل زمانی به کار می آید و باعث میشود بعد از استخراج تعداد از پیش تعیین شده ای بلاک در بلاکچین، لایت کوینهای حمید به حسابش برگردد. قفل زمانی موجود در تراکنش بیت کوین هم زمانی به کار میآید که مثلا بعد از ایجاد آن توسط سارا، حمید به هر دلیلی اقدام به ساخت تراکنش لایت کوین نکند، آنگاه این قفل زمانی باعث میشود بعد از استخراج یک تعداد مشخص بلاک در بلاکچین بیت کوین، دارایی های سارا به حسابش بازگردند.
به این ترتیب دو طرف میتوانند بدون نیاز به اعتماد به یکدیگر بین دو بلاکچین مجزا، مبادله بین زنجیره ای (Cross-Chain Trading ) داشته باشند و برای این کار به واسطهای مثل صرافیها نیازی نباشد. همچنین باید گفت که کل فرآیند توضیح داده شده میتواند در یک قالب کاربر پسند مثلا در قالب یک کیف پول به کار رود.
با این حال این شیوه به تنهایی منجر به حل مشکل مقیاسپذیری نخواهد شد، چرا که همیشه امکان ایجاد کانال پرداخت مستقیم بین دو آدرس وجود ندارد. شبکه لایتنینگ با ایجاد شبکهای از کانالهای پرداخت به این مشکل پاسخ داده است:
شبکهای از کانال های پرداخت
فرض کنید سارا میخواهد ۲ بیت کوین به حمید منتقل کند اما یک کانال پرداخت مستقیم بین این دو وجود ندارد. اما هر دو، گره یا نودی بر روی شبکه لایتنینگ بیت کوین دارند و هرکدام از آنها حداقل با یک یا چند گره دیگر، کانال پرداخت مستقیم باز دارند و هرکدام از آن گره ها هم با چند گره دیگر کانال پرداخت باز دارند. به این ترتیب شبکه ای از کانالهای پرداخت بوجود میآید که به آن شبکه لایتنینگ میگویند. در این شبکه اگر مسیری از طریق کانالهای پرداخت مختلف بین حمید و سارا وجود داشته باشد، سارا میتواند از طریق آن تراکنش لایتنینگ به مقصد حمید انجام دهد و این ۲ بیت کوین را به او منتقل نماید.
سارا بهینهترین مسیر ممکن بین خودش و حمید را انتخاب میکند. همانند تصویر بالا فرض کنید این مسیر از طریق کانال های پرداختی باز بین سارا، پیام، فرناز و در نهایت حمید باشد. حال میخواهیم ببینیم چگونه سارا میتواند بدون نیاز به اعتماد کردن به پیام و فرناز از طریق کانالهای پرداخت بینشان در شبکه لایتنینگ این ۲ بیت کوین را به حمید انتقال دهد. هرکدام از این انتقال دهندهها (hop ) ها مقدار جزئی کارمزد دریافت میکنند. توجه کنید که به برخی جزئیات فنی به جهت ساده سازی و فهم بهتر مطالب اشاره نشده است.
۱- حمید که گیرنده این بیت کوینهاست ابتدا یک عدد رندم به نام Secret Key تولید میکند و هش آن را محاسبه میکند.
۲- حمید هش Secret Key مرتبط به این تراکنش را برای فرستنده که سارا است میفرستد.
۳- سارا یک تراکنش HTLC به عنوان تراکنش تعهدی درست میکند، این تراکنش یک تراکنش دو امضایی است که سارا یک امضای آن را ثبت میکند. همچنین او با استفاده از هش Secret Key حمید یک قفل هش (Hash Lock ) بر روی آن ایجاد میکند که تنها با Secret Key حمید قابل باز شدن است. قفل زمانی (Time Lock ) هم باعث می شود در صورت انتشار این تراکنش در شبکه بیت کوین، بعد از استخراج تعدادی بلاک، خروجی آن توسط سارا قابل خرج کردن شود.
۴- سارا این تراکنش تعهدی را برای پیام ارسال میکند و مسیر انتخابیش را برای دیگر گره ها تعیین میکند.
۵- سارا هش Secret key حمید که مرتبط به این تراکنش است را برای پیام میفرستد.
۶- پیام یک تراکنش HTLC ایجاد میکند و با استفاده از هش Secret Key حمید یک قفل هش (Hash Lock ) بر روی آن ایجاد میکند که تنها با Secret Key حمید باز میشود و یک قفل زمانی (Time Lock ) هم بر روی آن میگذارد و امضای خودش که یکی از دو امضای مورد نیاز است را بر روی آن قرار میدهد.
۷- پیام تراکنش تعهدیش را برای فرناز ارسال میکند.
۸- پیام هش Secret Key حمید را برای فرناز ارسال میکند.
۹- فرناز یک تراکنش HTLC ایجاد میکند و با استفاده از هش Secret Key حمید یک قفل هش (Hash Lock ) بر روی آن ایجاد میکند که تنها با Secret Key حمید باز میشود و یک قفل زمانی (Time Lock ) هم بر روی آن میگذارد و امضای خودش که یکی از دو امضای مورد نیاز است را بر روی آن قرار میدهد.
۱۰- فرناز تراکنش تعهدیش را برای حمید که گیرنده نهایی است ارسال میکند.
حمید که گیرنده نهایی تراکنش است بعد از گرفتن تراکنش تعهدی فرناز، موجودی کیف پول لایتنینگ او به اندازه ۲ بیت کوین افزایش مییابد. سپس حمید Secret Key خودش را برای فرناز میفرستد، به این ترتیب فرناز میفهمد که تراکنش به دست نفر بعدی که حمید است، رسیده است و او هم این Secret Key را برای پیام و پیام هم برای سارا می فرستد تا سارا هم بعد از دریافت Secret Key حمید متوجه شود که مقدار انتقالیش به دست گیرنده نهایی که حمید است رسیده است. در این فرآیند هیچکس متوجه نمیشود که سارا و حمید فرستنده و گیرنده هستند و گره های انتقال دهنده (hop ها ) فقط می دانند مقدار تراکنش را از کدام گره دریافت کرده اند و به کدام گره باید انتقال دهند، به این ترتیب محرمانگی (Privacy ) فرستنده و گیرنده حفظ میشود.
حمید میتواند اقدام به بستن کانال پرداختیاش با فرناز کند و تراکنش تعهدی که فرناز برای او فرستاده بود را در شبکه بیت کوین منتشر کند تا در بلاکچین هم ثبت شود و یا این کانال پرداخت را برای تراکنشهای بعدی باز نگه دارد. برای بستن کانال پرداختی، حمید باید تراکنش تعهدی فرناز را که یک تراکنش HTLC با قفل هش (Hash Lock ) است، با استفاده از Secret Key که خودش در ابتدا ساخته بود، باز نماید و امضای خودش که امضای دوم است را با استفاده از کلید خصوصیش (Private Key ) بر روی این تراکنش ثبت نماید و این تراکنش را در شبکه بیت کوین منتشر نماید تا در بلاکچین ثبت شود.
به این ترتیب دو نفر میتوانند بدون نیاز به اعتماد کردن به یکدیگر تراکنشهای برون زنجیرهای (Off-Chain Transaction ) بر روی شبکه لایتنینگ (Lightning Network ) انجام دهند و شبکه اصلی بیت کوین را برای پرداختهای کوچک درگیر نکنند و به این ترتیب با افزایش سرعت انجام تراکنش ها مقیاس پذیری شبکه بیت کوین افزایش یابد.
کاربرد لایتنینگ
ممکن است این سوال پیش آید که کاربرد شبکه لایتنینگ یا علت استفاده از این شبکه چیست؟ پاسخ آن مقیاسپذیری است . ایده شبکه لایتنینگ افزایش مقیاسپذیری یک شبکه بلاکچین است. هرچند شبکه لایتنینگ برای اولین بار در شبکه بیت کوین مورد استفاده قرار گرفت اما این ایده منحصر به اولین شبکه بلاکچین نیست. سایر شبکهها مانند استلار، لایت کوین، زی کش، اتریوم و ریپل نیز میتوانند از این تکنولوژی برای ارتقا مقیاسپذیری شبکههای بلاکچین خود استفاده کنند.
هرچند این شبکه آنچنان که انتظار میرفت توسعه پیدا نکرده است، اما با این وجود به استفاده بیشتر از شبکه بیت کوین کمک کرده است. توسعهدهندگان این ایده، فعالان حوزه رمز ارزها را به صبر توصیه میکنند و دلیل آن را پیچیدگی بالای شبکه لایتنینگ و محدودیتهای جدی در زمان اجرای آن عنوان میکنند. به هر حال، لایتنینگ یکی از ایدههای افزایش سرعت تراکنش و کاهش زمان مورد نیاز برای ارسال تراکنش در شبکههای بلاکچین است و راهکارهای لایه دو که در این روزها مورد استفاده قرار میگیرند، در مقایسه با لایتنینگ موفقتر عمل کردهاند.
مزایای لایتنینگ
در ادامه به مهمترین مزایا و نکات مثبت شبکه لایتنینگ اشاره خواهیم کرد:
سرعت تراکنش
در صورت استفاده از شبکه لایتنینگ، نیازی نیست تا هر تراکنش در شبکه تایید شود و ما منتظر تایید آن در شبکه اصلی باشیم. در حالت عادی، در صورتی که تراکم شبکه افزایش یابد و در لحظه، تراکنشهای زیادی به شبکه ارسال شود، زمان تایید آن تراکنش افزایش میابد. اما در شبکه لایتنینگ، بلافاصله تایید میشود. این اتفاق، باعث میشود تا رمز ارزها در کنار ویزا، پی پال و مسترکارت به عنوان روشی برای پرداخت مالی مورد استفاده عموم مردم قرار گیرد.
کارمزد تراکنش
تراکنشهایی که روی شبکه لایتنینگ ارسال میشود، خارج از شبکه بیت کوین بوده و در نتیجه نیازی به پرداخت کارمزد تراکنشها در شبکه بیت کوین نیست. یکی از مهمترین مزایای شبکه لایتنینگ هزینه بسیار پایین انجام تراکنش است (در حد 1 ساتوشی ). این ویژگی بستری را فراهم میکند که میتوانیم از بیت کوین برای انجام خریدهای روزمره خود نیز استفاده کنیم.
مقیاسپذیری
در مورد این مزیت شبکه لایتنینگ بسیار صحبت کردیم. در واقع میتوان گفت مهمترین مزیت شبکه لایتنینگ، افزایش مقیاسپذیری شبکههای بلاک چین است. این شبکه، تعداد تراکنش در هر ثانیه یا (TPS ) را افزایش میدهد و باعث میشود که شبکه بیت کوین، تعداد تراکنشهای بیشتری را در هر ثانیه پردازش کند.
حریم خصوصی
تمام تراکنشهای انجام شده در شبکه بیت کوین کاملا شفاف و قابل ردیابی است. هرچند هویت افراد در این شبکه مشخص نیست، اما تمام تراکنشهای صورت گرفته توسط تمامی آدرسهای شبکه از ابتدا ثبت شده و قابل ردیابی است. هرچند این مورد، شفافیت کل اکوسیستم را بالا میبرد اما در مواردی ممکن است به حریم خصوصی افراد صدمه بزند. شبکه لایتنینگ در این زمینه کاملا حافظ حریم شخصی افراد است. به جز دو تراکنش آغاز و پایان، تمامی تراکنشهای دیگر خارج از شبکه بیت کوین صورت خواهد گرفت و هیچ پیشینهای از این تراکنشها ثبت نخواهد شد. از این نظر تمامی ریزتراکنشهای صورت گرفته درون شبکه لایتنینگ غیرقابل ردیابی است.
معایب لایتنینگ
در حوزه تکنولوژی تمامی ایدهها با هدف رفع مشکلات فعلی معرفی میشوند. اما خود نیز دارای مشکلات و معایبی هستند. شبکه لایتنینگ نیز با وجود مزایای بسیار، دارای مشکلاتی نیز هست که در ادامه به مهمترین آنها اشاره خواهیم کرد.
1-نقدینگی
یکی از مشکلات اساسی در زمان استفاده از شبکه لایتنینگ، بحث نقدینگی است. برای استفاده از این شبکه، کاربر باید مقداری بیت کوین را در کانال پرداخت مالی قفل کرده و ذخیره کند. تا زمانی که این کانال مالی برقرار است، این مقدار بیت کوین قابل استفاده و برداشت نیست. از طرفی شما برای ایجاد یک کانال مالی مقداری بیت کوین را قفل کردهاید که در این کانال نمیتوانید بیشتر از این مقدار مشخص را خرج کنید. زمانی که شما تمام مبلغ قفل شده در یک کانال را خرج کنید، مجبورید تا این کانال مالی را ببندید. البته میتوانید آنقدر منتظر بمانید تا فردی به شما مقداری بیت کوین را انتقال دهد (درون کانال ) تا شما بتوانید آن را خرج کنید. این مورد یکی از محدودیتهای اساسی شبکه لایتنینگ است. برای درک این محدودیت به مثال زیر توجه کنید:
فرض کنید علی و رضا یک کانال پرداخت لایتنینگ با ظرفیت 5 بیت کوین را راهاندازی کردهاند. رضا و بابک نیز کانالی با ظرفیت 1 بیت کوین دارند. علی بالاترین مقداری که میتواند به بابک ارسال کند،1 بیت کوین بوده و بالاتر از این مقدار را نمیتواند به بابک ارسال کند.
2-آنلاین بودن همزمان طرفین
در شبکه بیت کوین زمانی که علی بخواهد به رضا مقداری بیت کوین ارسال کند، نیازی به آنلاین بودن رضا نیست. اما در شبکه لایتنینگ، طرفین کانال پرداخت مالی باید در زمان ارسال تراکنش هر دو حضور داشته و باهم در اتباط باشند. به عبارتی، امکان پرداخت آفلاین وجود ندارد؛ شما نمیتوانید به فردی که آنلاین نیست پول پرداخت کنید. اساسا پرداخت بیت کوین در شبکه لایتنینگ مقداری محرمانه است و این امر تنها زمانی امکان پذیر است که هر دو طرف آنلاین باشند.
3-تراکنشهای بزرگ
شبکه لایتنینگ برای مقادیر زیاد مناسب نیست و اگر قصد دارید پول زیادی جابجا کنید بهتر است از این شبکه استفاده نکنید، چرا که بر خلاف شبکه بیت کوین که کارمزد تراکنشها بر اساس سایز تراکنش محاسبه خواهد شد، در اینجا بخشی از کارمزد همیشه مقدار ثابت ۱ درصد از ارزش تراکنش در نظر گرفته شده است.
امنیت لایتنینگ
در این بخش به بررسی امنیت شبکه لایتنینگ میپردازیم. آیا این شبکه، امنیت شبکه بیت کوین را دارد؟ به طور آیا شبکه لایتنینگ امن است؟ چه کسی و با چه مکانیزمی امنیت این شبکه فراهم میشود؟
تراکنشهایی که در شبکه لایتنینگ صورت میگیرد، یک تراکنش امضا شده است که با استفاده از قابلیت قرارداد هوشمند شبکه بیت کوین، هنوز روی شبکه اصلی منتشر نشده و توسط ماینرها پردازش نشده است. تفاوت تراکنشهای انجام شده در شبکه لایتنینگ با تراکنشهایی که روی شبکه بیت کوین ارسال میشود، در قرارداد هوشمند استفاده شده در آن تراکنش است. تراکنشی که قرارداد هوشمندی به آن مرتبط شده، توسط طرفین کانال پرداخت، مدام به روزرسانی میشود (براساس تراکنشهای صورت گرفته میان این دو نفر ) در نتیجه آخرین به روزرسانی کانال با توافق هر دو طرف بر روی شبکه ارسال خواهد شد.
ایدهای که لایتنینگ از آن استفاده میکند، کانال State است. در این ساختار، هر تراکنشی که میان افراد حاضر در یک کانال پرداخت صورت میگیرد را یک حالت(State) میگوییم. همواره آخرین تراکنشی که میان دو طرف انجام شده به عنوان حالت نهایی این کانال درنظر گرفته شده و آن تراکنش روی شبکه بیت کوین به عنوان تراکنش نهایی ثبت میشود. اگر هر یک از طرفین، هر حالتی به جز آخرین حالت را به عنوان حالت آخر روی شبکه بیت کوین ارسال کند و طرف مقابل، نشان دهد که پس از این حالت، تراکنش دیگری میان این دو انجام شده و فرد مقابل به دنبال کلاهبرداری از اوست، تمام دارایی فردی که قصد کلاهبرداری دارد از او گرفته خواهد شد. این اتفاق، انگیزه افراد را برای کلاه برداری از بین میبرد . برای درک این بخش به مثال زیر توجه کنید.
آلیس و باب کانالی به ارزش 5 بیت کوین باز میکنند که دارایی آلیس 3 بیت کوین و دارایی باب 2 بیت کوین است.
حالت اول: میان این دو معاملهای صورت گرفته و دارایی این دو تغییر میکند. در این حالت، آلیس 4 بیت کوین و باب 1 بیت کوین دارد.
حالت دو: معاملات این دو ادامه مییابد و باب 1 بیت کوین خود را به آلیس منتقل میکند. در این حالت، آلیس 5 بیت کوین داشته و باب 0 بیت کوین دارد.
حالت سه: مجددا بین این دو معاملهای صورت میگیرد و آلیس 1 بیت کوین به باب منتقل میکند. در نتیجه، دارایی آلیس 4 بیت کوین و دارایی باب 1 بیت کوین خواهد بود.
اکنون اگر آلیس حالت دو را به عنوان حالت نهایی روی شبکه بیت کوین منتشر کند ، به ماینرهای این شبکه این پیام را منتقل میکند: با توجه به معاملات صورت گرفته بین من و باب، دارایی من 5 بیت کوین و دارایی باب 0 بیت کوین است.
اکنون باب میتواند نشان دهد که حالت دو، حالت نهایی نبوده و آخرین حالت این کانال، حالت سه است. در این صورت، تمام 5 بیت کوین موجود در این کانال به باب خواهد رسید. توجه کنید که در ابتدا دارایی آلیس 3 بیت کوین بود و دارایی باب 2 بیت کوین، اما به دلیل رفتار بد آلیس، تمام دارایی او نیز به دارایی باب اضافه خواهد شد. به این ترتیب، افراد حاضر در یک کانال پرداخت، انگیزهای برای کلاهبرداری ندارند.
راهنمای استفاده از شبکه لایتنینگ
اگر بخواهید از شبکه لایتنینگ برای انجام تراکنشهای خود استفاده کنید به صورت کلی دو راه پیش روی شما خواهد بود:
- راهاندازی فول نود شبکه لایتنینگ
- استفاده از کیف پولهای بیت کوین( که از شبکه لایتنینگ پشتیبانی میکنند ).
در ادامه هر یک از این روشها را معرفی خواهیم کرد:
کیف پولهای بیت کوین
اگر قادر به راهاندازی فول نود در شبکه نیستید، میتوانید از کیف پولهای بیت کوین که از شبکه لایتنینگ پشتیبانی میکند، استفاده کنید. این کیف پولها بستری را ایجاد میکنند که میتوانید به شبکه لایتنینگ متصل شوید. هر یک از این کیف پولها کانالهای پرداختی را در اختیار کاربران خود قرار میدهند که با استفاده از آن میتوانیم تراکنشهای خود را خارج از شبکه بیت کوین انجام دهیم.
کیف پولهایی از شبکه لایتنینگ استفاده میکنند
Bitcoin Lightning Wallet که به اختصار BLW گفته میشود یکی از کیف پولهایی است که از شبکه لایتنینگ بیت کوین پشتیبانی میکند. پس از دانلود این کیف پول، فرآیند ساخت والت همانند سایر کیف پولها بوده که با استفاده از عبارت 12 کلمهای بازیابی، کیف پول جدید شما ساخته میشود.
پس از ساخت کیف پول، میتوانید کانال پرداخت مالی خود را ساخته و فرد دیگری را به این کانال اضافه کنید. از این پس تمام تراکنشهای شما میتواند از طریق این کانال و به صورت خارج از شبکه بیت کوین صورت بگیرد. به ادبیات فنی، این کانال پرداخت از طریق ساختن یک کیف پول چند امضایی ساخته میشود که امضای هر فردی که به این کانال اضافه میشود، برای ارسال پیام به شبکه بیت کوین الزامی است. از این طریق میتوانید تراکنشهای بیت کوین خود را روی شبکه لایتنینگ انجام دهید. در این بخش، چند کیف پول دیگر نیز حضور دارند که در ادامه لیست آنها را مشاهده میکنید:
1- راهاندازی نود شبکه لایتنینگ
در این روش شما به جای استفاده از کیف پولها، به صورت مستقیم اقدام به راهاندازی یک نود کامل در شبکه لایتنینگ بیت کوین خواهید کرد و مدیریت آن را به دست خواهید گرفت. در این روش برای مثال، پس از راهاندازی نود در سیستم خود، بیت کوین کور را دانلود کرده تا بتوانید با شبکه در تعامل باشید. البته این راه برای کاربران عادی مناسب نیست و پیچیدگیهای خاص خودش را دارد.
وضعیت کنونی لایتنینگ
در حال حاضر شبکه لایتنینگ با همه مشکلات و نواقصی که دارد، فعال بوده و در حال سرویسدهی به کاربرانش است. اگر چه آن قدر که تصور میشد این شبکه نتوانسته است کاربرانش را راضی کند اما رشد قابل ملاحظهای کرده است. طبق آمار سایت 1ml، در زمان نگارش این مطلب (۲۵ مرداد ۱۴۰۰ ) شبکه لایتنینگ در حال حاضر پذیرای بیش از ۲۰۰۰ بیت کوین به ارزش تقریبی ۱۰۰ میلیون دلار است.در این شبکه تقریبا ۲۴۸۱۰ نود فعال حضور دارند. تعداد کل کانالهای پرداخت مالی این شبکه از ابتدا تا به امروز به بیش از ۶۵۰۰۰ کانال مالی رسیده و تعداد کانالهای فعال این شبکه بیش از ۵۸۷۱۳کانال مالی است. در مجموع ۲۲۸۵ بیت کوین در این شبکه ذخیره (TVL ) شده است.
در نتیجه این شبکه همچنان به فعالیت خود ادامه میدهد اما به جایگاه مورد انتظار توسعهدهندگانش نرسیده است. در زمان نگارش این مطلب (۲۵ مرداد ۱۴۰۰ ) ارزش دلاری ذخیره شده در شبکه لایتنینگ برابر ۱۰۸ میلیون دلار است. این در حالی است که در شبکه Flexa که یک بستر پرداخت مالی است، بیش از 1.2 میلیارد دلار دارایی قفل شده وجود دارد. هر چند نمیتوانیم شبکه اتریوم و بیت کوین را باهم مقایسه کرد اما این اختلاف زیاد، قابل توجه است.
پرسش و پاسخ
شبکه لایتنینگ راهکاری است که با ایجاد کانالهای پرداخت، تراکنشها را بدون نیاز به اعتماد، خارج از شبکه اصلی انجام میدهد. پس از بستن کانال پرداخت، نتیجه نهایی موجودیها به شکل یک تراکنش بر روی شبکه اصلی بیت کوین ثبت میشود.
سرعت بیشتر و هزینه تراکنش کمتر. همچنین با استفاده از سرویسهای ثالثی که از شبکه لایتنینگ پشتیبانی میکنند، میتوان تحریم سرویسهای پرداخت بینالمللی را دور زد و محصول و کالا خریداری کرد.
تعداد سرویسها و کیف پولهایی که به شکلی کاربرپسند و آسان آن را ارائه دهند، هنوز اندک است گرچه این امر در حال تغییر است.
سخن پایانی
در این مقاله سعی کردیم از ابعاد مختلف به این پرسش بپردازیم. هدف اصلی شبکه Lightning حل مسئله مقیاسپذیری شبکه بیت کوین و البته سایر شبکههای بلاک چین است. این شبکه با ایجاد کانالهای پرداخت مالی میان دو نفر (یا بیشتر ) بستری را فراهم میکنند تا افراد تراکنشهای بیت کوین خود را خارج از شبکه اصلی بیت کوین و در لایهای دیگر انجام دهند. این کار باعث افزایش سرعت انجام تراکنش و البته کاهش قابل توجه کارمزد تراکنش خواهد شد.