Въведение
Криптовалутите имат някои доста уникални свойства. Те не могат да бъдат хакнати или изключени лесно и всеки може да ги използва за предаване на стойност по целия свят без намесата на трета страна.
За да се гарантира запазването на тези характеристики, трябва да се направят значителни компромиси. Тъй като много възли са отговорни за работата на мрежа с криптовалута, пропускателната способност е ограничена. В резултат на това броят на трансакциите в секунда (TPS), които блокчейн мрежата може да обработи, е сравнително нисък за технология, която има за цел да бъде възприета от масите.
За да се преодолеят присъщите ограничения на блокчейн технологията, бяха предложени редица решения за мащабируемост, за да се увеличи броят на трансакциите, които една мрежа може да обработва. В тази статия ще се потопим дълбоко в Lightning Network, едно такова разширение на протокола Bitcoin.
Какво представлява Lightning Network?
Това, което всъщност правите с първата си трансакция, е да изграждате нещо като интелигентен договор с друг потребител. Ще влезем в подробностите скоро – засега просто помислете за интелигентния договор, който съдържа частна книга с другия потребител. Можете да записвате много трансакции в тази книга. Те са видими само за вас и вашия контрагент, но никой от вас не може да мами поради някои особени характеристики на настройката.
По всяко време всеки може да публикува текущото състояние на канала в блокчейна. В този момент балансите от всяка страна на канала се разпределят на съответните им страни във веригата.
Защо е необходима Lightning Network?
Когато преместите това експериментиране далеч от блокчейна, имате много по-голяма гъвкавост. Ако нещо се обърка, това няма да окаже влияние върху действителната мрежа на Bitcoin. Решенията от втори слой не подкопават нито едно от предположенията за сигурност, които поддържат протокола в продължение на над 10 години.
Няма и задължение да преминавате от стария начин на правене на нещата. Трансакциите във веригата продължават да работят нормално за крайния потребител, но вече имат възможност да извършват трансакции и извън веригата.
Използването на Lightning Network има няколко предимства. По-долу ще разгледаме някои от основните.
Мащабируемост
Биткойн блоковете се създават приблизително на всеки десет минути и могат да държат само толкова много трансакции. Блоковото пространство е оскъден ресурс, така че трябва да наддавате срещу други потребители, за да включите вашето своевременно. Копачите се грижат преди всичко за получаването на плащане, така че първо ще включват трансакции с по-високи такси.
Когато няма много потребители, които се опитват да изпратят средства едновременно, това всъщност не е проблем. Можете да зададете ниска такса и вероятно ще включите трансакцията в следващия блок. Но когато всички излъчват трансакции по едно и също време, средната такса може да се увеличи значително. На няколко пъти е надхвърлила 5 долара. В разгара на бичия пазар през 2017 г. тя надхвърли 50 долара.

