Дисекция на Lightning Network

Светкавичната мрежа (на английски lightning network) е втори слой изграден върху блокчейна на биткойн и решение за неговата мащабируемост. Предназначена е да отговори на присъщите му ограничения: осредненото нужно време за създаване на нов блок е 10 минути и пространството за транзакции е ограничено, което означава скромните 7 транзакции за секунда. Също така при голямо търсене и много желаещи за транзактиране, блокчейн таксите (ончейн) се увеличават. По време на втората (след първия халвинг през 2012 година) и началото на третата (след 2016 година) 4-годишна епоха от копаенето на биткойн се раждат засилени спорове как да се решат гореизброените проблеми: дали да се строят слоеве, надграждащи блокчейна и там да се осъществи мащабируемостта, нужна за всекидневни разплащания с валутата или да се направи т.нар. хард форк и да се увеличи блоковото пространство за сметка на изискванията за поддържане на пълно копие на блокчейна, или иначе казано пречка на децентрализацията на протокола. Истината е, че и двете неща са се случили: налице са Lightning Network и Liquid Network като втори слой върху блокчейна, а относно хард форковете – създаден е bitcoin cash, но и още няколко други, а общото за всички тях е, че почти никой не ги използва.

Линк към бялата книга

А ето накратко и основните черти на Lightning Network протокола:

Разплащателни канали: в основата си той се състои от канали между потребителите, които имат нужния инсталиран софтуер. По този начин това е peer-to-peer мрежа, съставена от нодове/възли

Двупосочни транзакции: разплащателните канали позволяват двупосочни транзакции. Това означава, че двамата потребители създали peer-to-peer канал могат да изпращат средства един на друг без да се изисква всяка транзакция да бъде записана върху основния блокчейн.

Транзакции извън блокчейна: почти всички Lightning Network транзакции не се записват върху блокчейна, което означава, че са далеч по-бързи и евтини. Не е нужно да се чакат минути за следващия блок, който всъщност е лимитиран откъм брой транзакции. Плаща се такса на нодовете, които са създали ликвидност върху мрежата, но тя е по-малка от ончейн таксата. Единствените ончейн транзакции са отварянето и затварянето на разплащателните peer-to-peer канали.

Мрежа от канали: Lightning Network е мрежа от взаимосвързани канали. Потребителите могат да насочват плащания през множество канали, което им позволява да извършват транзакции с потребители, с които не са пряко свързани и нямат канал помежду си. Това създава силно мащабируема и ефективна мрежа за прехвърляне на средства.

Микротранзакции: мрежата е много подходяща за микротранзакции поради ниските си такси и незабавния сетълмент. Те позволяват за пращане на малки бакшиши към създатели на съдържание, отключване на част от платено съдържание, потребление на поточно съдържание и плащане само за времето на ползване и други.

Сигурност: Lightning network е изградена върху блокчейна на биткойн и средствата са защитени от неговата сигурност. Потребителите винаги могат да затворят канала при възникване на спорове или проблеми и да получат заключената от тях сума.

Lightning Network е просто прокол, но за да може да бъде ползван е нужна инфраструктура. Три са софтуерните опции, които може да ползват потребителите, искащи да имат лайтнинг нод. Lightning Labs представят lnd през Q1 2018. Кодът е писан на Go. Blockstream дават възможността за пускане на лайтнинг нод чрез c-lightning, пускането му също е през началото на 2018 година и е разработен на C. Eclair (на френски означава Lightning) е разработен от ACINQ върху програмния език Scala, също в началото на 2018 година.

Добре, но от практическа гледна точка как тази мрежа подобрява мащабируемостта? Най-добрият пример е следният: представете си, че сте в бар и вместо да плащане на момента на поръчване на всяко следващо питие, то се споразумявате с бармана в началото на вечерта да му предоставите 100 единици валута, да следите и актуализирате текущото общо задължение без да правите транзакции (барманът ще намаля дадените 100 единици с натрупаното потребление) и едва накрая да направите парична транзакция. Възможно е да сте потребили повече от 100 единици и тогава ще трябва да заплатите допълнително, но е и възможно да получите обратно част от направеното първоначално плащане. Мащабируемостта, която се постига е голяма, защото по този начин с общо 2 транзакции може да закупите питиета за себе си и за други хора и плащането става мигновено и с минимални такси (ако приемем че алтернативата е да заплащате с банкова карта и за всяка транзакция да има между 1 и 3% такса).

