Книга: Блокчейн на практике
Назад: Технологии для решения выявленных проблем
Дальше: Альтернативные методы консенсуса

Lightning Network и внесетевые транзакции

Вывод за пределы блокчейна мелких и периодически повторяющихся транзакций – один из путей решения проблемы масштабирования, которая начала проявляться в сети Bitcoin еще в 2014 году. Именно эта идея стала основой технологии внесетевых транзакций (off-chain transactions) и сети второго уровня с возможностью проведения мгновенных платежей без подтверждения майнерами. Технология получила название Lightning Network. Разработка и внедрение соответствующих решений потребовали нескольких лет и вызвали споры в сообществе, которые продолжались более двух лет и едва не привели к его расколу.
Сама идея надстройки над блокчейном Bitcoin, или построения платежной сети второго уровня, родилась за пределами команды Bitcoin Core, но быстро была ею подхвачена и принята в качестве основного пути развития на несколько лет.
Впервые концепция сети мгновенных транзакций была опубликована в 2015 году Джозефом Пуном и Тадеушем Драйя, а в январе 2016 года они представили «Белую книгу», в которой описали основные принципы Lightning Network. Именно в это время начал назревать кризис масштабирования блокчейна Bitcoin. Вследствие недостаточной пропускной способности механизма майнинга, способного подтверждать в среднем 5–7 транзакций в секунду, в сети начали расти очереди транзакций, ожидающих подтверждения, что привело к многократному повышению комиссий и замедлению работы многих сервисов, в первую очередь бирж и обменников. Кризис масштабирования фактически поставил крест на микроплатежах и розничных покупках с использованием биткоинов. Эти операции, и так немногочисленные, начали перетекать в другие блокчейны.
Разработки Lightning продолжались в течение всего 2016 года, и к концу его были представлены прототипы кошельков, работающие в тестовой сети. Проверка на небольшом количестве узлов их работоспособности прошла вполне успешно, однако настоящего нагрузочного тестирования в действующем блокчейне они не проходили – эта задача была отложена до разрешения конфликта разработчиков и майнеров, которого пришлось ждать до конца 2017 года. Только в сентябре 2017 года была активирована технология Segregated Witness, которая устраняла баг пластичности транзакций и делала функционирование сети Lightning более безопасным. Таким образом, запуск узлов Lightning в основном блокчейне Bitcoin состоялся только в декабре 2017 года, когда вышла версия 1.0 протокола этой технологии. Сейчас разработкой основной версии протокола занимается компания Lightning Labs, возглавляемая Элизабет Старк. Главный продукт компании – Lightning Network Daemon (LND) без графического интерфейса и мобильная платформа Neutrino. В ближайшем будущем ожидается включение поддержки Lightning Network в основном кошельке Bitcoin Core, а затем и в других распространенных кошельках. Только после этого транзакции в сети второго уровня могут стать действительно массовыми.
К концу января 2018 года величина сети второго уровня впервые достигла 1000 узлов, но к этому времени в ней курсировало всего… 4 BTC, то есть она использовалась исключительно для тестирования работы каналов и микроплатежей. К середине октября 2018 в сети Ligthning работало уже более 3700 узлов и почти 10 000 каналов, но обращающиеся суммы были по-прежнему невелики – около 110 BTC (примерно $700 000). Текущую статистику сети можно увидеть на сайте https://1ml.com//.
Столь незначительное использование Lightning Network объясняется отсутствием в настоящий момент в блокчейне каких-либо перегрузок и завышенных комиссий, так как после сдувания пузыря, образовавшегося в конце 2017 года, объемы транзакций в сети упали в несколько раз, и для работы с минимальными комиссиями и временем подтверждения сейчас достаточно пропускной способности базового блокчейна. Однако теперь Bitcoin и другие криптовалюты гораздо лучше подготовлены к массовому использованию и уже, по крайней мере в теории, могут выдержать несколько сотен или даже тысяч транзакций в секунду, если более 95 % будет проходить через сеть второго уровня с периодической фиксацией в блокчейне только взаимозачетов по совершенному массиву транзакций. Фактически Lightning Network уже готова к полноценной работе, но разработчики пользуются предоставленным затишьем для ее тестирования и выявления программных ошибок.
Как работает Lightning Network
На самом деле технология Lightning Network разрабатывается не только для Bitcoin. Ее копии или аналоги имеются еще в нескольких криптовалютах: Litecoin, Zcash (под названием Bolt), Ethereum (под названием Raiden) и NEO (под названием Trinity). Однако версии платежной сети второго уровня в альткоинах находятся на более ранних стадиях развития и гораздо слабее проработаны и протестированы, поэтому далее будет рассматриваться только Lightning Network как уже запущенная в эксплуатацию.
С технической точки зрения Lightning Network основана на технологии многосторонних подписей (multisig) и простых смарт-контрактов, встроенных в Bitcoin и работающих с помощью скриптового языка, интерпретируемого любым кошельком сети. Сеть образуется множеством виртуальных каналов между узлами (кошельками) Bitcoin. Канал состоит из скрепленного двусторонней подписью адреса, на который помещается так называемый залог, или сумма в биткоинах, необходимая для закрытия канала и подведения баланса между сторонами. Проще говоря, эта заблокированная сумма равна задолженности одного участника канала перед другим по совокупности всех совершенных ими транзакций. Если одна из сторон принимает решение о закрытии канала, остаток залога получает под свой контроль тот участник, который отправил по каналу больший объем биткоинов. При этом сумма транзакций, которую может передать по каналу кошелек, не может превышать сумму, определенную его владельцем для этого канала.
Функционирование канала Lightning Network во многом похоже на работу соединения по протоколу TCP, применяемого в современных компьютерных сетях. В Lightning Network между двумя узлами сети Bitcoin сначала происходит первичное согласование путем обмена открытыми ключами и создания общего залогового адреса, затем открывается постоянный виртуальный канал, по которому можно передавать транзакции в обе стороны.
Канал может быть закрыт в любой момент, при этом остаток на залоговом адресе передается в тот кошелек, в котором образовался недостаток средств. В теории канал может существовать практически неограниченное время, но такая практика годится разве что для крупных сервисов, непрерывно пересылающих биткоины своих клиентов и партнеров. Для обычного же пользователя постоянно открытый канал неудобен, так как блокирует в его кошельке определенную сумму. Поэтому тем, кто не пользуется каналом для постоянного двустороннего обмена, придется время от времени проводить процедуру сведения баланса и закрывать ненужные каналы, при этом в базовом блокчейне будет совершаться итоговая парная транзакция. Таким образом, если в канале передана 1000 транзакций, то в блокчейне произойдет только две пары транзакций – на открытие и закрытие канала и комиссии майнерам будут выплачены лишь за эти две транзакции. Реальная экономия на комиссиях будет зависеть от передаваемых сумм и конечного соотношения балансов при закрытии канала.
Классический пример работы канала Lightning Network:
Алиса и Боб открыли канал, в котором Алиса зарезервировала 10 BTC, а Боб – 5 BTC. Это значит, что на залоговом адресе с помощью открывающей пары транзакций была заморожена сумма 15 BTC. Допустим, канал использовался в течение месяца, за это время Алиса передала Бобу 50 транзакций на общую сумму 5 BTC, а Боб передал Алисе 100 транзакций на общую сумму 9 BTC. Таким образом, на момент закрытия канала у Боба образовалась задолженность в 4 BTC, и эта сумма уйдет Алисе в результирующей транзакции через публичный блокчейн. При этом сторонний наблюдатель увидит не 150 разнонаправленных транзакций между двумя кошельками, а всего четыре (две пары на открытие и закрытие канала):
1. Перевод 5 BTC от Боба и 10 BTC от Алисы на залоговый адрес;
2. Перевод с залогового адреса 14 BTC Алисе и 1 BTC Бобу;
3. В случае, если залог открывала одна сторона либо при закрытии канала, все средства остаются у одной стороны, транзакций будет меньше.
Пока еще каналы образуются только между двумя узлами, но каждый узел может иметь почти неограниченное число каналов – для их работы нужно только наличие необходимой суммы в биткоинах. В будущем, возможно, появятся и каналы с участием множества узлов, на момент написания книги образование сети происходит с помощью создания необходимого количества каналов. Узлы с большим количеством открытых каналов являются шлюзами, или хабами, пропускающими через себя множество транзакций других пользователей. В основном такие узлы выгодно открывать биржам, платежным операторам и другим сервисам для работы с криптовалютами на розничном рынке. На время тестовой эксплуатации в Lightning не принято брать комиссию за транзакции, но, когда сеть войдет в рабочий режим с проведением серьезных сумм, участники сети, и особенно крупные узлы, неизбежно придут к необходимости ввода комиссий, хотя эти комиссии определенно будут во много раз меньше, чем в базовом блокчейне.
Преимущества и недостатки технологии
Механизм работы Lightning Network создавался прежде всего для решения проблемы масштабирования, поэтому она успешно выполняет следующие задачи:
● Значительно снижает комиссии при использовании потоков транзакций, особенно двунаправленных.
● Многократно увеличивает скорость прохождения транзакций – фактически поступление можно увидеть уже через секунды, и оно не зависит от подтверждений майнерами.
● В публичном блокчейне видны только процессы открытия и закрытия канала, что повышает конфиденциальность сторон.
● В блокчейн помещается значительно меньше транзакций, что во много раз уменьшает скорость его роста и снижает аппаратные требования к узлам.
К сожалению, идеальных технологий не бывает, и пользователям Lightning Network также придется мириться с ее недостатками:
● Сеть второго уровня избыточна для одиночных транзакций, то есть не принесет никакой выгоды пользователям, совершающим редкие операции с разными контрагентами, особенно в одну сторону.
● Блокировка средств в канале удобна не всем пользователям, особенно владеющим небольшими суммами.
● Массовый переход на Lightning приведет к неизбежной зависимости от крупных хабов, предлагающих более выгодные условия и связанных со множеством контрагентов. Это увеличит централизацию сети и вызовет миграцию пользователей в централизованные веб-кошельки.
● Одним из постулатов Сатоси Накамото была прозрачность и отслеживаемость платежей в блокчейне. Уход транзакций в каналы приведет к их сокрытию от всех, кроме непосредственных участников.
Как бы то ни было, Lightning Network решает одну из самых острых на сегодня проблем блокчейна, повышая пропускную способность и снижая комиссии. Возможно, найдется ее применение и в нефинансовых блокчейнах.
Назад: Технологии для решения выявленных проблем
Дальше: Альтернативные методы консенсуса