Средна такса за биткойн трансакция (в USD)
Това може да изглежда незначително за трансакции, преместващи биткойни на стойност хиляди долари, но за по-малки плащания не е устойчиво. Кой би искал да плати такса за трансакция от 5 долара за кафе на стойност 3 долара?
С Lightning Network все още плащате две такси – една за отваряне на канала си и друга за затваряне. Но вие и вашият контрагент можете да правите хиляди трансакции безплатно, след като каналът е отворен. След като приключите, просто трябва да публикувате крайното състояние в блокчейна.
В голямата схема, ако повече потребители разчитат на извънверижни решения като Lightning Network, блоковото пространство ще се използва по-ефективно. Високочестотните преводи с ниска стойност могат да се извършват в платежните канали, докато блоковото пространство се използва за по-големи трансакции и отваряне/закриване на канали. Това ще направи системата достъпна за значително по-широка потребителска база, което ще ѝ позволи да се мащабира в дългосрочен план.
Микроплащания
Lightning е много по-привлекателна за микроплащания. Таксите за редовни трансакции правят непрактично изпращането на малки суми по основната верига. В рамките на канал обаче вие сте свободни да изпращате част от част от биткойн безплатно.
Микроплащанията са подходящи за много случаи на употреба. Някои спекулират, че те биха могли да бъдат жизнеспособен заместител на базираните на абонамент модели, където потребителите вместо това плащат малки суми всеки път, когато използват услуга.
Поверителност
Ако Алис има канал с Боб, а Боб има канал с Карол, Алис и Карол могат да изпращат плащания един на друг чрез Боб. Ако Дан е свързан с Карол, Алис може да му изпраща плащания. Можете да си представите, че това се разширява в обширна мрежа от взаимосвързани платежни канали. При такава настройка не можете да сте сигурни на кого Алис е изпратила средства, след като каналът бъде затворен.
Как работи Lightning Network?
Обяснихме как Lightning Network разчита на канали между възли на високо ниво. Нека сега да надникнем под капака.
Адреси с множество подписи
За да инициализират Lightning канал, участниците заключват средства по схема 2 от 2. Има само два частни ключа, които могат да подписват, и двата са необходими за преместване на монети. Нека се върнем към нашите приятели Алис и Боб в този момент. Те ще правят много плащания един на друг през следващите месеци, така че решават да отворят канал на Lightning Network.
Това започва с това, че и двамата депозират, да речем, 3 BTC всеки в съвместно притежавания адрес с множество подписи. Струва си да повторим, че Боб не може да премести средства от адреса, без Алис да се съгласи, или обратното.
Сега те биха могли просто да запазят лист хартия, който коригира баланса от всяка страна. И двете имат начален баланс от 3 BTC. Ако Алис иска да направи плащане от 1 BTC на Боб, защо просто не отбележат, че Алис вече притежава 2 BTC, а Боб притежава 4 BTC? Балансите могат да се проследяват по този начин, докато не решат да преместят средствата.
Това е възможно, но къде е забавлението в това? По-важното е, че това не прави ли невероятно лесно за някой да не сътрудничи? Ако Алис се окаже с 6 BTC, а Боб без нито един, Боб не губи нищо, като отказва да освободи средствата (освен, може би, приятелството си с Алис).
Договор за блокиране на хеширане (HTLCs)
Системата по-горе е скучна и не предлага много в сравнение с днешните надеждни настройки. Става много по-интересно, когато въведем механизъм, който налага „договора“ между Алис и Боб. Ако една от страните реши да не играе по правилата, другата все още има начин да извлече средствата си от канала.
HTLC се създават чрез комбиниране на хешлокове и таймлокове. На практика HTLC могат да се използват за създаване на условни плащания – получателят трябва да предостави тайна преди определено време или подателят може да си върне средствата. Тази следваща част вероятно по-добре се обяснява с пример, така че нека се върнем към Алис и Боб.
Отваряне и затваряне на канали
Дадохме пример с Алис и Боб, които току-що са създали трансакции, които финансират адреса с множество подписи, който ще споделят. Но тези трансакции все още не са публикувани в блокчейна! Първо трябва да направим още нещо.

Три монети от Боб и три монети от Алис.
Тя можеше да опита да излъчи трансакцията веднага, но тя би била невалидна, защото Боб не е включил подписа си. Алис трябва първо да му даде незавършената трансакция. След като добави подписа си, тя става валидна.
Все още не сме въвели механизъм, който да накара всички да играят честно. Както казахме по-рано, ако вашият контрагент откаже да сътрудничи, вашите средства ефективно са в капан. Нека да влезем в механизма, който предотвратява това. Има няколко различни движещи се части, така че потърпете малко.
Всяка страна трябва да измисли тайна – нека просто ги наречем A и B. Те биха били ужасни тайни, ако Алис и Боб ги разкрият, така че засега ще ги пазят скрити. Двойката ще генерира хешовете на съответните тайни – h(As) и h(Bs). Така че вместо да споделят своите тайни, те споделят тези хешове помежду си.

Алис и Боб споделят хешовете на своите тайни един с друг.
Ако мислите за канал като мини книгата, която споменахме по-рано, тогава трансакциите с ангажименти са актуализациите, които правите в книгата. Всеки път, когато създадете нова двойка трансакции с ангажимент, вие балансирате средствата между двамата участници.

Трансакцията на Алис с два изхода – един към собствения ѝ адрес и един към нов с множество подписи. Тя все още се нуждае от подписа на Боб, за да бъде валиден.
Боб прави същото – единият изход плаща на себе си, другият плаща на друг адрес с множество подписи. Той го подписва и го дава на Алис.