А как точно може да се ползва втория слой на биткойн? Това може да се каже че е третото ниво на ползване на криптовалутата, първото бидейки създаване на акаунт в борса и купуване и продаване на биткойн там, а второто – самостоятелно управляване на биткойн ончейн (на основния блокчейн) чрез собствен портфейл.

Първо е нужно да се създаде Lightning network канал. Това разбира се става като се изхарчат (жаргонно се използва „заключат“) сатошита (напомняне: 1 биткойн = 100 милиона сатошита). Транзакцията за финансиране отварянето на канал се нарича „funding transaction“ или „open channel transaction“. Желаещият да отвори връзка или канал изпраща средства на multisignature адрес. По този начин освен, че те се „заключват“ на блокчейна и се трансферират на втория слой, то за да бъдат отключени е нужна кооперация между двете страни. Разбира се взети са мерки на ниво протокол ако такава липсва, но идеята на това да са нужни 2 подписа от общо 2 възможни е никоя страна да не може да измами отсрещната.

Горният пример илюстрира пълен трансфер на средства от първия адрес, но разбира се е възможен и случая, в който наличността да е 3 единици и само 2 от тях да се ползват за създаване на канал, а остатъкът (рестото) да остане по сметка на изпращача. Също е възможно и двете страни да финансират отварянето на канал, ето тук нагледно в mempool.space.

Това е на хартия как се отваря канал и заключват средства. Но не всички са достатъчно технически грамотни да го направят, а целта на разработчиците на биткойн лайтнинг портфейлите е максимално лесна употреба на техния продукт. Затова някои от тях (muun е най-известен в това отношение) ползват submarine swap като бекенд технология за лайтнинг транзакции.

Submarine swap-ът в своята същина е hash time-locked contract (HTLC). За да разберем повече за този суоп трябва първо да разберем какви са тези договори. Да приемем, че Иван има сатошита и изпраща част от тях на Петър. За да може Петър да похарчи средствата трябва да докаже, че има съответния частен ключ за този адрес. Но можем също така да добавим допълнителни условия: например Петър да трябва да разкрие определена тайна в рамките на даден период от време, наречен таймаут. Когато времето изтече средствата могат да бъдат изразходвани от друг частен ключ, например този на Иван. А откъде идва тази тайна? Тя е просто информация, създадена от Петър, Иван или някой друг. Ако Петър сам е създал тайната, той, разбира се, ще я знае. Ако обаче някой друг я е създал то той трябва да разбере каква е. Това е HTLC накратко: договор, който изисква получателят да докаже, че знае определена тайна, в рамките на определен период от време, за да похарчи парите. Оказва се, че добавянето на това условие позволява една много интересна и полезна функция: възможността за верижни плащания.

HTLC върху Lightning Network. Ако искаме да платим сатошита на Митко, но нямаме платежен канал помежду си, можем да използваме Тома като посредник, защото и двамата с Митко вече имаме отворен канал с него. Какво обаче може да се обърка? Без HTLC и в зависимост от това кой плаща първи две неща могат да се объркат: ако първо платим на Тома, считайки, че той ще плати на Митко, той може да ни измами и да избяга с парите. Ако Тома първо плати на Митко и счита, че ние ще му платим след това, той рискува да плати нашите разходи и никога да не получи от нас средства. Използвайки HTLC Митко може да създаде тайна, която само той знае и да ни каже че можем безопасно да изпратим сатошита на Тома, добавяйки клауза, че за да може да ги похарчи той трябва да разкрие тайната в рамките на определен период от време. Ако не успее те стават наша собственост. Митко ще ни даде QR код за Lightning плащането без да разкрива самата тайна поради едно интересно свойство: ние вече знаем, че Тома ще разкрие тайната, която Митко е създал дори без да я знае предварително. Сега Тома може да изпрати на Митко полученото от нас добавяйки същата клауза: за да може Митко ги похарчи след това той трябва да разкрие тайната в рамките на определен период от време.

