پس از سالها مفهومسازی و توسعه، چندی پیش سرانجام اولین کاربردهای لایتنینگ در نسخهی بتا به اجرا در آمد. درنتیجهی این آغاز به کار، گرههای بیشتری روزانه بهصورت آنلاین بهوجود میآیند و کاربران بیشتری با سایر افراد کانالهایی ایجاد خواهند کرد. شاید بعضی بازرگانان حتی پرداخت لایتنینگ را هم قبول کنند.
البته پیش از هر چیزی باید در نظر داشت که ما در اول راه شبکهی لایتنینگ هستیم. با اینکه بهکارگیری و استفادهی اصلی از لایتنینگ میتواند مفید باشد و برخی از کیفپولها و برنامههای دیگر را در دسترس قرار دهد؛ ولی شبکهی پرداخت بیتکوین هنوز به چند سال دیگر برای پیشرفت در معماری شبکه، امنیت و قابلیت استفاده نیاز دارد و شاید حتی زمان بیشتری هم برای دستیابی به این اهداف نیاز باشد. در ادامه به چندین پروژهی مهم در لایتنینگ که در حال حاضر در دست توسعه است میپردازیم.
کانالهای سرمایه دوگانه (Dual-funded channels)
شبکهی لایتنینگ از مجموعههایی از کانالهای پرداخت تشکیل شده است. هر کانال پرداخت بین دو کاربر، اجازه رد و بدل کردن سرمایه را به آنها میدهد.
البته کانالهای پرداخت در مراحل اولیهی توسعه خود تنها میتوانند توسط یکی از کاربران یا گروهها، سرمایه دریافت کنند. فرد سرمایهگذار ابتدا باید معاملهای با شخص مقابل ترتیب دهد؛ فرد مقابل سپس و تنها بعد از این کار میتواند پرداخت را در همین کانال پرداخت به شخص پرداختکنندهی اول برگرداند.
البته اوراق سفید شبکه لایتنینگ، کانالهای سرمایهی دوگانه را تنها به کانالهای ویژه مطرحشده توسط ACINQ (شرکت مقیاسپذیری لایتنینگ) پیشنهاد میدهد. کانالهای دوگانه به کاربران اجازه میدهند که تا حدی سرمایه کانال پرداخت را با بیتکوین پرداخت کنند. چنین کاری انعظافپذیری کار کانال پرداخت را برای کاربر بیشتر میکند و کاربر میتواند بهمحض باز کردن کانال، پرداختهایی را بهطور فوری دریافت کرده یا بپردازد.
مبادلات زیردریایی (Submarine Swaps)
کاربران برای پرداخت لایتنینگ باید سرمایههای خود را در کانال لایتنینگ قرار دهند. سرمایههای داخل کانال بعد از وارد شدن به آن دیگر نمیتوانند به آدرسهای بیتکوین فرستاده شوند (مگر اینکه کانال اول بسته شود). بنابراین بیتکوین موجود در کانال لایتنینگ از بیتکوین موجود در کیف پول جداست؛ تقریبا مانند جدا بودن پول در حساب جاری از پول در حساب پسانداز.
البته راه حلهایی برای ارتباط برقرار کردن بین پرداختهای لایتنیگ و پرداختهای روی زنجیره وجود دارد.
یکی از راه حلها، استفاده از مبادلات زیردریایی است که توسط الکس بسورث توسعه یافت (البته مفهوم ابتدایی آن قبلا توسط اولالووا اسونتوکن، افشر ارشد فناوری لایتنینگ لبز مطرح شده بود). مبادلات زیردریایی، اجازه فرستادن پرداختهای لایتنینگ را به شخص ثالث و یک میانجی در شبکه لایتنینگ میدهند. فرد واسطه هم مقدار بیتکوین مورد نظر را به یک آدرس روی زنجیره بیتکوین میفرستد. همچنین کاربران هم میتوانند پرداختهای روی زنجیره را به شخص واسطه بفرستند تا او مقدار پرداختی آنها را به یک گره لایتنینگ در شبکه بفرستد.
مهمتر از همه اینکه تبادل از طریق مبادلات زیردریایی بهصورت اتمی انجام میشود. پرداخت لایتنینگ و روی زنجیره میتوانند با استفاده از یک روند فنی خاص در شبکهی لایتنینگ به یکدیگر مرتبط شوند، بهطوری که شخص واسطه نتواند با نفرستادن پرداخت، سرمایهی مورد مبادله را به سرقت ببرد. طبق یک توافق، کاربران باید هزینهی کمی برای چنین سرویسی بپردازند.
اسپلایسینگ (Splicing)
یکی از راهحلهای دیگر اسپلایسینگ نام دارد که به کاربر اجازهی وارد و خارج کردن سرمایه به کانالهای موجود را میدهد و کاربر همچنین میتواند کانال را باز نگه دارد.
ایده بسیار ساده است. هر کانال لایتنینگی با یک معامله کار خودش را آغاز میکند. در مبادله هر دو کاربر از انتقال سرمایهی خودشان راضی هستند. بقیهی کانال لایتنینگ از مجموعههایی از معاملات بین کاربران تشکیل شده است که معمولا هم در شبکهی بیتکوین منتشر نمیشوند. سرمایههای معامله ابتدایی تا زمان بسته شدن کانال، از جای خود تکان نمیخورند. وقتی کاربران میخواهند به معاملهی ابتدایی خود پرداختهایی را اضافه کنند، باید سرمایه را به معاملهی ابتدایی جایگزینی همراه با بیتکوین بفرستند. زمانیکه معاملهی جدید توسط بلاکچین تأیید شود، میزان سرمایه کانال افزایش مییابد. کاربران میتوانند تا قبل از تأیید معاملهی جدید، بهراحتی هر دو کانال قدیمی و جدید را بهطور همزمان آپدیت کنند تا بتوانند از مختل شدن یا از کار افتادن کانال جلوگیری کنند.
عکس حالت فوق هم صادق است؛ کاربران میتوانند از معاملهی ابتدایی برای فرستادن سرمایه به آدرس روی زنجیره (آنچین) استفاده کنند و بخشی از آن را با استفاده از همین روش در کانال نگه دارند. کاربران با چنین شیوهای، معاملات روی زنجیره را مستقیما با کانال لایتنینگ میسازند.
التو (Eltoo)
هر باری که پرداخت جدیدی صورت میگیرد، کانالهای لایتنینگ بین کاربران آپدیت میشوند تا موجودیهای متقابل آنها را نشان دهند. روش قبلی کاربرانی را که با منتشر کردن موجودی قدیمی قصد فریب دادن یا کلاهبرداری داشتند، جریمه میکند (برای اینکه احتمالا موجودی قدیمی پول بیشتری به آنها میدهد) و کاربران متقلب تمامی سرمایهی خود در کانال را از دست میدهند.
اما مشکلی در این میان وجود دارد. منتشر کردن موجودی قدیمی همیشه بههدف کلاهبرداری و تقلب صورت نمیگیرد. در بعضی از موارد، افراد تصادفا چنین کاری را انجام میدهند؛ مثلا باگ در نرمافزار یا اشتباه در بکآپ موجب چنین موردی میشود. از دست رفتن تمامی سرمایهی کانال برای چنین افرادی، جریمه ناعادلانه و سنگینی است.
التو که ابتدا در ۳۰ آوریل ۲۰۱۸ عرضه شد، جدیدترین پیشنهاد مقاله است. التو که توسط تیم سیلایتنینگ بلاکاستریم (دکتر کریستین دکر و راستی راسل) و اسونتوکن از لایتنینگ لبز توسعه یافت، کانالها را با ساخت یک زنجیرهی معاملات قفل زمانی (باید طی محدودهی زمانی خاصی انجام شود) آپدیت میکند. هر معامله سرمایههایی را از مدل قبلی خرج میکند تا آخرین موجودی کانال را نشان دهد.
اگر کاربری معاملهی قلبی را منتشر کند (ارائهی موجودی کانال قدیمی)، شخص مقابل او فرصت و زمانی برای انتشار آخرین معامله خواهد داشت (ارائهی موجودی جدیدترین کانال).
چنین راه حلی همهروزه بهکار میآید، اما برای موارد شکست عملی نیست و به تمامی زنجیرهی معاملات ثبتشده در بلاکچین بیتکوین نیاز دارد که با این کار تقریبا هدف شبکهی لایتنینگ را از بین میبرد. بههمین منظور دکر تغییری در پروتکل بیتکوین بهوجود آورد تا سلسهمراتبی خاص در انواع معاملات بهوجود بیاورد: هر معاملهی جدیدتری میتواند بدون نیاز به تمامی معاملات زنجیره، نقش اصلی را بازی کند.
اگر تغییر اتخاذ شود و در شبکهی بیتکوین فعال شود، کاربران لایتنینگ میتوانند کانالها را به هر دو شیوهی فعلی و التو بسازند که انتخاب آنها بستگی به ترجیح خود آنها خواهد داشت.
فیلتر سمت کاربر فشرده (Compact client-side block filtering)
با اینکه شبکهی لایتنینگ یک پروتکل لایه دومی است، خود بلاکچین بیتکوین برای امنیت کاربران کفایت میکند. کاربران لایتنینگ باید به بلاکچین چشم بدوزند تا از معاملات خاص آگاه باشند. چنین کاری میتواند به منابع زیادی مخصوصا برای کاربران موبایل نیاز داشته باشد.
راه حل مشکل، تأیید پرداخت ساده یا SPV نام دارد. SPV در اوراق سفید بیتکوین توضیح داده شده است. کیف پولهای SPV فعلی از روشی بهنام فیلتر بلوم یا Bloom filters برای بررسی معاملات رخداده استفاده میکنند.
متأسفانه فیلتر بلوم زیاد برای مسائل حریم خصوصی مناسب نیست؛ چون کیف پولها تمامی آدرسها را در اختیار گرههای شبکه بیتکوین قرار میدهند. آنها همچنین دارای مشکلاتی در مقیاسپذیری و قابلیت استفاده هستند، چراکه هر کیف پول SPV منابعی را حداقل از یک گره بیتکوین کامل برمیدارد.
اسونتوکن و الکس اکسلراد برای حل مشکل با جیم پوزن (سازنده کوینبیس) وارد همکاری شدند و راه حلی جدیدی بهنام فیلتر سمت کاربر فشرده طراحی کردند. آنها طرح خود را در کیف پول نوترینو پیاده کردند.
فیلتر سمت کاربر فشرده، از شیوهی برعکس کیف پولهای SPV استفاده میکند. بهجای اینکه کیف پولها درخواست معاملات مربوط به آنها را با خلق و فرستادن یک فیلتر بلوم به گرههای کامل مطرح کنند، خود گرههای کامل یک فیلتر برای تمامی کیف پولهای نوترینو میسازد. کیف پول نوترینو سپس از این فیلتر برای رخ ندادن معاملهی مربوطه استفاده میکند. این موردی است که همهی کاربران باید در مورد آن بدانند تا مطمئن شوند که از آنها کلاهبرداری نشود. اگر فیلتر تطابقی ایجاد کند، نوترینو، بلوک مربوطه را برای بررسی همان معامله چک میکند.
با اینکه چنین روشی با در نظر گرفتن لایتنینگ طراحی شده بود، ولی میتواند بهنفع کیف پولهای عادی هم کار کند و به آنها هم استفاده برساند.
برجهای مراقبت (Watchtowers)
کاربران لایتنینگ برای دوری از کلاهبرداری و تقلب باید معاملات روی زنجیرهای را که به آنها مرتبط است، بررسی کنند.
با اینکه فیلتر سمت کاربر فشرده باید کارها را آسانتر کند، ولی خود کاربران هم باید گاهی اوقات معاملات را بررسی کنند تا مطمئن شوند که تقلبی در کار نیست. اگر آنها این بررسی را فراموش کنند، احتمال ریسک امنیتی برای آنها وجود دارد.
برجهای مراقبت راه حلی بالقوه برای مشکل هستند و میتوانند کاربران را به شبکهی لایتنینگ هدایت کنند. ایدهی برجهای مراقبت توسط اوراق سفید شبکهی لایتنینگ و یکی از نویسندگان آن بهنام تج دراییا مطرح شد. برجهای مراقبت همانطور که از اسمشان پیداست، نظارت بر بلاکچین را به اشخاص ثالث واگذار میکنند.
طرحهای برج مراقبتی کنونی هنوز کاملا پیادهسازی نشدهاند، ولی شیوهی کارکرد آنها تقریبا همینگونه است. هر موقع که کاربر کانالی را آپدیت کند، بستهی داده کوچکی را به برج مراقبت میفرستد. اولین بخش بسته یک اشارهی کوچک به معامله دارد. برج مراقبت اشارهی کوچک را بررسی میکند تا ببیند که آیا واقعا این بخش جزئی از کل هست یا خیر. بخش کوچک هیچ اطلاعاتی را درمورد محتویات معامله افشا نمیکند. بنابراین حریم خصوصی کاربران حفظ میشود.
البته اگر معامله در بلاکچین بیتکوین نمایان شود، برج مراقبت میتواند از بستهی کوچک برای شناسایی آن استفاده کند. در ادامه برج مراقبت با دادهی معامله در خود بلاکچین میتواند از بخش دوم بستهی دریافتی، برای بازسازی معامله جریمه استفاده کند. معاملهی جریمه، تمامی سرمایهای را که در کانال از کاربر مورد تقلب، گرفته شده به او پس میدهد. از نگاه التو، تنها موجودی کانال صحیح منتشر میشود. معاملهی جریمه همچنین میتواند طوری طراحی شود که برج مراقبت بخشی از سرمایهی مورد تقلب واقعشده را بهعنوان جایزه بردارد تا انگیزهای برای ادامه کار داشته باشد.
کاربران میتوانند وظیفهی نظارت بر کانال را به چندین برج مراقبت واگذار کنند، تا اگر یکی از آنها از شناسایی تقلب باز ماند، دیگری تقلب را شناسایی کند و خطر از دست رفتن سرمایه کاربران لایتنینگ بهحداقل برسد.
پرداختهای چند راهی اتمی
موردی که لایتنینگ را به شبکه تبدیل میکند، بههمپیوستگی کانالهای پرداخت بین کاربران است. کاربران میتوانند از طریق کانالها و جفتهایی در شبکه، بهعنوان شخص واسطه پرداختهایی به کاربرانی داشته باشند که اصلا هیچ کانال باز مستقیمی با آنها ندارند.
البته در حال حاضر یک پرداخت واحد باید از طریق تنها یک مسیر انجام شود. اگر کاربری بخواهد ۵ هزارم بیتکوین را به دیگری بپردازد، نهتنها باید همهی ۵ هزارم بیتکوین را در یک کانال واحد داشته باشد، بلکه همهی افراد واسطه در مسیر هم باید دارای ۵ هزارم بیتکوین آماده در کانال برای فرستادن باشند. هر چه پرداختی بزرگتر شود مسلما وضعیت هم مشکلتر میشود.
پرداختهای چند راهی اتمی (AMP) راه حلی برای مشکل هستند. ایدهی AMP که ابتدا توسط اسونتوکن و کانر فرامکنخت مطرح شد، بسیار ساده است: پرداختهای بزرگ میتوانند به قسمتهای کوچکتری تبدیل شوند و همچنین مسیر خودشان را از پرداختکننده به گیرنده و از طریق افراد واسطه مختلف طی کنند. چالش راه حل این است که شاید پرداختهای لایتنینگ با شکست روبرو شوند؛ یعنی یک پرداخت تا اندازهای خاص انجام شود. پرداختهای جزئی میتوانند مشکل را حتی از روند بدون پرداخت هم فراتر ببرند: بازرگان با پرداخت جزئی راضی نمیشود و همینطور مشتری هم برای پول خرج کردن برای هیچ خوشحال نمیشود.
راه حل مشکل، استفاده AMP از موردی بهنام قراردادهای زمانی هش (hash) است که هماکنون هم در مسیرهای لایتنینگ و انتقال دادههای محرمانه در یک شبکه کار میکند. استفاده از تکنیکی که در کیف پولهای قطعی هم مورد استفاده قرار میگرفت (تولید چندین آدرس بیتکوین از یک دانه) مزایای خاص خود را دارد. قسمتهای کوچک یک پرداخت بزرگ اگر همگی در زمانی مشخصشده به دریافتکننده برسند، پرداخت بهصورت کامل انجام میشود، ولی اگر در این بازهی زمانی مشخص دریافتکننده تمامی پرداختهای کوچک را دریافت نکند، پول به پرداختکننده باز میگردد.
مبادلات اتمی
شبکه لایتنینگ بهعنوان یک لایهی مقیاسپذیر برای بیتکوین طراحی شده است. اما از آنجایی که بسیاری از آلتکوینها نرمافزارهای جانبی پایگاه کد بیتکوین هستند، ساختن چنین لایههای مقیاسپذیری برای آلتکوینها هم زیاد سخت نیست. درحال حاضر، شبکهی لایتنینگ لایتکوین هم وجود دارد که بسیار کوچک است و احتمالا سایر آلتکوینها هم به دنبال چنین کاری خواهند رفت.
جالب اینکه شبکهها نباید در آینده لزوما از هم جدا باشند.
کانالهای پرداخت با استفاده از یک بلوک سازندهی اصلی شبکه لایتنینگ بهنام مبادلات اتمی میتوانند به بلاکچینهای مختلف وصل شوند. بهعبارت دیگر، کاربر میتواند بیتکوین بفرستد و اگر گره شبکه خواستار مبادله باشد، کاربر دیگری هم میتواند پرداخت را بهصورت لایتکوین دریافت کند.
البته کاربران میتوانند چنین پرداختهایی را به خودشان هم داشته باشند: آنها میتوانند بیتکوین بفرستند و لایتکوین دریافت کنند. شبکه لایتنینگ در عمل میتواند یک شبکه مبادله ارز رمزی بدون اعتماد را بسازد.
کارخانههای کانال (Channel Factories)
مزیت اصلی شبکهی لایتنینگ، پتانسیل آن برای بالا بردن حد بالایی معاملات بیتکوین بدون فشار به شبکهی بیتکوین است. اگر دو کاربر هر دو در کانالهای خود سرمایه داشته باشند، میتوانند بهصورت مجازی و برای دفعات نامحدود بههمدیگر پرداختهایی داشته باشند، درحالیکه تنها به دو معامله روی زنجیره نیاز داشته باشند: یکی برای باز کردن کانال پرداخت و دیگری برای بستن آن.
با این حال بازهم بهازای هر کانال پرداخت، دو معاملهی دیگر نیز میتوانند اضافه شوند، تنها بهشرطی که تطابق بیتکوین و شبکهی لایتنینگ با گذر زمان افزایش یابد.
پیشنهادی بهنام کارخانههای کانال از طرف پژوهشگران موسسهی تکنولوژی فدرال زوریخ (کریستین دکر، راجر واتنهوفر، و کانرد بورچرت) برای کاهش میانگین تعداد معاملات روی زنجیره مورد نیاز برای کانالهای پرداخت مطرح شد. کارخانههای کانال که قبلا هم در سال ۲۰۱۵ توسط دکر و واتنهوفر مطرح شده بودند، نوعی از کانال پرداخت هستند که میان بسیاری از کاربران وجود دارند. هر کارخانه کانال، مانند همهی کانالهای پرداخت، تنها به دو معامله روی زنجیره نیاز دارد. (اگر امضای دیجیتال Schnorr در بیتکوین پیاده شود، معاملات کاملا متراکم میشوند حتی اگر کاربران زیادی داشته باشند.)
کارخانههای کانال درعوض میتوانند برای شبکه لایتنینگ مانند کانالهای زیرزمینی عمل کنند. افراد داخل کارخانههای کانال میتوانند تعداد بینهایتی از کانالهای مجازی بین خود و دیگران را باز و بسته کنند، بدون اینکه به معامله روی زنجیرهای اضافهای نیاز داشته باشند. آنها با این کار از نظر تئوری تعداد معامله روی زنجیره مورد نیاز برای شبکه لایتنینگ را بهمقدار زیادی کاهش میدهند.