Имаме две незавършени трансакции, които са много сходни.
Новите адреси с множество подписи (където са предназначени 3 BTC изхода) имат някои особени свойства. Нека да разгледаме непълната трансакция, която Алис подписа и даде на Боб. Изходът с множество подписи може да се изразходва при следните условия:
- И двете страни могат да го подпишат съвместно.
- Боб може да я похарчи сам след определен период от време (поради нашия таймлок).
- Алис може да я похарчи, ако знае тайните B на Боб.
За трансакцията, която Боб даде на Алис:
- И двете страни могат да го подпишат съвместно.
- Алис може да я похарчи сама след определен период от време.
- Боб може да я похарчи, ако знае тайните А на Алис.
Имайте предвид, че нито една от страните не знае тайната на другата, така че 3) все още не е възможно. Друго нещо, което трябва да се отбележи, е, че ако подпишете трансакция, вашият контрагент може да похарчи незабавно, тъй като няма специални условия за техния изход. Можете или да изчакате да изтече времето, за да изразходвате средствата сами, или можете да си сътрудничите с другата страна, за да ги изразходвате направо.
Добре! Сега можете да публикувате трансакциите в оригиналния 2 от 2 адрес с множество подписи. Най-накрая е безопасно да го направите, защото можете да извлечете средствата си, ако вашият контрагент изостави канала.
След като трансакциите се потвърдят, каналът е готов и работи. Тази първа двойка трансакции ни показва текущото състояние на мини книгата. В момента ще изплати 3 BTC на Боб и 3 BTC на Алис.
Когато Алис иска да направи ново плащане към Боб, двойката създава две нови трансакции, за да заменят първия набор. Упражнението е същото – те са само наполовина подписани. Алис и Боб обаче първо се отказват от старите си тайни и обменят нови хешове за следващия кръг от трансакции.

Ако Алис искаше да плати 1 BTC на Боб, например, двете нови трансакции ще кредитират 2 BTC на Алис и 4 BTC на Боб. По този начин балансът се актуализира.
Всяка страна може да подпише и излъчи една от най-новите трансакции по всяко време, за да я „уреди“ в блокчейна. Но която и страна да направи това, ще трябва да изчака, докато времето за заключване изтече, докато другата може да изхарчи веднага. Не забравяйте, че ако Боб подпише и излъчи трансакцията на Алис, тя вече има изход без никакви условия в него.
Искате да започнете с криптовалута? Купете биткойн в Binance!
Как Lightning Network предотвратява измами?
Алис получава монетата си веднага. Боб, от друга страна, трябва да изчака, докато изтече времето, за да изразходва от адреса с множество подписи. Спомняте ли си другото условие, което споменахме, което би позволило на Алис да похарчи същите средства незабавно? Тя се нуждае от тайна, която не е имала тогава. Сега тя я има – веднага щом вторият кръг от трансакции беше създаден, Боб издаде тази тайна.
Докато Боб седи, неспособен да направи нищо, докато чака да изтече времето, Алис може да премести тези средства. Този основан на наказание механизъм означава, че е малко вероятно участниците дори да се опитат да измамят, защото партньорът ще получи достъп до техните монети.
Насочване на плащания
Споменахме това по-рано – каналите могат да бъдат свързани. В противен случай Lightning Network не би била толкова полезна за плащания. Наистина ли ще заключите 500 долара в канал с кафене, само за да можете да получите ежедневната си доза през следващите няколко месеца?
Не е нужно да правите това. Ако Алис отвори канал с Боб и Боб вече има такъв с Карол, Боб може да насочва плащанията между двамата. Това може да работи при множество „хопове“, което означава, че Алис може ефективно да плати на всеки, към когото съществува път.

В този сценарий Алис може да премине през множество маршрути, за да стигне до Франк. На практика тя винаги ще поема по най-лесния.
За ролята си в насочването посредниците може да вземат малка такса (въпреки че няма задължение за това). Lightning Network все още е много нова, така че пазарът на такси тепърва ще се материализира. Това, което мнозина очакват да видят, са такси, базирани на предоставената ликвидност.
В базовата верига вашата такса се основава единствено на пространството, което вашата трансакция заема в блок – стойността, която се предава, няма значение – плащанията от 1 и 10 000 000 долара струват еднакво. За разлика от тях, няма такова нещо като блоково пространство в Lightning Network.

