Саташи Накамото изпрати предложение за "нова електронна парична система, която е напълно равностойна, без надеждна трета страна", до пощенски списък с криптография в петък, 31 октомври 2008 г. Първият отговор - първият път, когато някой публично коментира биткойн - дойде следващата неделя: "Ние много, много се нуждаем от такава система", пише Джеймс А. Доналд, "но начинът, по който разбирам предложението ви, изглежда, че не се увеличава до необходимия размер."
След 10 години тази критика все още звучи вярно. Дори и най-пламенните евангелисти на биткойн признават, че не си струва да правите малки ежедневни покупки. Но Lightning Network, един от най-обещаващите проекти за мащабиране на биткойни, които се изпълняват в момента, може да промени това.
Мълниеносната мрежа
Изказвайки се на срещата на върха в Blockstack през юли 2017 г., изпълнителният директор на Lightning Labs Елизабет Старк цитира тази първа критика на електронните парични средства на Накамото, но изрази увереност, че биткойнът всъщност може да се мащабира. "По принцип сме през 1995 г., когато става въпрос за блокчейн и децентрализирани технологии", каза тя, като се позова на времето преди интернет да придобие HTTP и другите транспортни и приложения слоеве на TCP / IP.
Сред най-говоримите за "слой 2" приложения за биткойн блокчейна е мълниеносна мрежа. Първо предложен от Джоузеф Пун и Тадже, известен още като Тадеус Дриджа през 2015 г. (най-новата версия на техния документ е наличен тук), мълниите са разработени във функционираща спецификация, наречена lightning-rfc или „BOLTS“ от три компании, всяка от които има собствената им реализация: Lightning Labs има lnd, Blockstream има c-lightning, а ACINQ има еклер. Съществуват и внедрения, различни от BOTLS, като гръмотевици.
Мълниеносната мрежа вече работи и работи, но е в най-краен начален стадий. Истинските биткойни са изпратени и почти винаги са получени с помощта на внедряването на Lightning Labs, Blockstream и ACINQ и трите са оперативно съвместими. Видеото по-долу показва ACINQ инженер, който изпраща 0, 000001 биткойни (около $ 0, 01) почти мигновено от възел на еклер до lnd възел чрез c-lightning възел:
За да видим колко подобрение представлява това, опитахме подобна транзакция на биткойн блокчейн с помощта на GreenAddress, приложение за мобилен портфейл. Приложението предлага да плащат на миньорите 0, 00001907 BTC ($ 0, 19): такса 1 907%. Въпреки че не е ясно колко блока е трябвало да потвърди тази такса (ние се свързахме с GreenAddress, за да разберем), отговорът е вероятно шест блока, или около час.
Въпреки това никога няма да разберем колко време би отнела тази конкретна транзакция: съобщение за грешка ни информира, че „изходите под 546 сатоши се считат за неикономичен прах от биткойн. Моля, увеличете стойността“.
Lightning Labs също е тествал атомни суипове с верижна верига, използвайки мрежата; това са трансфери на стойност между различни блокчейн, в случая биткойн и litecoin, които потенциално означават първа стъпка към изграждане на децентрализирани борси.
Светкавицата дава възможност за микроплащания, които биткойн не може сам, но съществуващите имплементи все още са неприятни. Старк призовава потребителите да се запознаят с мълниите, използвайки биткойн "тестнет" (тоест, да използват фалшиви пари), а не "mainnet на живия огън". Обаче транзакции на стойност 50 000 долара са били извършени в мрежата към момента на писането, а някои хора са загубили пари за грешка в c-lightning. (Кристиян Декър, основен инженер в Blockstream, ми каза по имейл, че в крайна сметка средствата са възстановени в повечето случаи.)
И така, как работи мълнията?
Как работят мълниите
Решението на Lightning се основава на двупосочни канали за плащане извън веригата. Кажете, че Алис и Боб често си взаимодействат помежду си в малки количества. Плащанията по веригата в този случай не са практични поради таксите и дългите времена на потвърждение, така че те решават да отворят канал, който им позволява да изпращат биткойни напред и назад, незабавно и без такси.
Отваряне на канал
За да отворите канал, Алиса, Боб или и двамата допринасят определено количество биткойн за специален адрес чрез така наречената транзакция за финансиране (зеленото поле в диаграмата по-долу). Кажете, че Алиса допринася 1 BTC. Тя изпраща средствата на така наречения мултисигрен адрес 2-of-2, който изисква както Алис, така и Боб криптографски да „подпишат“ всяка транзакция за изпращане с личните си ключове. Нормалната транзакция изисква само подписването на (единичния) частен ключ, съответстващ на публичния ключ на изпращащия адрес.
Важното е, че транзакцията за финансиране все още не е подписана или излъчена в мрежата.
На следващо място, Алис и Боб създават "транзакция с ангажименти", използвайки транзакцията за финансиране като свой "родител": те използват непотвърдения си изход от 1 BTC като вход за транзакция с "дете", която изпраща 0, 5 BTC към Alice (изход 0) и 0, 5 BTC към Боб (изход 1). Ако протестирате, че протоколът на bitcoin не позволява на потребителите да подписват разход, без да знаят подписите на входа, тази способност беше предоставена чрез мека вилица.
След това Алис подписва изхода, като изпраща 0, 5 BTC на Боб; Боб подписва изхода, като изпраща 0, 5 BTC на Alice. След това и двамата подписват и излъчват транзакцията за финансиране, която се ангажира с биткойн блокчейна (и подлежи на мрежови такси и време за изчакване).
Те вече имат отворен канал за плащане, чрез който могат да прехвърлят биткойн напред и назад незабавно и без такси. Или Алис, или Боб могат да го затворят по всяко време и да поискат своите 0, 5 BTC всяка, или каквото е актуализираното салдо.
Отваряне на канал… На английски
Освен ако вече не знаете малко за вътрешностите на мълниеносната мрежа, вероятно е трудно да се усвои "знакът тук, първоначално тук, прекарайте това, излъчете това - не, не това ".
Ето по-концептуално описание. Сделката за финансиране е това, което звучи като: осигурява средствата за канала. Той действа и като ограничение за канала: никоя от страните не може да свърши повече от първоначалната сума за финансиране и балансите на двете страни трябва да добавят към тази сума. Причината транзакцията за финансиране да бъде създадена първа, но излъчена последна, е, че ако тя беше просто публикувана в блокчейна в една стъпка, нищо нямаше да бъде осъществено освен една-единствена, обикновена ванилова транзакция. Светкавиците не правят тези по-бързи или по-евтини.
Като оставят транзакцията за финансиране отворена, вмъкват транзакция за ангажиране - която, както е описано по-долу, функционират като вид интелигентен договор - и след това затварят транзакцията за финансиране, мълниеносни отвори отварят вид дупка в мрежата. Тя ви позволява да движите биткойн напред и назад по един, определен път. Използвате биткойн протокола, но заобикаляте забавянията и разходите, наложени от миньорите.
Поддържане на мълния без доверие
Кажете, че сега Боб иска да плати на Alice 0, 1 BTC, като използва техния отворен канал. Двете страни просто актуализират транзакцията за ангажименти - няма нужда да апелират към миньорите. Балансът, по-рано 0, 5 BTC всеки, сега е 0, 6 BTC за Alice, 0, 4 BTC за Bob.
Единственият проблем е как да направите това сигурно? Тъй като вече са разменили подписи за първоначалната транзакция, Боб може да подпише тази - а не най-скорошната - и да се отдалечи с 0, 5 BTC вместо 0, 4 BTC, който всъщност дължи. С други думи, той може да открадне около 1000 долара от Алиса въз основа на цените към момента на писането. Отговорът може да е да отворите канали само с хора, на които имате доверие. Но тогава какъв е смисълът да използвате биткойн?
Намирането на криптографско решение на тази дилема се свежда до една цел: невъзможността за подписване на стара транзакция и затварянето на канала по начин, който отразява предишно състояние. Докато това е опция, светкавицата има проблем с двойно изразходване.
Не забравяйте, че Боб подписва половината от транзакцията за поемане на ангажимент (Ангажимент Tx 1a по-долу), която само Алис може да излъчи, защото нейният е липсващият подпис. Алиса подписва другата (ангажимент Tx 1b), която само Боб може да излъчва. Или някой може да направи това и да затвори канала, но използвайки (ограничени) възможности за писане на биткойн за интелигентни договори, резултатите от двете половини на транзакцията за ангажиране могат да бъдат подложени на различни ограничения. По-конкретно, единият изход може да позволи на получателя да изразходва средствата незабавно, докато другият може да бъде обект на анулиране от която и да е от страните - чрез Договор за подписващ падеж последователност (RSMC) - за определен период от време, като 1000 блока или около седмица.
Ето защо това е полезно. Ако Боб се окаже отвратителен и безпринципен, той може само да подпише и излъчи ангажимент Tx 1b (по-горе), който изплаща Алиса незабавно (Доставка 1б) и държи средствата си в оттегляща се крайница за една седмица (Отмяна на доставка 1б). Алис, виждайки, че Боб се е опитал да я смени, може да предизвика оттегляне и да твърди, че не само ББ се опита да открадне 0, 1 BTC, но и 0, 4 BTC, на който иначе би имал право.
С други думи, целият канал отива при Алиса, ако хване Боб да изневерява. Това е възможно, защото когато страните създадат нова транзакция за ангажименти (C2a и C2b по-долу), обещавайки в действителност да не излъчват стара транзакция с ангажименти (C1a или C1b), те влагат парите си там, където са устата им. Заедно с новата транзакция с ангажименти, те създават транзакция за отстраняване на нарушение с два изхода (BR1a и BR1b), приложими към предишния ангажимент. Алис дава на Боб нейния личен ключ за половината му от транзакцията за отстраняване на нарушения и обратно. Сега, ако някой от тях се опита да излъчи старата транзакция, контрагентът може да се възползва от периода на изчакване от 1000 блока и да се насочи напред към тази транзакция, като вземе целия баланс на нарушителната страна.
Проблемът е, че Алиса трябва да обръща наполовина постоянно внимание на каналите си, за да не може Боб да я хване нащрек за 1000 блока. Poon и Dryja предлагат да се посочи някаква трета страна, чиято задача е да задейства транзакции за отстраняване на нарушения - онези, които възнаграждават всички средства на канала на неправилната страна - когато контрагент се опита да изневери. За тях може да се плаща такса извън наказанието.
Olaoluwa Osuntokun, съосновател на Lightning Labs и CTO, разработва "наблюдателни кули", които да служат като тези изпълнители на трети страни. Въпреки че са изразени опасения, че тези възли могат да действат като доверени страни и да въведат несигурност в мрежата, Osuntokun казва на CoinDesk, че за даден канал ще е необходима само една честна наблюдателна кула.
Освен това, както Крисчън Декър, основен технологичен инженер в Blockstream, посочва в имейл, измамата е рискована. Важно е да предположим, че партията, която се опитвате да ограбите, няма да се регистрира поне веднъж седмично и рискът от загуба на всички пари във вашия канал може да е достатъчен възпиращ ефект.
Свързване на каналите
В реалния свят Алиса не иска да сключва сделки изключително с Боб, нито Боб изключително с Алис. И двамата имат произволен брой контрагенти, които трябва да платят и да им бъдат платени. Отварянето на канали с всяка една от тези страни би било непрактично. Дори потребителският интерфейс да бъде опростен до съвършенство, малко потребители биха имали необходимата ликвидност, за да свържат биткойн в дузина или повече отворени канали.
За щастие не им се налага. Както показва видеото по-горе, потребителите могат да маршрутизират плащанията през каналите на междинните потребители, така че плащането на всеки с отворен канал или два трябва да е възможно чрез принципа на разделяне на шест градуса. За разлика от транзакциите в рамките на един канал, тези многоканални транзакции вероятно ще включват малки такси за стимулиране на възлите за финансиране на канали и поддържането им отворени. Маршрутизиране на лук, техниката, използвана за прикриване на потребителите на браузъра на TOR, не позволява на междинните възли да видят пълния път, извършен от транзакция, като смекчава опасенията за поверителност.
Доколко добре работи тази мрежа от канали на практика, остава да видим и е възможно, ако плащанията трябва да поемат твърде объркан маршрут - с твърде много „скачания“ през междинни канали - таксите, начислени от тези потребители, могат да се добавят.
Може ли мълнията да остане децентрализирана?
Тези притеснения са свързани с един, който за критиците представлява непреодолим недостатък в мълниеносната мрежа. В днешните реализации канал се предлага с ограничение: количеството биткойни в първоначалната транзакция за финансиране ограничава общата сума пари в канала.
Тази ситуация налага компромис за потребителите с разумно ограничени ресурси. Те могат или да финансират канали с големи количества биткойни, за да гарантират, че разполагат с средствата за извършване на всяко плащане, което им е необходимо, или могат да финансират по-малки канали и да разполагат с биткойн за други цели. (Тъй като плащанията могат да бъдат направени чрез свързани канали, вероятно даден потребител не трябва да отваря повече от шепа канали и може би само двойка.)
Изборът се свежда до ликвидност в мълниеносните канали или ликвидност извън тях по веригата. Изборът за финансиране на ликвидни канали за разплащане може да бъде рискован, ако наблюдателни кули или някакво друго решение не предотврати загубата на средства чрез невнимание. От друга страна, ако каналите за разплащане са защитени и светкавиците се превърнат в основния метод за ежедневно използване на биткойни, няма да има проблем с оставянето на средства в каналите. Те биха служили като "зареждаща се дебитна карта или пари в брой", както казва Декер, докато основната верига действа като спестовна сметка.
Старк прави подобен аргумент: финансирането на светкавичен канал ви пречи да използвате този биткойн за всичко друго, освен „мрежа от потенциално много възли, които в мултихоп ще приемат биткойн незабавно“, пише тя по имейл. "Предвиждаме средствата по Lightning каналите да бъдат по-полезни от биткойн във веригата за транзакции поради моменталната скорост и ниските такси", добави тя.
Хъбове?
Но с кого бихте настроили тези канали? Изборът на Боб за вашата Алиса е икономическо решение, а не криптографско и за критиците на светкавичната мрежа очевидният отговор би бил един вид „хъб“, възел с много капитал, който му дава възможност да поддържа добре финансирани отворени канали с няколко партии наведнъж.
Идеята, че това, което представлява внезапна биткойн банкова индустрия, може да развие смущава ентусиастите на биткойн, които виждат това като централизиране на мрежата.
Старк оспорва този аргумент. "Хиляди потребители изпълняват пълни възли за биткойни", пише тя, "и ние вярваме, че тези и други също ще изпълняват възли на Lightning (по-лесно е, защото не се нуждаете от пълен възел с биткойн заедно с него и за разлика от биткойн пълните възли вие може да направи малки такси от маршрутизиране). " Тя също така посочва, че нейният екип работи по "сплайсинг", което би позволило на каналите да се допълват, използвайки биткойни от основната верига. Тази способност може да облекчи компромиса между пускането на биткойн в канал или оставянето му на основната верига, което от своя страна би могло да намали тенденцията за образуване на хъбове.
Decker вижда, че е вероятно да се образува "двустепенна мрежа с голям брой възли, които са надеждни и да действат като основата на мрежата." Той очаква обаче това да са търговци, а не центрове, които съществуват единствено за осигуряване на течни канали. Предоставянето на тези канали на множество потребители, според него, би било скъпо, което би изисквало центровете да начисляват високи такси и да ги правят неконкурентоспособни в сравнение с други възли.
Изпълнителният директор на ACINQ Пиер-Мари Падиоу не знае как може да се развие мълниеносната мрежа. "Много е трудно да се предвиди какво ще бъде равновесието между централизация и децентрализация", пише той по електронната поща. "Разбира се, че ще има по-големи възли и по-малки възли, но до каква степен е трудно да се каже предварително."
Правилният път към мащаба?
Poon и Dryja твърдят, че "използвайки мрежа от тези канали за микроплащане, Bitcoin може да мащабира до милиарди транзакции на ден с изчислителната мощност, налична на съвременния настолен компютър днес". Може би, но това със сигурност не е така днес. По време на писането са отворени по-малко от 1000 мрежови мрежови възли.
Нито светкавицата е единственото предложение за мащабиране там. Основен конкурент са биткойн кеш, спорна твърда вилка от биткойн, която позволява по-големи блокове. Дебатът между привържениците на биткойн пари, привърженици на мълнии и защитници на различни трети начини - дори и от време на време анти-мащабиране - е оживен, макар и жалък. Може да се окаже, че един или друг ще излезе отгоре, че ще продължат да съществуват съвместно или всички ще се провалят.
Във всеки случай светкавичната мрежа е обещаващ опит за преодоляване на дилемата за мащабируемост, която преследва биткойн от първия уикенд на биткойн през 2008 г.