Да се върнем на хипотезата, че искаме да платим използвайки Lightning Network, но не искаме да създаваме и управляваме канали. Защото ако само ще пращаме без да получаваме ще е нужно допълнително добавяне на средства напред във времето. Първото решение на този проблем бе точно този суоп – submarine swap. Ето нагледен пример какво представлява: търговец генерира Lightning Network QR задължение, което дава инструкции каква тайна трябва да поискаме от доставчик на суоп (Lightning Service Provider) да разкрие, за да получи сатошитата от нас. Той обаче не може да ги похарчи, защото все още не знае тайната. Вместо това той ще ги трансферира на търговеца, добавяйки клаузата, той от своя страна трябва да разкрие тайната. Търговецът знае тайната, но за да получи парите, трябва да я разкрие. Това, което LSP доставя като услуга е ликвидност: получава средствата ончейн и плаща на търговеца през Lightning. Submarine суоповете са изключително зависими от ончейн таксите и при ръст там услугата се оскъпява или би отнела повече време, тъй като транзакцията с ниска такса би останала в мемпула (чакалнята) поради други по-доходоносни опции за миньорите.

Моето лично мнение е, че muun като портфейл е хубава опция за навлизане в сферата. Не е custodial (трета страна да държи средствата вместо теб), но очевидно си има своите недостатъци и това решение да тръгнат в тази посока е взето при първите им сблъсъци с протокола през 2018-2019 година. Все още submarine суповете са полезен инструмент за предоставяне и управление на ликвидност, просто muun го използват за абсолютно всяка lightning транзакция на своите потребители, а не само за първоначално отваряне на канал и периодично добавяне на ликвидност. По този начин при високи ончейн такси това се превръща в ончейн портфейл и се губи целия смисъл от лайтнинг частта му. Вече навлизат по-модерни опции като breez, zeus, blixt, phoenix които действат като Lightning Service Provider, но по по-различен начин: изискват такса за първоначално отваряне на канал и ние наистина имаме лайтнинг портфейл след това.

Bitcoin bills and legislation

In this article I will try to outline the most important bills and legislation affecting bitcoin.

The most developed nation worldwide is the United States so we will start there:

Bills in the United States

In order for a bill to become legislation it has to be passed in both the state house and the state senate, then approved by the state governor. The house is not subordinate to the senate so the bill can first be voted in either of the two, but has to be approved by both chambers before transmitting to the state governor. If vetoed by the governor it gets returned for another vote

SB 2603 Mississippi – gives the right to mine bitcoin, Dennis Porter from Satoshi Action Fund was heavily involved in drafting the bill. As of May 3rd 2023 – passsed in the senate, rejected in the house

SB 178 Montana – gives the right to mine bitcoin and prohibits taxation on the use of bitcoin for payments. Again Dennis Porter involvement. Signed into law in May 2023

HB 1799 Arkansas – gives the right to mine bitcoin. Again Dennis Porter involvement. Signed into law in April 2023

HB 764 Missouri – gives the right to mine bitcoin. Again Dennis Porter involvement. Passed by the house, but it was an amended bill hence has to be voted by the house committee before moving to the senate

HB 86 Wyoming – protects its citizens from having to disclose their private keys; signed into law in February 2023

SB 1751 Texas – removes tax abatements and restricts Bitcoin mining companies from participating in a state-run demand response program. This program rewards miners for giving power back to the grid when demand threatens to overwhelm the system unless the anticipated demand for electricity „is less than 10 percent of the total load required by all loads in the program“. Passed by the state senate in April 2023

SCR 1007 Arizona – proposal to make crypto a tax-exempt property; introduced in January 2023. Should the measure pass the legislature, voters could choose in November 2024 if cryptocurrencies will be tax-exempt

A 7389 New York – places a two-year moratorium on proof-of-work bitcoin mining; signed into law in November 2022

HB 230 Kentucky – tax exemption for bitcoin mining; signed into law in March 2021

North Carolina’s Buncombe County unanimously votes to ban bitcoin mining for one year on May 3rd 2023

Colorado Accepting Bitcoin for Tax Payments from September 2022

North, South and Central America (excluding USA)

El Salvador makes bitcoin legal tender

Honduran special economic zone adopts bitcoin as legal tender

Brazil’s Rio de Janeiro will accept crypto-payments for property taxes

Europe

Lugano, Switzerland makes bitcoin, tether legal tender and an update with merchant adoption

Portuguese archipelago of Madeira embracing bitcoin

Africa

Central African Republic adopted bitcoin as legal tender a year ago but is now repealing that legislation

Lightning Network adoption in Bulgaria

I will try to keep track of the bitcoin adoption in Bulgaria in this topic.