Балансът на потребителите преди и след превод на 0,3 BTC от Алис към Франк.
Ако Алис иска да изпрати 0,3 BTC на Франк, тя избутва 0,3 BTC към страната на Карол на канала. Тогава Карол избутва 0,3 BTC от локалния си баланс в канала с Франк. В резултат на това балансът на Карол остава същият: +0,3 BTC от Алис и -0,3 BTC за Франк се анулират взаимно.
Карол не губи стойност от това да играе ролята на връзка между Франк, но става по-малко гъвкава. Виждате ли, тя вече може да похарчи 0,6 BTC в канала си с Алис, но само 0,1 BTC в канала с Франк.
Можете да си представите ситуация, в която Алис е свързана само с Карол, докато Франк е свързан с много по-широка мрежа. Карол преди можеше да изпрати общо 0,4 BTC на други чрез Франк, но сега тя може да изпрати само 0,1 BTC, защото това е всичко, което има в нейния край на канала.
Както бе споменато по-рано, няма де факто изискване за начисляване на такса. Някои може да не са загрижени за намаляването на ликвидността. Други може просто да отварят канали директно към получателя.
Ограничения на Lightning Network
Би било фантастично, ако Lightning Network се окаже решението на всички проблеми с мащабируемостта на Bitcoin. За съжаление, тя има своите недостатъци, които могат да попречат.
Използваемост
Засега това не е възможно с Lightning Network. Опциите са ограничени, когато става въпрос за приложения за смартфони – като цяло възлите на Lightning изискват достъп до биткойн възел, за да бъдат напълно използваеми.
След като клиентът е настроен, потребителите също трябва да започнат да отварят канали, преди да могат да извършват плащания. Това може да е отнемащ време процес и може да бъде непосилно, когато новодошлите се запознаят с понятия като входящ/изходящ капацитет.
Въпреки това непрекъснато се правят подобрения, за да се намалят бариерите за влизане и да се предостави на потребителите по-рационализирано изживяване.
Ликвидност
Една от най-големите критики към Lightning Network е, че способността ви да извършвате трансакции е ограничена. Не можете да харчите повече, отколкото сте заключили в канал. Ако изразходвате всичките си средства, така че отдалеченият баланс да разполага с всички средства на канала, ще трябва да затворите канала. Като алтернатива можете да изчакате, докато някой ви плати чрез него, но това не е идеално.
Централизирани хъбове
Поради проблема, споменат в предишния раздел, има известна загриженост, че мрежата ще улесни създаването на масивни „хъбове“. Тоест големи, силно свързани лица с много ликвидност. Всички значителни плащания ще трябва да бъдат насочени през някои от тези субекти.
Очевидно това няма да е страхотна ситуация. Това би отслабило системата, тъй като тези субекти, които излизат офлайн, биха нарушили до голяма степен взаимоотношенията между партньорите. Съществува и повишен риск от цензура, тъй като има само няколко точки, през които преминават трансакциите.
Текущото състояние на Lightning Network
Към април 2020 г. Lightning Network изглежда здрава. Тя може да се похвали с над 12 000 онлайн възела, над 30 000 активни канала и малко над 920 BTC в капацитет.

Глобално разпространение на възлите на Lightning Network. Източник: explorer.acinq.co
Заключителни мисли
След стартирането на основната мрежа през 2018 г., Lightning Network отбеляза впечатляващ растеж, въпреки че мнозина смятат, че все още е в бета версия.
Все още има някои пречки за използване, които трябва да се преодолеят, тъй като в момента се изисква известна степен на технически умения за работа с Lightning възел. Но с развитието, което се случва, можем да видим, че бариерите за навлизане намаляват с времето.
Ако проблемите могат да бъдат разрешени, Lightning Network може да се превърне в неразделна част от екосистемата на биткойн, като значително ще увеличи мащабируемостта и скоростта на трансакциите.