I assume you already know what LN and/or bitcoin is, but if you don’t – here is an explanation in English.

Ways to accept lightning network payments:

1 – https://www.ibexpay.io/

You can receive payout in both bitcoin and fiat, the former is done every day according to them. Here are video tutorials

2 – https://swiss-bitcoin-pay.ch/

This is another great option, they have a desktop dashboard and a phone app

And here are the businesses that accept LN payments

bitcoin.bg – an internet forum; installed the first bitcoin ATM in Bulgaria in 2014; has an open LN channel

A local store in Veliko Tarnovo accepts bitcoin as payment – February 2022

As you can see from the video they are using a LN wallet – Wallet of Satoshi. This is their location.

A local hosting company VPS.BG is accepting bitcoin since 2014 and has an open LN channel

Spendl – lets you convert your bitcoin into a virtual debit card. In this reddit topic the CTO of the company confirms they are incorporated in Bulgaria, but have their office in Israel.

BitHope – a NGO that accepts only cryptocurrencies as funding. You can support them via BitPay, which have recently implemented payments via Lightning Network

Machete Beach Bar Smokinya – a beach bar on the Bulgarian seaside

PeerName – a quick hosting check tells us the website is owned by Jump Hosting Solutions, located in Sofia, Bulgaria. It is also mapped as a merchant accepting bitcoin on btcmap.org. The company provides registration of decentralized domain names and aliases

Powha – online clothing retailer who is accepting LN payments

X Challenge Park (an adventure park) and ONA (a restaurant) have both recently accepted bitcoin as a form of payment with the help of btcpay.bg, which installs companies a BTCPay c-lightning node

Hliab – a bakery in Plovdiv which accepts payments via LN

Coffeemade – a coffee/tea store in Plovdiv

Robopartans – programming and robotics courses for kids aged between 5 and 15 yo. You can pay with bitcoin in Varna and get 25% off the course price

Cloxy – SEO optimization company founded all the way back in 2005

Bobalicious – they offer bubble teas and waffles

Automotive Repair Shop in Sofia

Botev Plovdiv Football Club introduces bitcoin’s lightning network integration

Proof-of-Work срещу Proof-of-Stake консенсусен механизъм

Блокчейните най-общо казано са просто едни бази данни, като всеки следващ елемент е базиран на всички преди него. Например за спортните запалянковци, ако футболен мач е приключил с резултат 3:0, то е ясно, че резултатът се е развил от 1:0, след това до 2:0 и накрая 3:0. Но ако например крайният резултат е 3:2, то за да съществува блокчейн е много важно дали преди това е било 3:1 или 2:2. Повечето бази данни имат условия за това кой може да ги редактира. Този централизиран контрол е удобен, но от друга страна ги прави уязвими от хакерска атака.

За разлика от тях, публичните децентрализирани блокчейни позволяват на всеки, който ползва софтуера, да може да ги разгледа и редактира. Това звучи като пълен хаос и затова блокчейновете имат „консенсусни механизми“ или „алгоритми за консенсус“.

Консенсусът е това, което разглежда проблема с „многократно харчене“ на дигиталните пари. Ако има начин потребител на криптовалутата да може харчи една определена единица от нея повече от веднъж и да я изпрати към повече от един получател, това би подкопало цялата система и валутата би била безполезна.

Това е труден проблем пред децентрализирани дигитални валути, които нямат централен орган като банка или правителство, които следят колко пари има всеки отделен индивид, как ги харчи и на кого плаща.

Идеята зад криптовалутите и в частност първата – биткойн, е те да са децентрализирани и да няма посредник между получател и изпращач. Да не се разчита на централизиран орган, защото по този начин може да се наложи цензура на субективна база. Биткойн мрежата няма само един лидер, а много на брой потребители из цял свят управляват мрежовия софтуер. Специализираното име е node и тяхната задача е да гарантират спазването на правилата.

Как работят децентрализираните системи

Базирайки се на консенсусен механизъм, който определя правилата и спомага за защита на мрежата, а в допълнение към това и какви нови транзакции да се добавят към настоящия блокчейн. В зависимост от това какъв е механизмът има победител, който получава награда след като се валидират новите блокове. Преди създаването на биткойн децентрализираните системи са страдали от т.нар. „проблем на византийските генерали“. Без централизирано потвърждение за вярността на определена информация отделните играчи никога няма как да бъдат сигурни, че всички останали са получили същата информация и имат същата движеща цел. Фактът, че всеки знае Х не е достатъчен, защото е нужно и всеки да знае, че всеки знае Х и че всички знаят, че всеки знае Х. Прилагането на децентрализиран блокчейн на база PoW решава този проблем, тъй като не изисква 100% от участниците да са съгласни винаги. Нужно е мнозинство от 51%, а несъгласието се приема за временно явление и решението на противоречиви мнения се определя с мнозинство. С други думи, консенсус се постига, защото изчислителните ресурси са оскъдни.

Proof-of-Work

Proof-of-Work консенсус меганизмът е създаден в края на 20-ти век като начин за спиране на DDoS атаки и други злоупотреби, като спам в мрежата. По този начин се изисква свършена работа от отсрещната страна, обикновено това е изчислителна мощ. Консенсус механизмът стои и зад създаването на първата децентализирана криптовалута – биткойн.

Всичко изисква енергия, а твърдението, че определено изразходване е повече или по-малко нужно е напълно субективно, тъй като потребителите плащат пазарна цена, за да я използват. Механизмът изисква биткойн миньорите да се състезават в решаването на криптографски уравнения, използвайки своите компютри – много енергоемък процес, тъй като мрежата става все по-голяма и по-голяма. Към момента на писане на статията през ноември 2021 година хеш-рейтът е 160 ЕH/s (160 квинтилион хеша за секунда). Колкото по-голямо е това число, толкова по-сигурна е мрежата срещу 51% атаки. Икономическата логика е, че първо трябва да инвестирате пари в хардуер и след това, ако вашето оборудване за копаене има достатъчно изчислителна мощност, ще може да получите блок награда. По този начин първо доказвате на мрежата, че работата е свършена. Стимулите към биткойн миньорите са да използват възможно най-евтиния източник на енергия, например вулканична, слънчева или друга форма на възобновяема такава, като целта е максимално увеличение на печалбата. Общото потребление на енергия от миньорите не е по никакъв начин обвързано с количеството транзакции в мрежата, а изцяло със сигурността ѝ.

Proof-of-Stake

Този консенсусен механизъм е създаден в пряк отговор на енергийното потребление на Биткойн мрежата и Proof-of-Work механизма. При него се „заключва“ актив (оттук и името стейкване), за да се защити мрежата.

Всеки път, когато в мрежата ще се създаде нов блок, алгоритъм предоставя възможността на конкретен участник (който след това става „валидатор“) да публикува следващия блок от транзакции на блокчейна. Това е в рязък контраст с PoW, където наградата отива при този, който е доказал, че е свършил работата. В PoS валидатор може да бъде всеки, а изискването за хардуер е много пъти по-малко и не се изисква специализиран такъв, еднственото условие е той да „заключи“ средства в мрежата. Няма еднозначен отговор на каква база се определя кой да е валидатор, като за всеки отделен блокчейн трябва да се прочете „бялата книга“ (white paper). Сред възможните варианти са според количеството на стейкнатите койни, периода на стейкване или просто на случаен принцип. Ако валидаторът се опита да измами останалите ще бъде наказан със загуба на част от заложените си койни.

Proof-of-Stake механизмът предоставя контрол върху мрежата на собствениците на самия койн. Тези с големи количества от него могат да променят правилата. Те също така могат да натрупат повече от него просто чрез стейкване. Нежелана промяна, която само големите играчи искат с цел да се облагодетелстват би трябвало да им донесе повече негативи, защото те вече са заключили капитал в мрежата и ако стойността на 1 единица пада, те губят най-много. Proof-of-Stake е по-уязвим на централизация, тъй като контролът върху мрежата се определя единствено от заключения капитал в нея, а той е по-централизиран от труда и евтината енергия. В Proof-of-Work са необходими капитал, хардуер и предприемчиви действия, за да се извърши атака върху мрежата.

Заключение

Двaтa най-разпространени консенсус механизма са PoW и PoS. Proof-of-Work се е доказал в последните над 10 години като работещ. Двете най-големи като капитализация криптовалути са базирани на него, като в Етер вече обявиха планове за трансфер към PoS. Proof-of-Stake тепърва ще навлиза и ще се тества от пазара, като към комента най-известните и големи проекти са тези на Cardano, Solana и Algorand. Освен тях съществуват и други механизми като Proof-of-Burn, Proof-of-Activity, Proof-of-Capacity.