Что такое lightning network: Что такое Lightning Network в криптовалюте биткоин и как он работает?

Содержание

Что такое Lightning Network в криптовалюте биткоин и как он работает?

Для примера можно представить, что вы вложили в мульти-адрес 0,5 BTC, а магазин не вложил ничего, поскольку покупка кофе не предполагает возможности возврата товара. Адрес с мульти-подписями работает как сейф, который может быть открыт лишь с согласия обеих сторон.

Во время развертывания платежного канала создается отчет, в котором обозначено, как средства распределены в данный момент. Отчет — это баланс по всем кошелькам, которые подключены к каналу. В нашем случае отчет говорит, что у вас на балансе 0,5 BTC, в магазина — 0,0 BTC (столько же, сколько он внес на мульти-адрес).

Открытие канала отображается в блокчейне, чтобы владелец кофейной мог увидеть, что вы внесли деньги, и был уверен в том, что он получит свои монеты, как только канал закроется. Подобным путем используется блокчейн в лотереи и других системах платежей.

Проведение платежа

Теперь, когда канал развернут, вы можете приобрести кофе посредством Lightning-платежа.

Допустим, чашка кофе продается по цене 0,005 BTC. Тогда, чтобы произвести оплату, нужно изменить отчет: списать 0,005 BTC с вашего баланса и приплюсовать эту сумму к балансу кофейной. Затем обе стороны заверяют обновленный отчет, в котором отражено, что вы после закрытия канала получите 0,045 BTC, магазин кофе — 0,005 BTC.

Теперь вы можете продолжать покупать кофе, пока у вас есть деньги на балансе канала. При этом и кофейня, и вы можете совершать сотни тысяч, а то и миллионы сделок внутри канала. Транзакциям нет предела, поскольку они происходят вне блокчейна и не требуют подтверждения.

Многоканальные платежи

Для того чтобы пользоваться Lightning Network, необязательно открывать платежные каналы со всеми пользователями Биткойна. Можно использовать уже существующие каналы, чтобы создать из них цепочку и передать деньги через нее. Такие платежи называют многоканальными. Понять, как они работают, можно на следующем примере.

Допустим, у вас есть знакомая Алиса и вы уже обмениваетесь с ней биткойнами с помощью Lightning-платежей, поэтому между вам есть активный платежный канал. Предположим также, что Алиса, как и вы, любит покупать кофе по утрам. Тогда, вместо того, чтоб открыть новый канал с кофейней, она может отправить монеты вам, а вы после этого передадите их кофейне. Количество посредников не ограничено.

В Lightning Network ваш платеж ищет путь от человека А к человеку В. Сеть пытается сделать это с минимальным количеством узлов и комиссией. Что еще больше снижает нагрузку на блокчейн но не безопасность, но требует, чтобы посредники имели достаточно денег в платежных каналах.

Подобные звенья-посредники — ноды Lightning Network — может создать кто угодно. Для этого нужен виртуальный частный сервер (VPN), оборудование, подключение к сети и биткойны на балансе. Держатели нод вправе взимать комиссионные, размер которых они определяют сами — еще один способ зарабатывать на биткойнах. Для вывода используйте собственный кошелек, в противном случае читайте о создании и разработке криптовалютного кошелька. Как видете внедрение блокчейна и его разработка имеют сущие плюсы.

Закрытие канала

Канал можно закрыть в любое время. Для этого нужно передать в сеть Биткойна отчет с подписями сторон и только. Майнеры проверяет подписи и, если все нормально, средства внутри канала распределятся согласно балансу.

Это действие создаст одиночную транзакцию в цепочке блокчейна. Таким образом, выходит, что на блокчейне вместо миллионов транзакций отображаются только две — открытие и закрытие платежного канала.

Система гарантирует, что только последний отчет будет использован для разблокировки денег. И поскольку обе стороны всегда имеют экземпляр отчета с двумя подписями, они могут вернуть деньги в любое время, даже в тех случаях, когда вторая сторона пропала или не хочет закрывать канал. Так, например, вы не можете удерживать деньги, которые принадлежат кофейне, и наоборот.

Преимущества Lightning Network

Почти бесплатные транзакции. Любая транзакция в Lightning Network значительно дешевле, чем обычные биткоин-платежи или банковские переводы. При этом некоторые Lightning-узлы могут предоставлять свои услуги бесплатно или даже платить за проход платежа через их ноду, что делает такие транзакции если не бесплатными, то самыми дешевыми из существующих.

Микроплатежи. Низкая комиссия или ее отсутствие позволят совершать в сети Биткойна микротранзакции — переводы на суммы в несколько долларов или центов. Раньше они были недоступны, так как средняя комиссия в сети колеблется в районе от 30 центов до пары долларов.

Скорость транзакций. Операции в Lightning Network почти мгновенны, так как они не прописываются на блокчейне, что требует от 10 до 60 минут для того, чтобы информация о транзакции была занесена в три блока блокчейна.

Пропускная способность. Christian Decker, инженер компании Blockstream, утверждает, что каждый Lightning-канал может обрабатывать до 500 операций в секунду. Таким образом, чем больше таких каналов, тем выше пропускная способность сети. Сейчас к сети подключено более 4 000 узлов, следовательно, ее пропускная способность — 2 000 000 операций в секунду.


Мета-данные сайта 1ML.com по сети Lightning Network

Масштабируемость. Чем больше нод и каналов, тем больше пропускная способность.

Как пользоваться Lightning Network

Для того чтобы воспользоваться Lightning Network, нужно установить криптовалютный кошелек, который поддерживает работу с данной сетью. Это могут быть Lightning Labs и Zap для персональных компьютеров или Rawtx и Eclair для Android. Если вы выберете десктопную версию, помните, что ее установка требует скачивания всего блокчейна Биткойна — это более 220 GB.

Протестируем процесс на примере мобильного кошелька Eclair:

1. Устанавливаем Eclair Wallet на свой мобильный девайс. Сделать это можно с помощью Google Play (версии для «яблочных» устройств на момент написания статьи не было).

2. Во время первого подключения Eclair Wallet просит пользователя записать и сохранить seed-фразу, которая состоит из 12 слов.

3. Далее нужно подтвердить seed-фразу. Это необходимо, чтобы удостовериться, что пользователь понимает важность данного момента, а не кликает «ОК», дабы побыстрее продвинуться дальше — как в случае с пользовательским соглашением.


4. После подтверждения система отправляет пользователя в главное меню и проводит краткий инструктаж, описывая, что делает каждая иконка.

5. Кошелек установлен и настроен, можно тестировать Lightning Network. Делать это лучше всего с помощью тестовых монет, которые можно получить по этой ссылке. Если вы хотите использовать настоящие, переведите на кошелек небольшую сумму денег. Компании обычно начинают подобные проекты после запуска STO или ICO.

6. Попросите знакомого, соседа или доброго человека на форуме установить кошелек с поддержкой Lightning Network и пусть он также пополнит его тестовыми монетами. Если найти помощника не удалось, можете сделать это сами, установив еще один кошелек на другое устройство.

Теперь можно протестировать все на примере покупки чашки кофе в тестовом интернет-магазине Starblocks — это площадка, разработанная Alex Bosworth из Lightning Lab для знакомства с Lightning Network. Кофе у них, к сожалению, тоже тестовое, т. е. ненастоящее.

7. Создаем платежный канал с небольшой суммой. Так он быстрее получит подтверждение (о его наличии свидетельствует надпись «Normal»).

8. Выбираем на сайте тестового Starblocks кофе по вкусу и кликаем по иконке «Checkout».

9. Всплывет окно с адресом в виде QR-кода, который нужно просканировать с помощью кошелька на мобильном. Если вы делаете это на РС, в новом окне будет символьный код, который можно скопировать и вставить в нужное окошко кошелька.

10. Поздравляем, покупка чашки кофе и тестирование Lightning Network прошло успешно! Можете проверить размер комиссии. В этом случае она нулевая. Если же использовать настоящие ноды LN, она будет, но очень маленькой.

Список интернет-площадок, которые принимают оплату через Lightning Network можно найти на сайте Lightning network stores. Там есть фильтр по категориям, новизне и популярности, а также возможность добавить свою электронную площадку, или маркетплейс.

Как запустить ноду Lightning Network

В последнее время в новостях появляется все больше сообщений о запуске LN-нод с большими суммами на их платежных каналах.

Это связано с тем, что люди видят в подобных узлах неплохой способ заработка — создал ноду, установил комиссию и получаешь пассивный заработок. Между прочим, ноды или узлы — ключевой модуль разработки биржи криптовалют.

Сделать это довольно просто. Нужно найти поставщика частных виртуальных серверов с приемлемой оплатой, который позволяет использовать большой дисковый накопитель (нужно, чтобы синхронизировать ноду с блокчейном). После чего потребуется установить и настроить ноду.

Виртуальный сервер нужен, чтобы ваша нода всегда была в сети, а не только когда включен компьютер или ноутбук. Однако, если у вас есть свободный девайс, вы можете использовать его. Но помните, что пользователи начнут обходить ваш узел стороной, если у него будет репутация нестабильной или ненадежной ноды.

Чтобы привлечь пользователей, воспользуйтесь следующими советами:

  1. Присоедините ваш узел к другим — чем больше каналов, тем выше вероятность, что ваша нода будет включена в цепочку платежа;
  2. Установите адекватную комиссию за транзакции, которые проходят через ваш узел — слишком большие отпугнут пользователей, слишком маленькие не принесут прибыли. Если есть свободные деньги, можно на некоторое время установить обратную комиссию: когда вы платите комиссионные, чтобы привлечь пользователей.
  3. Выберите для вашей ноды привлекательное название, с точки зрения маркетинга.
  4. Используйте социальные сети, форумы и профильные сайты, чтобы продвигать ноду и подключать к ней других пользователей.

Область применения LN: 5 кейсов

Кейс 1: форекс-брокера, фиатные и криптовалютные биржи с биткоином. Если криптовалютные и Форекс площадки объединятся посредством Lightning-каналов, это снизит торговые комиссии, что приведет к:

  1. Увеличению трейдерской активности;
  2. Увеличению валового объема торгов и ликвидности;
  3. Выравниванию курса активов.

Кроме того, торговые площадки могут использовать Lightning-платежи при пополнении счета трейдерами, что позволит последним не хранить средства на биржевых счетах. Вместо этого, трейдеры будут пополнять счет по мере необходимости, тем самым сняв с бирж обязанность хранить и защищать огромные суммы денег.

Первой новую технологию внедрила криптовалютная биржа Vaultoro. Bitmex присматривается к такой возможности, как и всемирно известная Nasdaq, представители которой считают, что будущее за Lightning-платежами.

Кейс 2: покупки. При любой покупке в интернете пользователи вынуждены переплачивать несколько процентов от стоимости товара или услуги, чтобы перевести деньги со своего счета на счета покупателя — эти комиссионные идут на оплату услуг платежных систем и банков. Даже в случае оплаты криптовалютой есть переплата, так как перевод из фиата в крипту и обратно (что сделает продавец) требуют дополнительных 2–10%.

Настроив Lightning-канал с торговой точкой, можно навсегда избавиться от подобных переплат. Это доказал платежный сервис CoinGate, который подключил более 100 торговых площадок к Lightning Network через свой узел. CoinGate также запустил сервис, который дает возможность любой торговой площадке или эскроу платформе подключиться к их Lightning-узлу и через него принимать Lightning-платежи.

Кейс 3: денежные переводы. Банки, как правило, взимают плату за входящие и исходящие переводы. Стоимость варьируется от 0 до 30 долларов и выше. Ниже представлены медианные комиссии для банковского рынка США по четырем видам банковских услуг.

Внутренние входящие

Внутренние исходящие

Международный входящий

Международные исходящие

$ 13

$ 25

$ 13

$ 45

Чтобы уменьшить издержки, используют криптовалюту, поскольку таким образом можно уменьшить издержки до пары долларов при любой транзакции. Однако и это не предел — благодаря Lightning Network размер комиссии можно сократить до сотенных долей центов или вовсе от нее избавиться.

Кейс 4: плата за активность. Благодаря Lightning Network можно монетизировать любые действия в сети — от просмотра видео на видеохостингах и репостов до просмотра видео. Это открывает большие возможности для маркетинга и продвижения и владельцев авторских прав на контент.

Простой пример: монетизация торрент-трекеров. В торрентах файлы разбиты на небольшие части, которые находятся на компьютерах всех, кто их скачал. С помощью блокчейна и LN можно создать торрент-сервис, где peer-узлы будут платить seed-узлам за раздачу этих частей файлов. Читайте еще пример блокчейна в лотереи и социальной сети.

Кейс 5: транзакции в онлайн играх. Микроплатежи — неотъемлемая часть современных игр. Интегрировав в клиент игры поддержку Lightning-платежей, они станут более дешевыми и надежными. Как это может быть показано в следующем видео.

Критика Lightning Network

Несовместимость. Поскольку деньги в Lightning Network могут проходить через множество посреднических узлов, конечный получатель просто не в состоянии отследить их происхождение. Это противоречит правилам SEC и процедурам, которые направлены на борьбу с отмыванием денег и финансированием терроризма.

Именно поэтому криптовалютные биржи и банки не спешат использовать новую технологию для удешевления платежей. Они попросту могут лишиться лицензии, а в некоторых случаях сесть в тюрьму с полной конфискацией. Но с открытие криптообменника это правило можно обойти. Вообще бизнес на криптовалюте и биткоине достаточно специфичен.

Угроза централизации. Чем больше денег на счету LN-ноды и чем меньше ее владелец тратит на обслуживание, тем меньшую комиссию он может установить. Другими словами, система поощряет централизацию сети, что противоречит цели разработки блокчейна и Биткоина. Поэтому значительная часть биткоин-сообщества выступает против внедрения Lightning-платежей.

Небольшие транзакции. У большинства нод на счетах небольшие суммы — от 100 сатоши до 50 биткоинов. Если кто-то решит отправить с помощью Lightning Network несколько сотен биткоинов, в системы могут возникнуть трудности, так как она сможет создать цепочку из узлов, внутри которых есть такое количество монет.

Безопасность сети. Большинство средств безопасности системы блокчейн не работает, если пользователь находится вне сети. Кроме того, из-за угрозы централизации системы возрастает риск «атаки 51%».

Только онлайн. Пользователи могут передать деньги, только если обе стороны подключены к сети.

Что такое Lightning Network? | Bitok.blog

Что такое технология Lightning Network? Как она влияет на биткоин и какие проблемы в себе несет.

    Lightning Network — это технология второго уровня для биткоинов, которая использует каналы микроплатежей для расширения возможностей своей цепочки блоков для проведения транзакций.

    Ожидается, что благодаря удалению транзакций из основной цепочки блоков, Lightning Network разгрузит биткоины и снизит связанные с ними комиссии за транзакции. Транзакции, проводимые в сети Lightning, происходят мгновенно и значительно улучшают полезность биткоина как средства повседневного использования.

    Lightning Network также может использоваться для проведения транзакций вне сети, включая обмен между криптовалютами. Например, это необходимо для операций по обмену одной криптовалюты на другую без участия посредника.

    Создание Lightning Network

    Lightning Network была впервые предложена Джозефом Пуном и Таддеусом Драйя в 2016 году и в настоящее время находится в стадии разработки. Она развивается и с каждым днем совершенствует свои потенциалы.

    Технология Lightning Network решает проблему масштабирования, создавая второй уровень в основной цепочке блоков биткоинов. Этот второй уровень состоит из нескольких каналов оплаты между сторонами или пользователями биткоинов. Сетевой канал Lightning — это механизм транзакции между двумя сторонами. Используя каналы, стороны могут совершать или получать платежи друг от друга. Они обновляются только в основном блокчейне, когда две стороны открывают и закрывают канал.

    Между этими двумя действиями стороны могут бесконечно перемещать средства между собой, не информируя основной блокчейн о своей деятельности. Такой подход значительно увеличивает скорость транзакции, поскольку не требуется, чтобы все транзакции утверждались всеми узлами в цепочке блоков.

    Отдельные платежные каналы между различными сторонами объединяются, образуя сеть узлов Lightning, которые могут маршрутизировать транзакции между собой. В результате межсоединения между различными платежными каналами и составляется Lightning Network.

    Как работает Lightning Network

    Подобно блокчейну, сеть Lightning удаляет посредников из центральных учреждений, таких как банки, которые сегодня отвечают за маршрутизацию транзакций. На техническом уровне Lightning Network использует смарт-контракты и скрипты с несколькими подписями для реализации своего видения.

    Первоначальная транзакция, называемая транзакцией финансирования, создается, когда одна или обе стороны финансируют канал. В типичной среде с несколькими подписями сначала происходит обмен двумя главными ключами (один открытый, а другой закрытый). Биржа облегчает доступ и расходование средств.

    Однако в случае с Lightning обмен подписями не происходит. Это делается для того, чтобы расходы операций по финансированию не были распознаны основным блоком. Вместо этого две стороны обмениваются между собой одним ключом, который используется для подтверждения расходных операций.

    Обе стороны могут проводить бесконечные транзакции с обязательством между собой и другими узлами в сети Lightning. Они обмениваются своими мастер-ключами только тогда, когда канал между ними закрыт.

    Какие проблемы возникают в сети Lightning?

    Lightning Network — это относительно новая технология, которая все еще находится в стадии разработки. Таким образом, некоторые проблемы, связанные с этим, все еще решаются. Вот некоторые из них.

    Наиболее очевидная проблема, связанная с сетями Lightning, которые должны быть децентрализованы, заключается в том, что они могут привести к репликации модели многоканальности, которая характерна для сегодняшних финансовых систем. В нынешней модели банки и финансовые учреждения являются основными посредниками, через которые проходят все транзакции.

    Вторая проблема, которая исследуется в сетях Lightning, — это возможность увеличения комиссий за транзакции биткоинов. Они являются важной составляющей общих сборов сети. Если сборы за транзакции биткоинов вырастут, второй уровень может стать избыточным, поскольку станет дешевле проводить транзакции в блокчейне биткоина.

    Считается, что молниевые сети также уязвимы к взломам и кражам, поскольку они должны быть в режиме онлайн в любое время. Как таковое, холодное хранение монет невозможно.

    Автор: Марк

    Дата: 20.08.2020 15:38


    Lightning network in depth, part 1: payment channels / Хабр

    Lightning network это децентрализованная оф-чейн технология, позволяющая проводить десятки тысяч транзакий в секунду, как это позволяет делать, к примеру, Visa. На данный момент Биткоин — самая популярная в мире криптовалюта, не приспособлена для отправки более чем ~7 транзакций в секунду, а высокие комисси и долгое время подтверждения сводят на нет возможность отправки микротранзакций. Lightning network решает обе эти проблемы.


    Table of contents


    • Introduction
    • Payment channels
    • Simple payment channel example
    • Trustless channels
    • Using timelocks
    • Asymmetric revocable commitments
    • Conclusion
    • Links

    Introduction

    Lightning network представляет из себя сеть платежных каналов, являющихся обычными мультисиг кошельками. Чтобы открыть канал, стороны создают мультисиг кошелек и отправляют на него средства. Полученная сумма становится балансом канала и все дальнейшие транзакции между участниками канала проводятся вне блокчейна. Канал в любое время может быть закрыт любой из сторон, в таком случае последняя офф-чейн транзакция, определяющая баланс канала, отправится в сеть, делая все предыдущие транзакции невалидными, так как они все тратят один и тот же ‘выход’. Таким образом нам нужна всего лишь одна транзакция для открытия канала и еще одна для его закрытия, а все промежуточные транзакции проводятся моментально, без записи в блокчейн.

    Сеть таких каналов позволит отправлять вам транзакции другому участнику сети, даже если вы не связаны с ним напрямую. Достаточно чтобы от вас к нему возможно было проложить ‘путь’, состоящий из цепочки каналов, причем вы не обязаны доверять никому из участников этой цепи, благодаря особым ‘смарт-контрактам’ (HTLC hash-time-lock-contract), гарантирующим безопасную доставку ваших средств.

    Чтобы разобраться в том, как работает лайтнинг нужно сначала понять как работают платежные каналы, а также HTLC контракты, на работу которых он пологается. Это довольно объемные темы, поэтому мы разобьем эту статью на 2 части и начнем с объяснения механизма работы платежных каналов.


    Payment channels

    Как мы уже говорили выше, платежный канал между двумя участниками сети представляет из себя обычный мультисиг кошелек. Первую транзакцию, закрепляющую баланс канала (нашего мультисиг кошелька), мы будем называть ‘открывающей’ (funding transaction или же anchor transaction). Эта транзакция должна быть отправлена в сеть и замайнена, чтобы канал был создан.

    Далее стороны обмениваются подписанными обоюдно коммит-транзакциями (commitment transaction), которые изменяют изначальный баланс канала. Эти транзакции валидны и могут быть отправлены в сеть, но вместо этого держутся вне сети, ожидая момента закрытия канала. Таким образом, состояние баланса канала может меняться тысячи раз в секунду, ограниченное только тем, как быстро стороны могут создавать, подписывать и передавать друг другу коммит-транзакции.

    Каждый раз, обмениваясь новой коммит-транзакцией, стороны инвалидируют предыдущее состояние канала и таким образом только самая новая коммит-транзакция может быть ‘выполнена’. Это сделано для того, чтобы стороны не попытались сжульничать, отправив в блокчейн одно из предыдущих состояний канала, которое им более выгодно. Далее я рассмотрю несколько механизмов, которые позволяют это реализовать.

    Наконец, канал может быть закрыт как по обоюдному согласию — с помощью отправки в блокчейн ‘закрывающей’ транзакции (settlement transaction), так и по инициативе только одной и сторон — с помощью отправки в блокчейн последней коммит-транзакции. Таким образом мы предотвращаем случай, когда одна из сторон уходит в оффлайн и средства второй оказываются ‘заперты’ на канале.

    На протяжении всего существования канала только две транзакции отправляются в сеть и записываются в блокчейн (открывающая и закрывающая). Между ними стороны могут обмениваться любым количеством коммит-транзакций, которые никогда не попадут в блокчейн.


    Simple payment channel example

    Перед тем как перейти к более сложным реализациям, рассмотрим на примере работу простого одностороннего канала. В этом примере сделаем допущение, что обе стороны честные, чтобы не усложнять объяснений. Далее рассмотрим механизмы, позволяющие предотвратить любую попытку сжульничать.

    В этом примере у нас есть 2 участника — Эмма и Фабиан. Фабиан предоставляет услуги видео стримингового сервиса, оплачиваемого через канал с помощью микроплатежей — одна секунда видео стоит 0.00001 BTC, что составляет 0.036 BTC за час. Эмма — обычный пользователь, который хочет посмотреть какое-нибудь видео.

    Эмма и Фабиан используют специальную программу, позволяющую работать и с платежным каналом и с видео. Эмма запускает эту программу в браузере, Фабиан на своем сервере. Программа имеет в себе функционал обычного биткоин-кошелька, умеет создавать и подписывать транзакции. Весь механизм работы платежного канала скрыт от пользователя, все что они видят — это как видео оплачивается каждую секунду.

    Теперь рассмотрим как это будет работать. Для создания канала Эмма и Фабиан должны создать мультисиг адресс с условием два из двух. Со стороны пользователя, программа создает P2SH адрес (мультисиг кошелек) и просит пополнить его на сумму за 1 час просмотра. Эмма заносит на него 0. 036 BTC и эта транзакция становится ‘открывающей’.

    Как только ‘открывающая’ транзакция подтверждена и канал открыт, начинается стриминг видео. На 1ой секунде пользовательская сторона создает и подписывает коммит-транзакцию, изменяющую баланс канала: 0.00001 BTC Фабиану и 0.03599 Эмме. Транзакция использует выход открывающей транзакции в 0.36 и содержит 2 новых, описанных только что. Программа на стороне сервиса получает эту транзакцию и также ее подписывает, после чего отправляет назад вместе с 1ой секундой видео. Теперь у сторон есть подписанная обеими сторонами коммит-транзакция, представляющая последнее состояние канала, которую они могут при необходимости отправить в сеть.

    На 2ой секунде создается очередная коммит-транзакция, использующая тот же выход, что и предыдущая, а новые выходы теперь 0.00002 Фабиану и 0.03598 Эмме. Эта транзакция представляет собой платеж за 2 скаченные секунды видео. Далее она отправляется на вторую сторону и тд.

    Допустим, Эмма посмотрела 10 минут видео и ей надоело, она остановила просмотр. За это время было отправлено и подписано 600 коммит-транзакций (600 секунд просмотра). Последняя из них имеет 2 выхода: 0.03 Эмме и 0.006 Фабиану. Эмма закрывает канал, отправляя эту коммит-транзакцию в сеть, делая ее ‘закрывающей’. Таким образом в блокчейн попали только 2 транзакции.


    Trustless channels

    Конечно, в этом примере все работает, но только если обе стороны честны. Несложно придумать сценарий, где одна из сторон может сжульничать, получив преимущество или же канал не будет работать корректно:


    • Как только канал открыт, Эмме нужна подпись Фабиана, чтобы вывести средства назад, так канал представляет из себя мультсиг кошелек 2-из-2. Если Фабиан исчезнет, средства Эммы могут навсегда остаться запертыми на канале.
    • Пока канал открыт, Эмма может взять любую из коммит-транзакций, подписанную обеими сторонами. Посмотрев видео 10 минут, она может спокойно взять самую 1ую коммит-транзакцию и отправить ее в сеть без ведома Фабиана.

    Using timelocks

    Одним из решений этих проблем является использование таймеров в коммит-транзакциях (transaction-level timelocks (nLocktime)). Чтобы иметь гарантию, что ее средства не застрянут на канале, вместе с открывающей транзакцией Эмма создает транзакцию возврата средств (refund transaction), использующую выходы ее открывающей транзакции. Сначала она отправляет Фабиану эту транзакцию и как только он подписывает ее и возвращает, Эмма отправляет в сеть открывающую транзакцию, создавая канал.

    Транзакция возврата средств становится 1ой коммит-транзакцией и её таймер устанавливает верхнюю границу жизни канала. Допустим, Эмма поставит таймер на 30 дней (4320 блоков). Все следующие коммит-транзакции будут иметь более короткий таймер, чтобы их можно было отправить в сеть раньше.

    Теперь Эмма может спокойно открывать канал, зная, что если Фабиан исчезнет, через 30 дней она сможет вернуть свои средства (если бы это был двунаправленный канал и Фабиан вводил какие-то средства, со своей стороны он мог бы точно также создать транзакцию возврата).

    Каждая новая коммит-транзакция будет иметь какой-то таймер, а именно более короткий, чем у её предшественника, чтобы таким образом самая последняя коммит-транзакция могла быть отправлена в сеть первой и инвалидировать предыдущие, защищая обе стороны от недобросовестного использования более ранних коммит-транзакций. Если все пройдет хорошо, то Эмма и Фабиан могут просто отправить обычную закрывающую транзакцию, так что коммит-транзакции в таком случае используются только при уходе в офлайн одной из сторон.

    Например, если 1ая коммит-транзакция имеет таймер на 4320 блоков, тогда вторая может иметь таймер на 4319 блоков и тд. Транзакция #600 в таком случае может быть отправлена в сеть на 600 блоков раньше, чем транзакция #1 станет валидна.

    Думаю, вы уже заметили, что этот метод хоть и помогает предотвратить использование более ранних коммит-транзакций с целью обмана, но тем не менее имеет 2 серьезных недостатка.


    • Таймер 1ой коммит-транзакции ограничивает время жизни канала.

      Если поставить таймер на большое время (допустим год), то можно будет использовать канал очень долго, не открывая его заново, однако в случае исчезновения одной из сторон, второй придется ждать все оставшееся время, чтобы вывести средства с канала, отправив в сеть последнюю коммит-транзакцию.


    • Таймер 1ой коммит-транзакции ограничивает количество транзакций, которые можно отправить в канал.

      Для нашего примера с таймером в 4320 блоков, на канал можно будет отправить не больше чем 4320 транзакций, так как каждая новая коммит-транзакция уменьшает таймер на 1 блок. Более того, используя интервал в 1 блок (10 минут), мы заставляем участников канала следить за тем, чтобы не проспать нужный блок и вовремя отправить последнюю коммит-транзакцию, если что-то пошло не так. Конечно можно увеличить интервал, но в таком случае лимит по транзакциям на канале уменьшится еще сильнее.


    Таким образом с помощью таймера мы можем инвалидировать более ранние коммит-транзакции, а также гарантировать безопасное закрытие канала любой из сторон: если обе стороны согласны с последним состоянием канала, они просто могут отправить в сеть закрывающую транзакцию (по сути последнюю коммит-транзакцию) без какого-либо таймера и закрыть канал, а если одна из сторон исчезла, то вторая просто должна дождаться истечения таймера последней коммит-транзакции, чтобы отправить ее в сеть.


    Asymmetric Revocable Commitments

    Еще одним способом решения описанных ранее проблем доверия в канале является аннулирование более ранних коммит-транзакций. На самом деле, аннулирование это не совсем то слово, ведь в биткоине как только транзакция замайнена и подтверждена, ее нельзя никак отменить. Поэтому можно сконструировать ее таким образом, чтобы было невыгодно ее использовать. Это можно сделать дав каждой стороне по ключу отмены (revocation key).

    В этот раз канал решили создать Хитеши и Ирэн. Они оба отправили на канал по 5 биткоинов, которые составляют начальный баланс канала. Теперь, вместо стандартной коммит-транзакции которую они оба должны подписать, Хитеши и Ирэн создают 2 разные ассиметричные коммит-транзакции.

    У Хитеши есть коммит-транзакция с 2мя выходами, подписанная Ирэн. Первый выход выплачивает 5 биткоинов Ирэн моментально, а второй выход выплачивает 5 биткоинов Хитеши, но с задержкой в 1000 блоков. Выгляит это так:

    Input: 2-of-2 funding output, signed by Irene
    
    Output 0 <5 bitcoin>:
        <Irene's Public Key> CHECKSIG
    
    Output 1:
        <1000 blocks>
        CHECKSEQUENCEVERIFY
        DROP
        <Hitesh's Public Key> CHECKSIG

    В то же время у Ирэн также есть коммит-транзакция с 2мя выходами, подписанная Хитеши. Первый выход выплачивает 5 биткоинов Хитеши моментально, а второй выход выплачивает Ирэн 5 биткоинов с задержкой в 1000 блоков.

    Input: 2-of-2 funding output, signed by Hitesh
    
    Output 0 <5 bitcoin>:
        <Hitesh's Public Key> CHECKSIG
    
    Output 1:
        <1000 blocks>
        CHECKSEQUENCEVERIFY
        DROP
        <Irene's Public Key> CHECKSIG

    Таким образом у каждого есть коммит-транзакция, подписанная другой стороной. В любое время Хитеши или Ирэн могут подписать свою коммит-транзакцию и отправить ее в сеть, однако в таком случае другая сторона получит деньги моментально, а отправителю придется ждать 1000 блоков, что не очень выгодно, однако этого, очевидно, все еще мало, чтобы заставить обе стороны играть честно.

    И теперь настало время ввести последний штрих — наш ключ отмены, который поволит наказать сторону, попытавшуюся сжульничать, забрав ее деньги.

    Каждая из коммит-транзакций имеет один ‘отложенный’ выход. Сделаем так, чтобы потратить его мог либо отправитель с задержкой в 1000 блоков, либо 2ой участник канала, если у него есть ключ отмены. Таким образом когда Хитеши создает коммит-транзакцию для подписи Ирэной, он создает второй выход на себя с задержкой в 1000 блоков либо Ирэне, если она предъявит ключ отмены. Хитеши будет держать этот ключ в секрете и отправит Ирэн только когда захочет обновить состояние канала новой коммит-транзакцией. Выглядеть такая транзакция будет так:

    Input: 2-of-2 funding output, signed by Irene
    
    Output 0 <5 bitcoin>:
        <Irene's Public Key> CHECKSIG
    
    Output 1 <5 bitcoin>:
    IF
        # Revocation penalty output
        <Revocation Public Key>
    ELSE
        <1000 blocks>
        CHECKSEQUENCEVERIFY
        DROP
        <Hitesh's Public Key>
    ENDIF
    CHECKSIG

    Разберем пример того, как это работает. Допустим Ирэн хочет отправить Хитеши 2 биткоина. Для этого им нужно обновить состояние канала, создав новую коммит-транзакцию. Они оба создают ассиметричные коммит-транзакции и перед тем, как их подписать, они обмениваются ключами отмены от предыдущих коммит транзакций, таким образом ‘аннулируя’ их. В данном случае Хитеши заинтересован в самом последнем состоянии баланса канала, однако для Ирэн предыдущее состояние более выгодно. Она могла бы попытаться отправить в сеть свою предыдущую коммит-транзакцию, но ключ отмены от нее уже у Хитеши и если он заметит, что она отправлена, у него будет 1000 блоков на то, чтобы забрать весь баланс канала (да, ‘отмена’ не произойдет автоматически, Хитеши должен заметить, что Ирэн отправила в сеть свою коммит-транзакцию, и воспользоваться ключом).

    Таким образом реализация каналов с помощью ассиметричных отменяемых коммит-транзакций намного более эффективна так как не ограничивает ни время жизни канала, ни количество транзакций, которое можно на него отправить.


    Conclusion

    На этом мы заканчиваем первую статью. Думаю, вам понадобится некоторое время, чтобы все переварить, так что если есть вопросы — задавайте в комментарии. В следующей части мы разберем работу HTLC контрактов и наконец покажем как работает Lightning Network.


    Links


    What is Lightning Network? | Начало работы с биткоином

    What is Lightning Network?

    Proposed in a white paper in 2016, the Lightning Network (LN) is a layer-2 solution built on top of Bitcoin. LN was created in response to scalability issues with Bitcoin, namely the speed and cost of Bitcoin transactions.

    Bitcoin’s current theoretical maximum transactions per second (TPS) is 10, though in reality it is between 3 and 7. Contrast this with traditional payment processors like VISA, which handled on average 6,000 TPS in 2020 (based on VISA’s claim of 188 billion transactions a year).

    Bitcoin’s transaction fees can vary wildly depending on the current demand to use the network. For instance, on April 20th 2021 average transaction fees were in excess of $50, while on August 9th 2021, the average was around $2.50. For large transactions, such as bank transfers or international remittance, Bitcoin’s speed and cost is comparable or superior to alternatives. But if Bitcoin is to be used for everyday payments (so-called micro-transactions, e.g., a cup of coffee, gas), the transaction speed must increase and transaction costs must decrease drastically.

    Lightning Network in theory

    To understand how LN works, and the current challenges of LN, we need to talk about Bitcoin. The limiting factor of the Bitcoin network is that every transaction must be put in a new block on chain. Since blocks are added to the chain approximately every 10 minutes, there is a hard limit to the number of transactions possible without significantly altering the Bitcoin protocol.

    Read more: How do Bitcoin transactions work?

    Debates on major reworkings of the Bitcoin protocol have happened before and resulted in ‘hard forks,’ most notably the creation of Bitcoin Cash. The Lightning Network, rather than creating a new blockchain, is a layer-2 solution. This means that it allows the Bitcoin protocol to remain relatively unchanged, but provides the benefits major reworkings could bring — in theory, at least.

    LN works by setting up a payment channel between two parties, where only the first and last transaction are put on the Bitcoin blockchain. Any number of transactions between the first and last will happen off chain, which means those transactions are not limited by the Bitcoin protocol.

    To start a payment channel, both parties must commit an amount of Bitcoin. That Bitcoin is held and cannot be released as long as the payment channel remains open. The total amount of Bitcoin that can be transferred through this channel is the total amount of Bitcoin committed. Let’s look at an example to illustrate this:

    Alice and Bob want to form a payment channel with each other. Alice commits 10 BTC and Bob commits 5 BTC into the payment channel. An opening transaction holding Alice and Bob’s combined 15 BTC is put onto the Bitcoin blockchain. Once that transaction has been added to the blockchain, which can take 10 minutes or more, Alice and Bob can transact an unlimited number of times at much faster speeds and effectively zero cost. Below are transactions between Alice and Bob:

    1. Alice sends Bob 1 BTC Alice: 9 BTC Bob: 6 BTC
    2. Alice sends Bob 2 BTC Alice: 7 BTC Bob: 8 BTC
    3. Bob sends Alice 3 BTC Alice: 10 BTC Bob: 5 BTC
    4. Bob sends Alice 1 BTC Alice: 11 BTC Bob: 4 BTC

    When one or both wish to close the channel, a closing transaction is sent to the blockchain with the final balances of Alice and Bob. In this case, Alice’s final balance is 11 BTC and Bob’s is 4 BTC.

    What if Alice wants to transact with Carol? Well, it so happens that Bob has a payment channel with Carol, so Alice transacts with Bob, and Bob passes the transaction on to Carol. Note that in this scenario, Bob might take a small payment for passing on the transaction. Over time, by the theory of six degrees of separation, LN allows Alice to transact with anyone else.

    Node A transacts with node Q despite only having direct payment channels with nodes C and B.

    Lightning Network in practice

    LN is a new protocol still in the testing phase. As such, it is faced with many challenges ranging from usability to security.

    There are concerns about how easy it is to run a LN node. For LN to be successful, it requires a robust network of Bitcoin nodes running the LN protocol. Running a LN node can be quite difficult and it could be the case that there are payment incentive problems for running smaller nodes. It can be argued that running LN is not too much more difficult than running a full bitcoin node, though. However, since LN is mostly targeted at micro-transactions, the day-to-day experience with LN will be through LN-enabled wallets. LN-enabled wallets are not very user friendly, and most of these wallets caution that since they are still in public testing stages, it is advisable to not deposit too much funds. Unlike some of the more established Bitcoin wallets, the newness of these LN-enabled wallets means there are tradeoffs between custodial and non-custodial versions. The non-custodial LN wallets are harder to use — more confusing, less straightforward. The custodial options are easier to use, but you must rely on a third-party with your Bitcoin.

    Read more: Understand the difference between custodial and non-custodial wallets, and how it relates to economic freedom.

    LN must also contend with competitors. As of August 2021, LN has locked up approximately 2,300 BTC. This might sound like a lot, but by comparison, Bitcoin has been locked up on Ethereum (WBTC, wrapped Bitcoin) to the tune of 250,000 BTC. Since block times on Ethereum are approximately every 14 seconds as opposed to Bitcoin’s 10 minutes, it already is much faster to transact Bitcoin via WBTC on the Ethereum network. Further, it’s conceivable that Ethereum projects like ETH 2.0 and Ethereum Plasma will make the Lightning Network unnecessary and obsolete. It’s also important to remember that using WBTC brings with it all of the massive benefits of access to DeFi, which LN does not.

    Lastly, and most worryingly, LN has been faced with a number of vulnerabilities. These include:

    • Griefing attacks: Funds aren’t lost, but it causes the victim’s Lightning funds to be frozen so that the payment channel cannot process any transactions.
    • Flood and loot: An attacker forces many victims to claim their funds from the blockchain at the same time (flood). The attacker uses this congestion to steal funds that were unable to be claimed before the deadline (loot).
    • Time-dilation attacks: An attacker lengthens the time a victim becomes aware of new blocks by delaying block delivery.
    • Pinning attacks: An attacker tricks a victim into closing their LN channel improperly and steals individual transactions.

    Work yet to be done

    While LN suffers from many vulnerabilities, no one has yet to exploit them. It is likely that since the expertise required to pull off these vulnerabilities is so high, none have done it. LN developers are confident that finding these vulnerabilities will only make the network stronger — that it is a necessary phase of growth. The developers are optimistic about creating various fixes for the vulnerabilities they have found so far, though pinning attacks and time-dilation attacks will require tweaks to both LN implementations and Bitcoin Core at the same time.

    The Lightning Network of today is faced with many challenges, but the protocol is still relatively young and these kinds of issues are to be expected. Lightning developers will continue to improve the protocol and hopefully will be able to solve the issues to help scale Bitcoin on layer-2.

    Read more: Understand the differences between Bitcoin and Bitcoin Cash, and why Bitcoin Cash is largely serving a different use case.

    For a sober 10,000 foot assessment of the Lightning Network, written by a full-time Bitcoin Core contributor nonetheless, check out Antoine Riard’s excellent post.

    Как начать использование Lightning Network?

    Lightning Network — это платежный протокол, взаимодействующий с блокчейном, представляющий собой сеть узлов и двусторонних каналов оплаты. Сеть позволяет пользователям проводить транзакции между собой, не тратя время на запись информации в блокчейн.

    Чтобы начать пользоваться сетью Lightning Network, требуется кошелёк, который ее поддерживает. При выборе кошелька следует учитывать, что у каждого из них есть свои особенности.

    Выбор кошелька для Lightning Network

    Чтобы выбрать именно тот кошелёк, который будет отвечать вашим требованиям, рекомендуется обратить внимание на принцип его работы с узлами.

    Есть 3 типа работы с узлами в кошельках:

    1. Кошелёк сам создаёт узел и обслуживает его. Такие кошельки удобны для тех, кто не хочет самостоятельно заниматься созданием узлов. При этом пользователи имеют возможность создавать и закрывать каналы, а также отправлять запрос другим пользователям на создание каналов.
      Например, такую функцию имеют Zap, Eclair, Breez и Phoenix.
    2. Кошелёк может работать готовым узлом по API. Пользователь самостоятельно создает узел, а кошелек только подключается к нему. Всё управление узлом и каналами осуществляется пользователем.
      Из рассматриваемых нами кошельков, такой функцией обладает только BlueWallet.
    3. Кошелёк работает с общим узлом, который запустили разработчики. Кошельки, который работают по такому принципу, называются кастодиальными. Они удобны тем, что не надо беспокоиться о создании узла и каналов. Но при этом пользователь не может распоряжаться своими средствами без этого кошелька и полностью доверяет их компании кошелька.
      К таким кошелькам относятся BlueWallet и Wallet of satoshi.

    В таблице представлены наиболее популярные кошельки, которые поддерживают сеть Lightning Network.

    Как пополнить счёт кошелька?

    При использовании собственного узла есть два способа пополнения счёта:

    • отправить монеты на адрес этого узла и создать канал. Для создания каждого канала требуется 6 подтверждений сети Bitcoin.
    • пополнить счёт через сеть Lightning Network, заказав у крупного узла входящий канал.

    Если используете общий узел, то на его адрес нужно отправить BTC или Lightning.

    Если у вас есть другая криптовалюта, с помощью FixedFloat можно пополнить свой кошелёк, обменяв монеты на BTC или Lightning.

    В обменнике FixedFloat доступна бесплатная раздача Lightning. Для этого необходимо выполнить одно условие — подписаться на наш аккаунт в Twitter. Инструкция о том, как получить 1 000 сатоши в Lightning Network на свой кошелёк, доступна по ссылке.

    Как открыть канал с FixedFloat?

    Для открытия канала требуется зайти в кошелек и выбрать пункт «Открыть новый канал».
    На странице «Открыть новый канал» укажите:

    Если кошелёк не позволяет самостоятельно открыть канал, напишите в техническую поддержку своего кошелька, чтобы они открыли канал.

    После создания канала с FixedFloat вы сможете менять Lightning на любую криптовалюту с минимальной комиссией.

    Как работает Lightning Network. Часть 1. Построение двунаправленного платежного канала

    Как минимум три компании — основанная авторами идеи LN Джозефом Пуном (Joseph Poon) и Тэджем Дрийа (Tadge Dryja) Lightning, а также Blockstream и Blockchain.info — в настоящее время работают над реализацией этой технологии. Однако, кроме вовлеченных в это разработчиков мало кто понимает, как вся эта магия вообще работает. Мы предлагаем своим читателям восполнить этот пробел в своих знаниях.

    Чтобы как следует понять концепцию, нужно последовательно изучить все строительные блоки, которые она включает. Для начала давайте разберемся, какие элементы задействованы в создании двунаправленного платежного канала — первой важной составляющей Lightning Network.

    Элемент 1: неподтвержденные транзакции

    В своей основе биткоин-протокол состоит из транзакций, которые ссылаются на прошлые транзакции и, возможно, на будущие. Каждая транзакция содержит входы с адресами отправителей биткоинов, и выходы с адресами их получателей. Кроме того, входы должны включать требования, которые создатель транзакции должен удовлетворить, чтобы транзакция была успешно выполнена, — иначе говоря, он должен подтвердить, что имеет право распоряжаться биткоинами, хранящимися по соответствующим адресам. Для выходов текущей (и, соответственно, входов следующей) транзакции указываются новые требования.

    В первом приближении можно сказать, что Lightning Network основана на обычных биткоин-транзакциях, только эти транзакции не передаются в биткоин-сеть (по крайней мере, сразу). Вместо этого они сохраняются на локальных узлах пользователей, но могут быть отправлены в сеть в любой момент.


    Черным цветом обозначена подтвержденная транзакция. Синяя транзакция может быть отправлена в сеть Алисой, но только в том случае, если подтверждена предыдущая транзакция. Красная транзакция может быть отправлена в сеть Бобом — с тем же условием: если подтверждена предыдущая транзакция. В данном примере Алиса может в любой момент подписать и транслировать в сеть свою неподтвержденную транзакцию, отправив 2 биткойна Бобу, и лишь после этого Боб сможет подписать свою транзакцию, отправляющую 1 биткойн Кэрол.

    Элемент 2: механизм защиты от двойной траты

    Второй элемент Lightning Network не нуждается в подробных объяснениях, потому что это смысл существования самого Биткойна: защита от двойной траты. Если две транзакции (или, скорее, два входа) ссылаются на один и тот же выход, только одна из них может быть подтверждена майнерами. Важно понимать, что конфликтовать могут даже неподтвержденные транзакции — еще до подтверждения одной из них.


    В данном примере Алиса должна выбрать транзакцию, которую она хочет подписать и отправить в сеть. Получить подтвеждения для обеих транзакций она не может.

    Элемент 3: мультиподпись

    Третий элемент Lightning Network также прост: это адреса с мультиподписями. Так называют биткойн-адреса, для разблокирования которых необходимо несколько закрытых ключей. Условия разблокирования могут быть самыми разными, например 2 ключа из 3, 15 из 15 и т. д. В Lightning Network часто используются мультиподписи по схеме “2 из 2”, т. е., чтобы потратить биткоины, хранящиеся по такому адресу, необходимы две подписи, сгенерированные с помощью двух закрытых ключей.


    Алиса и Боб создали адрес с мультиподписью, ключ к которому есть и у Алисы, и у Боба. Если кто-либо из них попытается потратить биткойны в одиночку, ничего не выйдет. Имейте в виду, что после добавления подписи к транзакции изменить содержимое транзакции невозможно. Криптографическая подпись — это что-то среднее между транзакцией и печатью (а на самом деле это длинная уникальная строка чисел).

    Элемент 4: временные блокировки

    Четвертый элемент Lightning Network — это временные блокировки. Они позволяют блокировать биткойны в выходе, чтобы их можно было потратить (включить в следующий вход) лишь спустя какое-то время.

    Временные блокировки бывают двух видов: абсолютные, или CheckLockTimeVerify (CLTV), и относительные, или CheckSequenceVerify (CSV). Блокировка CLTV блокирует биткойны до какого-то (более-менее) конкретного момента в будущем: до фактического времени или определенного блока. В CSV вместо этого используется относительное время. Как только выход с CSV записан в блокчейн, должно быть сгенерировано определенное количество блоков, прежде чем эти биткойны можно будет потратить.


    В Lightning Network блокировка CSV (обозначенная на рисунке часами) часто используется как задержка.

    Элемент 5: хеши и секреты

    Криптографические примитивы относятся к фундаментальным блокам самого Биткойна, но в Lightning Network они используются иначе.

    Если коротко, то “значение” или “секрет” — это длинная уникальная строка чисел, которую практически невозможно угадать даже на очень мощных компьютерах. Этот секрет можно “хешировать” — преобразовать в другую строку чисел, или “хеш”. Хитрость в том, что любой, кто знает значение, может с легкостью получить его хеш, но обратное невозможно: хеширование — однонаправленная операция.

    Этот трюк можно использовать в самом Биткойне — опять же, для блокировки биткойнов. Например, можно включить хеш в выход транзакции с требованием, что любой, кто хочет потратить его, должен указать во входе соответствующее хешу значение.


    В этой статье секрет изображается как цветной ключ, а соответствующий хеш — как замок такого же цвета.

    Первая задача: двунаправленные платежные каналы

    Идея платежных каналов обсуждалась еще до Lightning Network. Безусловно, обычные платежные каналы полезны, но ограничены: они однонаправленны. Ключевая особенность Lightning Network — это двунаправленные платежные каналы “без доверия”.

    Открытие канала

    Чтобы создать двунаправленный платежный канал, стороны должны сначала согласовать открывающую транзакцию. Эта транзакция определяет объем депозитов, которые должна внести каждая сторона.

    Допустим, Алиса хочет отправить Бобу один биткойн. Алиса и Боб собираются платить друг другу часто, поэтому они решают открыть двунаправленный платежный канал (пожалуй, целый биткойн — это многовато для платежного канала, потому что он больше подходит для микроплатежей, но в этом нет ничего невозможного).

    Чтобы открыть канал, Алиса и Боб отправляют на адрес с мультиподписью “2 из 2” по 5 биткойнов. Это и есть “открывающая транзакция”. Биткойны по этому адресу можно потратить, только если транзакцию подпишут и Алиса, и Боб.

    Кроме того, Алиса и Боб создают секрет (строку чисел) и получают ее хеш.

    Далее Алиса немедленно создает из открывающей транзакции новую транзакцию. Это так называемая “транзакция-обязательство” (commitment transaction). С ее помощью Алиса отправляет 4 биткойна себе, а оставшиеся 6 — на второй адрес с мультиподписью. Этот адрес немного необычен. Боб может разблокировать его самостоятельно, но только через 1000 блоков, потому что это адрес с CSV-блокировкой. Или же его может разблокировать Алиса, но только указав секрет, хеш от которого сообщил ей Боб (разумеется, Алиса понятия не имеет, каков этот секрет — она знает только его хеш, — так что она пока не может воспользоваться этой возможностью).

    Алиса подписывает транзакцию-обязательство, но не транслирует ее в сеть! Вместо этого она отправляет ее Бобу.

    Тем временем Боб делает то же самое, но с обратными параметрами: создает транзакцию-обязательство, отправляя 6 биткойнов себе, а 4 — на новый адрес с мультиподписью. Алиса может разблокировать этот адрес через 1000 блоков, а Боб — с помощью секрета Алисы.

    Боб подписывает свою транзакцию-обязательство и отправляет ее Алисе.

    После обмена обязательствами и хешами секретов Алиса и Боб подписывают и отправляют в биткойн-сеть открывающую транзакцию, которая записывается в блокчейн. После этого канал можно считать открытым.

    Теперь и Алиса, и Боб могут подписать и отправить в биткойн-сеть обязательства, которые они получили друг от друга. Если Алиса сделает это, Боб немедленно получит 6 биткойнов. Если это сделает Боб, Алиса получит 4 биткойна. В любом случае тот, кто подпишет и отправит в биткойн-сеть соответствующую транзакцию, должен будет подождать 1000 блоков, чтобы разблокировать адрес с мультиподписью и получить доступ к остальным биткойнам.

    Однако в действительности ни одна из сторон не подписывает и не транслирует в сеть свою транзакцию, и это самое важное в платежном канале.

    Обновление канала

    Немного позже Боб хочет вернуть Алисе 1 биткойн. Им нужно обновить состояние канала, и для этого они делают две вещи.

    Прежде всего, они повторяют изложенный выше процесс (за исключением открывающей транзакции — она уже записана в блокчейн). В этот раз Алиса и Боб отписывают себе по 5 биткойнов, а оставшиеся 5 отправляют на адреса с мультиподписью. Требования к этим адресам похожи, но использовать они должны новые секреты. Это означает, что Алиса и Боб сообщают друг другу новые хеши. Они подписывают свои транзакции-обязательства и отправляют их друг другу.

    Далее Алиса и Боб передают друг другу свои секреты из первого сценария.

    После этого Алиса и Боб могут подписать и отправить в сеть полученные транзакции-обязательства. Тот, кто сделает это, сможет получить свои 5 биткойнов через 1000 блоков, а вторая сторона — немедленно.

    Но что мешает Бобу вместо этого отправить в сеть старую транзакцию-обязательство? Казалось бы, в этом случае он должен получить 6 биткойнов…

    Конечно же, сделать это мешает ему его первый секрет, который он только что передал Алисе. Боб больше не может использовать старую транзакцию-обязательство, потому что Алисе известен его первый секрет. Если бы Боб подписал и отправил в сеть старое обязательство, он немедленно отправил бы 4 биткойна Алисе, а сам смог бы получить свои 6 биткойнов лишь через 1000 блоков. Тем временем Алиса сама смогла бы получить эти 6 биткойнов, потому что ей известен секрет Боба! Ну а поскольку Бобу известен секрет Алисы, это работает и в обратном направлении: если Алиса попытается отправить в сеть свое старое обязательство, Боб сможет забрать все биткойны из данного канала.

    Это означает, что Алиса и Боб экономически заинтересованы в том, чтобы соблюдать правила и транслировать в сеть только транзакции с актуальным состоянием канала.

    Теперь эту схему двунаправленного платежного канала нужно расширить, чтобы можно было совершать платежи по сети. Об этом читайте в следующей статье.

    Lightning Network ⚡🕸. Относительно простым русским языком. | by Dmitry Laptev

    Относительно простым русским языком.

    Same article is also available in English.

    В части 0 посмотрим, зачем это надо. В части 1 обсудим поверхностно общую идею платежных каналов, Lightning Network и проблемы. В части 2 введем необходимые строительные блоки. В части 3 наконец-то опишем более строго детали работы платежного канала. В части 4 по-быстрому построим Lightning из платежных каналов, расскажем про критику и комиссии. В части 5 немного подытожим.

    Дисклеймер. Я сознательно опускаю/упрощаю некоторые технические моменты. А еще я не эксперт, и могу банально ошибаться.

    Блокчейн биткоина — это своего рода децентрализованная база данных, в которой сохраняются все транзакции сети. При этом “все транзакции” — это довольно фундаментальная часть определения протокола. Чтобы система была по-настоящему децентрализованной и чтобы при этом не допустить ни одной ошибки, нужно, чтобы тысячи узлов сети перепроверяли и сохраняли все транзакции.

    Это, разумеется, совсем не способствует масштабируемости: блокчейн занимает десятки гигабайт на диске, блоки переполнены, комиссии растут, люди ругаются и форкают биткоин. Поэтому в данный момент активно разрабатываются альтернативные решения. Одним из таких решений являются Lightning Network (далее LN).

    Идея решений второго уровня (second layer solutions), к которым и относится LN, звучит довольно просто.

    💡 Вместо того, чтобы записывать и верифицировать все транзакции на блокчейне, давайте будем проводить большую часть платежей вне сети (off-chain), а на главный блокчейн будем время от времени по желанию синхронизировать балансы и разрешать на нем конфликты. А работать это будет как всегда с помощью криптомагии.

    Звучит интригующе, но совсем непонятно как

    1.1. Платежный канал

    Начнем с того, как можно упростить жизнь двум людям, Алисе и Бобу, которые часто расплачиваются между собой. Предлагается следующая схема.

    1. Алиса и Боб отправляют депозиты на адрес, который управляется ими совместно с помощью двух приватных ключей.
    2. Каждый из них создает специальную транзакцию — смарт-контракт (да, в биткоине есть смарт-контракты, об этом в следующей части). Эта транзакция корректна, но пока не записывается в блокчейн.
    3. Изначально транзакции содержат информацию о том, что Алиса и Боб могут забрать свои депозиты обратно.
    4. Когда Алиса расплачивается с Бобом, они по обоюдному согласию обновляют информацию в этих транзакциях. Алиса соглашается получить меньше изначального депозита, Боб — больше. По сути эти транзакции представляют собой долговые обязательства (IOU, I owe you). Но в отличии от большинства банковских долговых обязательств, LN платежи 100% обеспечены и могут быть реализованы в любой момент.
    5. Так они могут обмениваться небольшими суммами (в пределах их депозитов) друг с другом, хоть до бесконечности.
    6. В какой-то момент любая сторона может решить рассчитаться окончательно. Тогда Алиса (или Боб) просто записывают одну финальную транзакцию в главный блокчейн и получают суммы депозитов с учетом всех промежуточных платежей.

    Пункты 1–3 в этой схеме называются открытием платежного канала (payment channel, канал микроплатежей). Пункты 4 и 5 — использованием канала. Пункт 6—закрытием платежного канала.

    👍 В блокчейн записывается всего две транзакции: перечисление депозитов для открытия канала и финальная транзакция (закрытие канала). Все промежуточные платежи осуществляются без синхронизации с блокчейном, поэтому проходят они бесплатно и мгновенно.

    1.2. Сеть платежных каналов

    Сами по себе платежные каналы между двумя людьми — вещь не особо полезная. В конце концов, с большинством людей мы не проводим частых регулярных транзакций. Но…

    💡 Когда платежные каналы выстраиваются в сеть, появляется возможность проводить платежи между любыми участниками, между которыми есть путь в графе этой сети (даже если они не связаны напрямую). Это и есть основная идея Lightning Network.

    Так выглядел граф платежных каналов на момент 22.01.2018 (https://lnmainnet.gaben.win).

    В принципе, аналогично протоколу TCP, простому человеку достаточно иметь всего один открытый канал, чтобы проводить транзакции с кем угодно.

    Конечно, нужно еще искать оптимальные пути между двумя людьми, и еще нужно как-то мотивировать участников обрабатывать чужие платежи. Но начнем с основной проблемы: с проблемы доверия.

    1.3. Проблема доверия

    Как часто бывает в криптографии, систему платежных каналов легко себе представить, если все стороны доверяют друг другу. Нет необходимости городить огород с депозитами, ключами, специальными транзакциями. Можно просто записывать, кто кому сколько должен.

    Дело за малым: понять, как можно реализовать канал платежей и сеть этих каналов без доверия. Основных проблем будет три.

    1. Оба депозита от Алисы и Боба хранятся на общем кошельке. Если Боб откажется подписывать транзакции, то как Алисе вернуть свой депозит?
    2. В процессе расчетов создается много версий долговых обязательств. Предположим, что в основном Алиса платит Бобу. Тогда в финальной версии транзакции Боб получает больше своего депозита, а Алиса — меньше. Но Алиса может схитрить и самовольно записать в блокчейн самую первую валидную версию транзакции, как будто Боб никогда и не получал денег. Что тогда делать Бобу?
    3. Если Алиса и Боб передают деньги по сети каналов через Витю, то как они могут убедиться, что Витя действительное передаст деньги, а не заберет их себе?

    Назовем эти проблемы соответственно: “проблема общего депозита”, “проблема последней транзакции” и “проблема посредника”.

    Все перечисленные выше проблемы решаются с помощью буквально парочки трюков. Но обо всем по порядку: для начала введем несколько необходимых строительных блоков…

    Биткоин поддерживает простейший язык смарт-контрактов Script. В каждой биткоин-транзакции есть специальное поле, которое содержит скрипт на этом языке. Этот скрипт проверяет, при выполнении каких условий выход транзакции может быть потрачен.

    “Потратить выход транзакции A” — это на самом деле более технически корректный способ сказать “потратить деньги с адреса/кошелька K, на который они были зачислены с помощью транзакции A”.

    В отличии, например, от этереума, возможности смарт-контрактов биткоина намного более ограничены. Связано это с тем, что Script не является полным по Тьюрингу. Например, в нем нельзя использовать циклы/рекурсию и нельзя создавать переменные (отсутствует память).

    Про устройство транзакций и использование скриптов можно почитать по ссылке ниже.

    Рассмотрим несколько важных операций этого языка.

    2.1. Авторизация

    Пожалуй, самая стандартная часть любой транзакции — это проверка подписи. Пусть транзакция A зачисляет средства на некий адрес K. Чтобы дальше потратить деньги с K, нужно доказать наличие ключа. За это отвечает операция OP_CheckSig.

    Но при желании, можно также проверить что-нибудь дополнительное. Например, можно проверить, что у человека есть секретное число, хеш от которого равен заданному значению. Для этого нужно две операции: OP_SHA256 (считает хэш) и OP_EqualVerify (проверяет равенство). Зачем это нужно станет понятно в части 4.

    2.2. Кооперация

    Другой пример простейших смарт-контрактов на биткоине основан на операции OP_CheckMultiSig. Она позволяет тратить средства только при подписании несколькими определенными ключами.

    На этом принципе построены так называемые multiple signature кошельки. Примерно как ячейка в банке, которая закрывается на два замка (один ключ у работника банка, второй — у клиента).

    2.3. Сроки

    С относительно недавних пор биткоин также поддерживает операцию OP_CheckSequenceVerify, которая позволяет тратить средства только через какое-то фиксированное количество блоков.

    Например, это позволяет дисциплинировать людей, которые не умеют откладывать деньги. Блокчейн работает лучше любой копилки: если пользователь решил заморозить сбережения на какой-то срок, то они будут гарантировано заморожены.

    Но помимо этого сценария, OP_CheckSequenceVerify и другие компоненты активно используются в реализации платежного канала.

    Теперь, когда все строительные блоки на месте, можно описать некоторые детали работы платежного канала.

    На самом деле разновидностей платежных каналов довольно много, и первую из них предложил еще Сатоши. Я буду примерно ориентироваться на спецификацию, которая называется Poon-Dryja payment channels (по имени главных авторов статьи про Lightning Network).

    3.1. Открытие канала
    1. Алиса и Боб создают транзакцию/транзакции, которые зачисляют средства на общий адрес-депозит O. Предположим, что X биткоинов зачисляется с кошелька Алисы и Y — с кошелька Боба. Средства с общего депозита можно потратить только при подписании одновременно ключами Алисы и Боба (OP_CheckMultiSig).
    2. Первый трюк заключается в том, что они пока НЕ подписывают и НЕ транслируют созданную транзакцию в блокчейн (иначе Боб может обмануть Алису и заморозить её средства навечно).
    3. Вместо этого Алиса и Боб создают две новые транзакции возвращения депозитов (соответственно A1 и B1). Входом этих транзакций являются средства с общего депозита (выход транзакции O). Выходов у транзакций два: X уйдет обратно на адрес Алисе, Y — Бобу. На самом деле все немного сложнее, но об это чуть позже.
    4. Дальше Боб подписывает транзакцию A1 и передает её Алисе. Алиса подписывает транзакцию B1 и передает её Бобу.
    5. Теперь транзакцию зачисления депозитов можно смело транслировать в блокчейн, никто никого не обманет. Если Боб откажется кооперировать, Алиса всегда сможет подписать транзакцию A1, записать её в блокчейн и вернуть свой депозит.
    Транзакции возвращения депозитов.

    Теперь “проблема общего депозита” решена. Открытие канала можно провести без доверия второй стороне.

    Интересный факт. Еще полгода назад (до внедрения SegWit) подписание выхода неподтвержденной транзакции (пункт 4) провернуть было намного сложнее из-за проблемы пластичности транзакций (transaction malleability).

    3.2. Использование канала

    Платежи внутри канала на самом деле осуществляются переписыванием транзакций A1 и B1 на новые транзакции.

    1. Алиса платит Бобу за кружку кофе, которая стоит C.
    2. При этом Алиса соглашается, что при закрытии канала она заберет не изначальную сумму X, а X’=(X-C).
    3. Боб при этом получит Y’=(Y+C).

    Соответственно, новые транзакции A2 и B2 будут выглядеть точно также, как A1 и B1, но с новыми суммами. Любая из сторон может в любой момент закрыть канал, записав последнюю версию транзакции в блокчейн.

    Как убедиться, что Алиса не запишет в блокчейн транзакцию A1 вместо транзакции A2? Для этого есть еще один трюк.

    1. Каждый раз, когда Алиса и Боб создают новые транзакции, они выбирают одноразовый приватный ключ, который нужен, чтобы забрать депозит (OP_CheckSig).
    2. При каждом очередном платеже i, Алиса показывает Бобу предыдущий приватный ключ AK(i-1), и создает новый ключ AKi для новой транзакции. Боб не принимает оплату без предыдущего ключа.
    3. Если Боб знает ключ, то он может потратить все деньги Алисы. Но только в случае, если Алиса решит записать неправильную транзакцию в блокчейн.
    4. Таким образом, Алиса всегда заинтересована в том, чтобы записывать в блокчейн только самую последнюю транзакцию.

    Последняя маленькая модификация. Для того, чтобы у Боба была возможность оспорить транзакцию Алисы и предоставить её ключ, Бобу нужно время. Поэтому Алиса будет получать свой депозит не сразу, а через какое-то количество блоков T (OP_CheckSequenceVerify). Например, через 48 блоков, то есть примерно 8 часов.

    Финальный вид транзакций, используемых для платежного канала.

    Если Алиса подписывает одну из своих транзакций (они уже подписаны Бобом), и транслирует эту транзакцию в блокчейн, то возможны два сценария.

    1. Алиса транслирует финальную транзакцию => Боб не знает последнего ключа Алисы AKi. Это корректное закрытие канала, все должны получить свои деньги. Алиса получит их через какое-то время.
    2. Алиса пытается записать старую транзакцию вместо финальной => Алиса пытается обмануть Боба. В этом случае Боб знает ключ Алисы и он может воспользоваться им, чтобы получить все средства Алисы. Разумеется, Алиса не заинтересована в этом сценарии.

    Итак, “проблема последней транзакции” тоже решена и платежный канал между двумя людьми готов. Теперь также становятся очевидны некоторые плюсы и минусы.

    👍 Преимущества: 1. платежи внутри канала мгновенны и бесплатны, они не создают нагрузки на главный блокчейн. 2. стороны не обязаны доверять друг другу.

    👎 Недостатки: 1. депозиты заблокированы на все время существования канала. 2. обе стороны должны периодически появляться онлайн (как минимум раз в T).

    👌 На самом деле оба недостатка важны для платежных каналов между двумя людьми, но не очень важны в контексте Lightning Network. Первый недостаток перестает быть недостатком, если один платежный канал может быть использован для транзакций с разными людьми.

    Второй недостаток отсутствует в LN, так как проверку корректности может совершать любой участник сети (если Вася вскроет мошенничество Алисы, то он разделит с Бобом конфискованные средства Алисы).

    4.1. Платежный канал через посредника

    Предположим теперь, что Алиса и Боб не имеют открытого канала между собой, но они оба поддерживают открытый канал с Витей. Алиса может безопасно передать деньги Вите, Витя может безопасно передать деньги Бобу.

    Но как убедиться, что Витя, получив деньги, действительно передаст их дальше Бобу?

    На самом деле идея немного похожа на предыдущий трюк, только вместо одноразовых ключей используется некоторое секретное число.

    1. Боб генерирует секретное число S, хэш от этого секретного ключа HS и передает эту информацию Алисе. HS при этом может использоваться как виртуальный чек.
    2. Алиса создает транзакцию AV, которая передает деньги Вите, но только в случае, если Витя предоставит секретное число S. Для этого она использует скрипт, который проверяет равенство хэша предоставленного числа и значения HS (тут как раз и используются операции OP_SHA256 и OP_EqualVerify).
    3. Витя создает аналогичную транзакцию VB, которая передает деньги Бобу, но только в случае, если Боб предоставит секретное число.
    4. Боб видит, что он может получить деньги от Вити, и показывает ему секретное число S.
    5. Витя теперь может доказать, что он передал деньги Бобу, и соответственно он может обналичить транзакцию AV.

    Тут есть несколько вариантов развития событий.

    1. Во-первых, Вите не имеет смысла обманывать Алису. Он не может не передать деньги Бобу, потому что иначе Витя все равно не получит деньги от Алисы.
    2. Но Боб может решит обмануть Витю и не передать ему секретное число. При этом он может закрыть канал с Витей и записать транзакцию VB в блокчейн. Но для вывода денег ему все равно придется показать свое секретное число, и тут-то Витя его и узнает.

    Тут есть пара нетривиальных нюансов с тем, как выбрать время, в течении которого Алиса, Боб и Витя могут разрешить конфликты. Но эти более технические подробности выходят за рамки этой вводной статьи. Если интересно — гуглите Hash Time-Locked Contracts (HTLCs).

    4.2. Маршрутизация

    На практике Алиса и Боб могут быть связаны между собой не через одного общего знакомого Витю, а через несколько неизвестных/анонимных посредников по всему миру. Проблема поиска пути в графе узлов сети называется проблемой маршрутизацией.

    Географическое распределение узлов тестовой сети (https://explorer.acinq.co/#/).

    Вопрос маршрутизации на самом деле является областью активных исследований на данный момент. Оптимальный путь в графе зависит от многих динамических факторов: наличия узлов, топологии сети, пропускной способности каналов, комиссии промежуточных узлов.

    Не вдаваясь в подробности, поиск пути и передача платежей в LN реализуется на основе Onion routingтехнологии анонимного распространения информации по peer-to-peer сетям. Именно так, например, работает Tor.

    Все децентрализовано, весь трафик зашифрован. Никто не знает, от кого пришли деньги и кому они пойдут дальше. Отсюда еще одно преимущество.

    👍 Преимущества: Lightning Network намного более анонимна, чем сам биткоин. Во-первых, промежуточные транзакции не записываются в публичный блокчейн, их видит всего несколько участников. Во-вторых, даже среди этих участников, только первый и последний человек точно знают, от кого и кому переводятся средства.

    4.3. Экономика комиссий

    Остается два очевидных вопроса.

    Вопрос номер 1: зачем посредникам обрабатывать чужие платежи?

    Во-первых, потому что им самим так проще пользоваться LN. Во-вторых, потому что они получают с этого очень маленькую, но все-таки комиссию.

    На данный момент сеть поддерживают в основном энтузиасты и комиссия практически нулевая: 1 сатоши, или ~0.01 цента за каждого посредника.

    👍 Пропускная способность каналов — намного менее ценный ресурс, чем размер блока. Каналы открывать просто и недорого. Поэтому комиссии в LN на порядки ниже комиссий в основном блокчейне.

    Вопрос номер 2: а как же комиссия за открытие/закрытие канала?

    Действительно, эта комиссия может иногда составлять десятки долларов. Таким образом, платежи будут тем выгоднее, чем реже придется открывать/закрывать каналы.

    Это мотивирует людей открывать каналы с большими депозитами, и использовать каналы в двух направлениях: не только для исходящих платежей, но и для получения средств.

    Пример: я открываю канал, зачисляю туда 1000 долларов, и использую канал только для исходящих платежей. Оборот в канале составит 1000 долларов, примерно 20 долларов уйдет на открытие и закрытие канала. То есть суммарно комиссии составят 2%. Немного лучше, чем виза и мастеркард, но явно больше, чем хотелось бы.

    Ситуация кардинально меняется, когда я начинаю использовать Lightning на всю катушку: вкладывать большие суммы и получать деньги через каналы, а не только тратить их. Тогда, в зависимости от пропорции полученных/потраченных денег, канал может быть открыт вечно и комиссии в пределе будут стремиться к нулю.

    4.4. Критика

    В интернете можно найти большое количество критики решений второго уровня в целом и Lightning Network в частности. Какие-то пункты действительно заслуживают внимания, многие оказываются устаревшими. Приведем несколько примеров.

    1. Использование LN приведет к централизации: пользователям будет выгодно подключаться к крупным хабам и эти хабы будут контролировать весь трафик.

    Такой риск есть и стоит уделять этому внимание, но риск не очень велик. Во-первых, экономически выгодно и очень просто будет создать новый узел в обход больших хабов. Во-вторых, алгоритмы маршрутизации предусматривают балансировку трафика. В-третьих, пока что такой картины не наблюдается. В будущем, я надеюсь, топология сети будет оптимально выстраиваться алгоритмически.

    2. Недостаточная пропускная способность каналов приведет к тому, что LN будет забита, комиссии будут расти, и вскоре ситуация будет такой же, как и в основном блокчейне.

    Опять же, как только такое начнет происходить, у людей появится большая экономическая мотивация запускать свои узлы. В отличии от размера блока, количество узлов практически неограниченно.

    3. Эффективная маршрутизация на большом количестве peer-to-peer узлов невозможна. Особенно с учетом сложности открытия новых каналов.

    До этих проблем еще очень и очень и очень далеко, а исследования в этом направлении активно ведутся уже сейчас. Что-нибудь придумают.

    4. Каналы нужно постоянно открывать и закрывать, комиссии, потраченные на это, будут огромны и LN окажется невыгодной.

    На самом деле это проблема из прошлого, про которую почему-то до сих пор говорят. Ранние версии платежных каналов действительно были однонаправленными, а сам канал мог существовать только ограниченное время. Сейчас эти проблемы решены.

    5. Для использования LN необходимо быть онлайн.

    Опять же, в отличии от ранних реализаций LN, пользователю нет необходимости все время быть онлайн: другие узлы сети проверяют, что два владельца канала не пытаются обмануть друг друга. Действительно необходимо быть онлайн только для отправки и получения платежей, что безусловно является ограничением, но уже намного менее важным.

    6. LN не совместимо с холодными хранилищами (cold storage).

    Очень правильно замечание. Депозиты платежных каналов храняться в кошельке подключенном к интернету (hot wallet). Для защиты от хакеров необходимо будет очень серьезно подходить к безопасности.

    7. LN платежи — это не безопасно.

    LN платежи действительно чуть более опасны, чем платежи на основном блокчейне. Но только в одном случае: при успешной 51% атаке на блокчейн биткоина. Риск этого ничтожно мал.

    Самое важное, что вам нужно знать: Lightning уже реально работает.

    Более тысячи узлов в тестовой сети биткоина и более двухсот узлов (число растет каждый день) в основной сети (mainnet) уже обрабатывают платежи и тестируют различный софт.

    Соонователь Lightning Labs пока не рекомендует поднимать узлы на мейннете.

    Что касается софта, то есть три основных реализации: lnd от Lightning Labs, c-lightning от Blockstream, eclair от ACINQ. Эти команды уже не один год работали совместно, чтобы разработать общий стандарт взаимодействия узлов: Lightning Network Specifications (BOLTs). И вот буквально в конце 2017-ого года они провели полномасштабное успешное тестирование протокола платежей, все три реализации оказались совместимы.

    Расплатиться реальными биткоинами используя LN можно пока буквально в трех-четырех онлайн-магазинах. Но это на целых три-четыре магазина больше, чем всего месяц назад, так что это уже большой успех 😊

    Конечно, момент повсеместного перехода с on-chain биткоин платежей на off-chain платежи еще далеко. Огромную работу еще должны провести разработчики кошельков, платежных шлюзов, бирж, онлайн-магазинов. И, конечно, сами пользователи.

    Самое интересное в этой истории, что более быстрые, анонимные и дешевые платежи — это только начало! На подходе еще больше анонимности, атомарные свопы, распределенные биржи и многое-многое другое. Будущее выглядит захватывающе! ⚡

    Больше подробностей про LN по ссылкам: 1, 2, 3, 4, 5.

    Комментируйте, критикуйте, задавайте вопросы, подписывайтесь! Авторский мини-канал про крипту в телеграме: https://t. me/cryptohodl. Больше об авторе: http://laptev.ch. По вопросам использования материала пишите на [email protected] или https://t.me/x0100.

    Руководство для начинающих по сети Биткойн Lightning

    Криптовалюты обладают некоторыми довольно уникальными свойствами. Их нельзя легко взломать или отключить, и любой может использовать их для передачи ценности по всему миру без вмешательства третьей стороны. Чтобы гарантировать сохранение этих функций, необходимо пойти на значительные компромиссы. Поскольку за работу криптовалютной сети отвечает множество узлов, пропускная способность ограничена. В результате количество транзакций в секунду (TPS), которые может обрабатывать сеть блокчейна, относительно невелико для технологии, которая нацелена на массовое внедрение.Чтобы преодолеть присущие технологии блокчейна ограничения, был предложен ряд решений по масштабируемости, позволяющих увеличить количество транзакций, которые может обрабатывать сеть. В этой статье мы подробно рассмотрим сеть Lightning Network, одно из таких расширений протокола Биткойн. Сеть Lightning — это сеть, расположенная поверх блокчейна для облегчения быстрых одноранговых транзакций. Это не эксклюзивно для Биткойна — другие криптовалюты, такие как Litecoin, интегрировали его. Вам может быть интересно, что мы подразумеваем под «сидит поверх блокчейна».«Сеть Lightning — это так называемое решение вне сети или решение второго уровня . Это позволяет людям совершать транзакции без необходимости записывать каждую транзакцию в блокчейне. Сеть Lightning отделена от сети Биткойн — у нее есть свои собственные узлы и программное обеспечение, но, тем не менее, она взаимодействует с основной цепью. Чтобы войти или выйти из Lightning Network, вам необходимо создать специальные транзакции в блокчейне.

    То, что вы на самом деле делаете со своей первой транзакцией, — это создание своего рода смарт-контракта с другим пользователем.Вскоре мы углубимся в детали, а пока представьте себе смарт-контракт, в котором хранится частная книга с другим пользователем. Вы можете записать много транзакций в эту книгу. Они видны только вам и вашему контрагенту, но ни один из вас не может обмануть из-за особенностей настройки.

    Этот мини-регистр называется канал . Скажем, Алиса и Боб вложили в смарт-контракт по 5 BTC каждый. В их канале теперь у них обоих будет баланс в 5 BTC. Затем Алиса может записать в бухгалтерскую книгу и заплатить 1 BTC Бобу .Теперь у Боба 6 BTC на стороне, а у Алисы — 4. Затем Боб может отправить 2 BTC обратно Алисе позднее, обновив баланс до 6 BTC на стороне Алисы и 4 BTC на стороне Боба. Они могут продолжать делать это некоторое время.

    В любое время любой из них может опубликовать текущее состояние канала в блокчейне. В этот момент балансы на каждой стороне канала распределяются между соответствующими сторонами в сети.

    Как следует из названия, транзакции Lightning выполняются молниеносно. Нет необходимости ждать подтверждения блокировки — платежи могут производиться так быстро, как позволяет ваше интернет-соединение. Пока что Lightning Network (или просто LN) кажется наиболее разумным подходом к масштабированию блокчейна Биткойн. Координировать изменения в такой обширной экосистеме сложно — существует риск хардфорков и потенциально катастрофических ошибок. Когда на карту поставлено так много денег, экспериментировать невероятно опасно.

    Когда вы переносите эти эксперименты из блокчейна, у вас появляется гораздо больше гибкости. Если что-то пойдет не так, это не повлияет на реальную сеть Биткойн. Решения второго уровня не подрывают ни одно из предположений о безопасности, которые поддерживали протокол в течение 10 с лишним лет.

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

    Использование Lightning Network дает несколько преимуществ. Мы рассмотрим некоторые из основных ниже.

    Масштабируемость

    Биткойн-блоки создаются примерно каждые десять минут и могут содержать только определенное количество транзакций. Блочное пространство является дефицитным ресурсом, поэтому вы должны делать ставки против других пользователей, чтобы своевременно включить свое.Майнеры в первую очередь заботятся о том, чтобы им платили, поэтому они в первую очередь включают транзакции с более высокими комиссиями. Когда не так много пользователей пытаются отправить средства одновременно, это не проблема. Вы можете установить низкую комиссию, и, скорее всего, транзакция будет включена в следующий блок. Но когда все транслируют транзакции одновременно, средняя комиссия может значительно возрасти. В некоторых случаях она превышала 5 долларов. В разгар бычьего рынка 2017 года он превышал 50 долларов.

    Средняя комиссия за транзакцию в биткойнах (в долларах США)

    Это может показаться незначительным для транзакций, перемещающих биткойны на тысячи долларов, но для небольших платежей это недопустимо.Кто хочет платить за кофе за 3 доллара с комиссией в 5 долларов?

    При использовании Lightning Network вы по-прежнему платите две комиссии: одну за открытие канала и другую за его закрытие. Но вы и ваш контрагент можете совершать тысячи транзакций бесплатно, как только канал будет открыт. Когда вы закончите, вам просто нужно опубликовать конечное состояние в блокчейне.

    По большому счету, если больше пользователей будут полагаться на автономные решения, такие как Lightning Network, блочное пространство будет использоваться более эффективно.Мелкие, но частые переводы могут осуществляться в платежных каналах, в то время как блочное пространство используется для более крупных транзакций и открытия/закрытия канала. Это сделало бы систему доступной для гораздо более широкой пользовательской базы, что позволило бы масштабировать ее в долгосрочной перспективе.

    Микроплатежи

    Минимальная сумма биткойнов, которую вы можете отправить в транзакции, составляет примерно 0,00000546 BTC. На момент написания это равнялось примерно четырем центам. Это небольшая сумма, но Lightning Network позволяет вам раздвинуть границы, чтобы совершить транзакцию с наименьшей доступной в настоящее время единицей — 0. 00000001 BTC или один сатоши .

    Lightning гораздо привлекательнее для микроплатежей. Комиссия за регулярные транзакции делает непрактичной отправку крошечных сумм в основную цепочку. Однако внутри канала вы можете бесплатно отправить долю биткойна.

    Микроплатежи подходят для множества вариантов использования. Некоторые предполагают, что они могут стать жизнеспособной заменой моделей на основе подписки, когда пользователи вместо этого платят небольшие суммы каждый раз, когда пользуются услугой.

    Конфиденциальность

    Вторым преимуществом Lightning Network является то, что она может предложить пользователям высокую степень конфиденциальности. Сторонам не нужно сообщать о своих каналах более широкой сети. Хотя вы можете посмотреть на блокчейн и сказать, что эта транзакция открыла канал , вы не обязательно сможете сказать, что происходит внутри него. Если участники решат сделать свой канал закрытым, только они будут знать, какие транзакции происходят.

    Если у Алисы есть канал с Бобом, а у Боба есть канал с Кэрол, Алиса и Кэрол могут отправлять платежи друг другу через Боба.Если Дэн подключен к Кэрол, Алиса может отправлять ему платежи. Вы можете себе представить, как это расширяется до разветвленной сети взаимосвязанных платежных каналов. В такой настройке вы не можете быть уверены, кому Алиса отправила средства после закрытия канала.

    Мы объяснили, как Lightning Network использует каналы между узлами на высоком уровне. Теперь заглянем под капот.

    Адреса с мультиподписью

    Адрес с мультиподписью (или мультиподписью) — это адрес, с которого можно использовать несколько закрытых ключей.При его создании вы указываете, на сколько закрытых ключей можно потратить средства и сколько из этих ключей требуется для подписи транзакции. Например, схема 1 из 5 означает, что пять ключей могут создать действительную подпись, а нужен только один. Схема «2 из 3» будет означать, что из трех возможных ключей для расходования средств требуются любые два. Чтобы инициализировать канал Lightning, участники блокируют средства по схеме «2 из 2». Есть только два закрытых ключа, которые можно подписать, и оба нужны для перемещения монет.Вернемся к нашим друзьям Алисе и Бобу. В ближайшие месяцы они будут совершать много платежей друг другу, поэтому они решают открыть канал Lightning Network.

    Это начинается с того, что они оба вносят, скажем, по 3 BTC каждый на совместный мультиподписной адрес. Стоит повторить, что Боб не может перевести средства с адреса без согласия Алисы или наоборот.

    Теперь они могут оставить себе лист бумаги, на котором регулируются балансы с каждой стороны. Оба имеют стартовый баланс 3 BTC.Если Алиса хочет заплатить Бобу 1 BTC, почему бы просто не отметить, что Алиса теперь владеет 2 BTC, а Боб — 4 BTC? Балансы можно было отслеживать таким образом, пока они не решили вывести средства.

    Это возможно, но что в этом интересного? Что еще более важно, разве это не облегчает кому-то отказ от сотрудничества? Если у Алисы останется 6 BTC, а у Боба ни одной, то Боб ничего не потеряет, отказавшись выдать средства (за исключением, возможно, своей дружбы с Алисой).

    Хеш-контракты Timelock (HTLC)

    Вышеупомянутая система скучна и не предлагает многого по сравнению с сегодняшними надежными настройками.Становится намного интереснее, когда мы вводим механизм, обеспечивающий соблюдение «контракта» между Алисой и Бобом. Если одна из сторон решит не играть по правилам, то у другой все еще есть средство, чтобы вывести свои средства из канала.

    Этот механизм — хэш-контракт с временной блокировкой (или HTLC). Термин может показаться пугающим, но на самом деле это довольно простая концепция для понимания. Он сочетает в себе две другие технологии ( hashlocks и timelocks ), чтобы исправить любое несогласованное поведение в платежных каналах.Хэшлок — это условие, наложенное на транзакцию, согласно которому вы можете тратить средства, только доказав, что знаете секрет. Отправитель хэширует часть данных и включает хэш в транзакцию получателю. Единственный способ, которым получатель может их потратить, — предоставить исходные данные (секрет), соответствующие хешу. И единственный способ, которым они могут предоставить эти данные, — это если отправитель предоставит их им. Блокировка по времени — это условие, которое не позволяет вам тратить средства до определенного времени. Оно указывается либо как фактическое время, либо как заданная высота блока.HTLC

    создаются путем объединения хешлоков и таймлоков. На практике HTLC можно использовать для создания условных платежей — получатель должен предоставить секрет до определенного времени, иначе отправитель может вернуть средства. Следующую часть, вероятно, лучше объяснить на примере, поэтому давайте вернемся к Алисе и Бобу.

    Открытие и закрытие каналов

    Мы привели пример Алисы и Боба, которые только что создали транзакции, которые финансируют мультиподписной адрес, которым они будут делиться. Но эти транзакции еще не опубликованы в блокчейне! Сначала нам нужно сделать еще одну вещь.

    Три монеты от Боба и три монеты от Алисы.

    Помните, единственный способ вывести эти монеты из мультиподписи — это если Алиса и Боб совместно подпишут транзакцию. Если Алиса захочет отправить все шесть монет на внешний адрес, ей потребуется одобрение Боба. Сначала она составила транзакцию ( шесть биткойнов на этот адрес ) и добавила свою собственную подпись.

    Она могла бы попытаться передать транзакцию прямо сейчас, но это было бы недействительно, потому что Боб не поставил свою подпись.Алиса должна сначала передать ему незавершенную транзакцию. Как только он добавит свою подпись, она станет действительной.

    Мы до сих пор не создали механизм, чтобы все играли честно. Как мы уже говорили ранее, если ваш контрагент отказывается сотрудничать, ваши средства фактически оказываются в ловушке. Давайте рассмотрим механизм, который предотвращает это. Есть несколько разных движущихся частей, так что потерпите нас.

    Каждая сторона должна придумать секрет — назовем их просто А и Б. Это были бы ужасные секреты, если бы Алиса и Боб раскрыли их, так что пока они их скрывают.Пара будет генерировать соответствующие хэши секретов — h(As) и h(Bs). Поэтому вместо того, чтобы делиться своими секретами, они делятся этими хэшами друг с другом.

    Алиса и Боб делятся друг с другом хэшами своих секретов.

    Алисе и Бобу также необходимо создать набор из коммит-транзакций , прежде чем они опубликуют свои первые транзакции по адресу с мультиподписью. Это даст им средство правовой защиты в случае, если другой решит держать средства в заложниках.

    Если вы думаете о канале, подобном мини-бухгалтерской книге, о которой мы упоминали ранее, то транзакции фиксации — это обновления, которые вы вносите в леджер.Каждый раз, когда вы создаете новую пару коммит-транзакций, вы перераспределяете средства между двумя участниками.

    У Алисы будет два выхода: один для оплаты принадлежащего ей адреса, а другой привязан к новому мультиподписному адресу . Она подписывает его и отдает Бобу.

    Транзакция Алисы с двумя выходами — один на ее собственный адрес и один на новый мультиподпись. Ей все еще нужна подпись Боба, чтобы сделать ее действительной.

    Боб делает то же самое – один выход платит сам, другой платит другой мультиподписной адрес.Он подписывает его и отдает Алисе.

    У нас есть две незавершенные транзакции, которые очень похожи.

    Обычно Алиса может добавить подпись к транзакции Боба, чтобы сделать ее действительной. Но вы заметите, что эти средства расходуются на мультиподпись 2 из 2, которую мы еще не профинансировали . Это немного похоже на попытку потратить чек со счета, на котором сейчас нулевой баланс. Таким образом, эти частично подписанные транзакции можно будет использовать только после запуска мультиподписи.

    Новые мультиподписные адреса (куда предназначены 3 вывода BTC) имеют некоторые специфические свойства. Давайте взглянем на незавершенную транзакцию, которую Алиса подписала и передала Бобу. Вывод мультиподписи может быть проведен при следующих условиях:

    1. Обе стороны могут совместно подписать его.
    2. Боб может потратить их сам через определенный промежуток времени (из-за нашей временной блокировки).
    3. Алиса может их потратить, если знает секрет Боба Bs .

    Для транзакции, которую Боб дал Алисе:

    1. Обе стороны могут совместно подписать ее.
    2. Алиса может потратить самостоятельно через определенное время.
    3. Боб может их потратить, если знает секрет Алисы Как .

    Имейте в виду, что ни одна из сторон не знает секрета другой, поэтому 3) пока невозможна. Еще стоит отметить, что, если вы подписываете транзакцию, ваш контрагент может потратить сразу, потому что никаких особых условий на их вывод нет.Вы можете дождаться истечения срока блокировки, чтобы потратить средства самостоятельно, или вы можете сотрудничать с другой стороной, чтобы потратить их сразу.

    Хорошо! Теперь вы можете публиковать транзакции в исходном мультиподписном адресе 2 из 2. Наконец-то это безопасно, потому что вы можете вернуть свои средства, если ваш контрагент откажется от канала.

    После подтверждения транзакций канал запущен и работает. Эта первая пара транзакций показывает нам текущее состояние мини-бухгалтерской книги.В настоящее время он выплатит 3 BTC Бобу и 3 BTC Алисе.

    Когда Алиса хочет сделать новый платеж Бобу, пара создает две новые транзакции, чтобы заменить первый набор. Упражнение такое же — они только наполовину подписаны. Однако Алиса и Боб сначала отказываются от своих старых секретов и обменивают новые хэши для следующего раунда транзакций.

     Если Алиса хочет, например, заплатить 1 BTC Бобу, две новые транзакции зачислят 2 BTC Алисе и 4 BTC Бобу. Таким образом обновляется баланс.

    Любая сторона может подписать и передать одну из самых последних транзакций в любое время, чтобы «урегулировать» ее в блокчейне. Но какая бы сторона ни сделала это, ей нужно будет подождать, пока истечет время блокировки, в то время как другая сторона может потратить немедленно. Помните, что если Боб подписывает и транслирует транзакцию Алисы, теперь у нее есть вывод без каких-либо условий.

    Обе стороны могут договориться закрыть канал вместе ( совместное закрытие). Это, вероятно, самый простой и быстрый способ вернуть свои средства в сеть.Однако, даже если одна сторона перестанет отвечать или откажется сотрудничать, другая все еще может вернуть свои средства, дождавшись блокировки по времени.


    Хотите начать работу с криптовалютой? Покупайте биткойны на Binance!


    Как Lightning Network предотвращает мошенничество?

    Возможно, вы обнаружили здесь вектор атаки. Если у Боба в настоящее время есть баланс в 1 BTC, что помешает ему транслировать более старую транзакцию, в которой у него было больше? Он уже получил полуподписанную транзакцию от Алисы, ему просто нужно добавить свою подпись и транслировать ее, верно?

    Ничто не мешает ему это сделать — кроме того, что он может потерять весь свой баланс . Допустим, он проходит через это и транслирует старую транзакцию, которая платит одну монету Алисе и пять монет на тот мультиподписной адрес, о котором мы упоминали ранее.

    Алиса немедленно получает свою монету. Боб, с другой стороны, должен дождаться истечения времени блокировки, чтобы потратить с мультиподписного адреса. Помните другое условие, которое мы упомянули, которое позволит Алисе немедленно потратить те же самые средства? Ей нужен секрет, которого у нее тогда не было. Теперь она знает — как только был создан второй раунд транзакций, Боб выдал этот секрет.

    Пока Боб сидит, не в силах ничего сделать, ожидая истечения срока блокировки, Алиса может перевести эти средства. Этот механизм, основанный на наказании, означает, что участники вряд ли даже попытаются обмануть, потому что одноранговый узел получит доступ к своим монетам.

    Маршрутизация платежей

    Мы уже говорили об этом ранее — каналы могут быть связаны. В противном случае Lightning Network не была бы так полезна для платежей. Вы действительно собираетесь запереть 500 долларов в канале с кофейней только для того, чтобы вы могли получать ежедневную дозу в течение следующих нескольких месяцев?

    Вам не обязательно этого делать.Если Алиса открывает канал с Бобом, а у Боба уже есть канал с Кэрол, Боб может направлять платежи между ними. Это может работать через несколько «переходов», а это означает, что Алиса может эффективно платить любому, к кому существует путь.

    В этом сценарии Алиса может пройти несколько маршрутов, чтобы добраться до Фрэнка. На практике она всегда будет брать самое простое.

    За свою роль в маршрутизации посредники могут брать небольшую плату (хотя это не обязательно). Сеть Lightning все еще очень новая, поэтому рынок комиссий еще не материализовался.Многие ожидают увидеть комиссию, основанную на предоставленной ликвидности.

    В базовой цепочке ваша комиссия зависит исключительно от места, занимаемого вашей транзакцией в блоке — передаваемое значение не имеет значения — платежи на 1 и 10 000 000 долларов стоят одинаково. Напротив, в Lightning Network нет такого понятия, как блочное пространство.

    Вместо этого есть идея локальных и удаленных балансов . Локальный баланс — это сумма, которую вы можете «протолкнуть» на другой конец канала, тогда как удаленный баланс — это та сумма, которую может протолкнуть вам ваш контрагент.

    Пришло время для другого примера. Рассмотрим подробнее один из приведенных выше путей:  Алиса <> Кэрол <> Фрэнк .

    Баланс пользователей до и после перевода 0,3 BTC от Алисы Фрэнку.

    Алиса <> Кэрол и Кэрол <> Фрэнк имеют общую емкость 1 BTC. Локальный баланс Алисы составляет 0,7 BTC. Если бы они остановились на блокчейне сейчас, она получила бы 0,7 BTC, а Кэрол получила бы дистанционный баланс (т.е., 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, потому что это все, что у нее есть на ее конце канала.

    В этом сценарии Алиса эффективно съедает ликвидность Кэрол. Без какого-либо стимула Кэрол может не захотеть ослабить свое положение. Поэтому вместо этого она может просто сказать , я буду маршрутизировать каждый 0.01 BTC при комиссии в десять сатоши . Таким образом, чем большей частью своих локальных балансов Кэрол жертвует на «более сильных» путях, тем больше она получает.

    Как упоминалось ранее, де-факто не требуется взимать плату. Некоторых может не волновать сокращение ликвидности. Другие могут просто открывать каналы напрямую к приемнику.

    Было бы здорово, если бы Lightning Network оказалась решением всех проблем с масштабируемостью Биткойна. К сожалению, у него есть свои недостатки, которые могут мешать.

    Удобство использования

    Биткойн — не самая интуитивно понятная система для новичков — адреса, сборы и т. д. могут сбивать с толку при ознакомлении. Но кошельки могут абстрагироваться от сложных вещей, чтобы предоставить пользователям что-то отдаленно напоминающее существующие платежные системы. Вы можете заставить кого-то загрузить кошелек для смартфона, отправить ему монеты, и он готов к работе.

    На данный момент это невозможно с Lightning Network. Когда речь идет о приложениях для смартфонов, возможности ограничены — обычно узлам Lightning требуется доступ к узлу Биткойн для полноценного использования.

    После настройки клиента пользователям также необходимо начать открывать каналы, прежде чем они смогут совершать платежи. Это может быть трудоемким процессом, и он может быть ошеломляющим, когда новичок знакомится с такими понятиями, как входящая/исходящая мощность.

    При этом постоянно вносятся улучшения, направленные на снижение входных барьеров и предоставление пользователям более удобной работы.

    Ликвидность

    Одним из самых серьезных недостатков Lightning Network является то, что ваша способность совершать транзакции ограничена.Вы не можете потратить больше, чем вы зафиксировали в канале. Если вы потратите все свои средства так, чтобы на удаленном балансе остались все средства канала, вам придется закрыть канал. Кроме того, вы можете подождать, пока кто-то не заплатит вам через него, но это не идеально.

    Ваши пути также могут быть ограничены общей пропускной способностью канала. Возьмите Элис <> Кэрол <> Фрэнк из предыдущего примера. Если у Алисы и Кэрол в канале есть 5 BTC, а у Кэрол и Фрэнка только 1 BTC, Алиса никогда не сможет отправить больше 1 BTC. Даже в этом случае весь баланс должен быть на стороне Кэрол канала Кэрол <> Фрэнк , чтобы это работало. Это может серьезно ограничить количество средств, которые могут быть переданы по каналам LN, и, таким образом, иметь косвенный эффект на удобство использования.

    Централизованные концентраторы

    Из-за проблемы, упомянутой в предыдущем разделе, есть некоторые опасения, что сеть будет способствовать созданию массивных «концентраторов». То есть крупные, сильно связанные юридические лица с большой ликвидностью.Любые значительные платежи должны проходить через некоторые из этих организаций.

    Очевидно, это не лучшая ситуация. Это ослабило бы систему, поскольку эти объекты, отключившиеся от сети, серьезно нарушили бы отношения между одноранговыми узлами. Также существует повышенный риск цензуры, поскольку существует всего несколько точек, через которые проходят транзакции.

    По состоянию на апрель 2020 года Lightning Network выглядит исправно. Он может похвастаться более чем 12 000 онлайн-узлов, более 30 000 активных каналов и емкостью чуть более 920 BTC.

    Глобальное распределение узлов Lightning Network. Источник: explorer.acinq.co

    Существует несколько различных реализаций узлов — c-lightning от Blockstream, Lightning Network Daemon от Lightning Labs и Eclair от ACINQ. Для менее технически подкованных пользователей многие компании предлагают узлы plug-and-play. Единственное, что вам нужно сделать с ними, это включить устройство, и вы готовы начать работу с Lightning Network. С момента запуска основной сети в 2018 году сеть Lightning Network продемонстрировала впечатляющий рост, несмотря на то, что многие считают, что она все еще быть в бета-версии.

    По-прежнему необходимо преодолеть некоторые препятствия для удобства использования, поскольку в настоящее время для работы с узлом Lightning требуются определенные технические навыки. Но с учетом происходящего развития мы вполне можем увидеть, что барьеры для входа со временем уменьшатся.

    Если проблемы удастся решить, Lightning Network может стать неотъемлемой частью экосистемы Биткойн, значительно повысив масштабируемость и скорость транзакций.

    Lightning Network ⚡ Что такое Биткойн Lightning Network?

    Сеть Lightning первоначально была описана в официальном документе, написанном Джозефом Пуном и Таджем Драйей в 2015 году.

    Его тестовая сеть была выпущена в мае 2016 года, а к январю 2017 года первая реализация Lightning — lnd — была выпущена на стадии альфа-тестирования. Первая реальная транзакция по каналу Lightning Network произошла в декабре 2017 года, когда Алекс Босворт использовал Lightning для оплаты своего телефонного счета.


    В поэтическом финале стадии альфа-разработки Лазло Ханьец — первый человек, который использовал биткойн в реальном мире, заплатив 10 000 BTC за две пиццы в 2013 году — использовал Lightning, чтобы еще раз купить две пиццы.

    С тех пор несколько команд выпустили узлы Lightning в основной сети, включая решения c-lightning от Blockstream, lnd от Lightning Labs и решения Eclair от Acinq.

    Факел-молния

    В январе 2019 года пользователь Твиттера Ходлонавт под псевдонимом отправил 0,001 BTC (или 100 000 сатоши) на доверенный кошелек с использованием сети Lightning. Цель этого упражнения заключалась в том, чтобы этот получатель добавил 10 000 сатоши к общей сумме и отправил их на другой кошелек LN, тем самым запустив цепочку транзакций по всему миру.

    Метафорический факел был передан 292 раза, в том числе таким, как Джек Дорси, Элизабет Старк и Пьер Рошар, до достижения 4 390 000 сатоши, которые затем были отправлены в Биткойн Венесуэла, некоммерческая организация, занимающаяся продвижением Биткойн в Венесуэле.

    Как работает сеть Lightning?

    Сеть Lightning построена вне сети, чтобы пользователи могли осуществлять переводы биткойнов, чтобы уменьшить перегрузку сети.

    Для начала между двумя сторонами открывается канал, по которому они могут отправлять средства.Затем они могут использовать этот канал для мгновенной отправки BTC между собой с почти нулевой комиссией, без необходимости транслировать каждую транзакцию на базовый уровень блокчейна Биткойн.

    Любая из сторон может рассчитаться в блокчейне Биткойн и закрыть канал в любой момент времени.

    Когда канал закрывается и выполняется расчет в блокчейне базового уровня, средства отправляются каждой стороне в соответствии с историей переводов канала, которая в целом суммируется как одна транзакция в блокчейне Биткойн.Единственными транзакциями, связанными с Lightning, которые транслируются в сеть Биткойн, являются открытие и закрытие каналов. Это помогает освободить место в блоке, что приводит к снижению сетевых сборов и увеличению экономической активности на блок.

    Прямой канал оплаты между двумя сторонами также может стать частью более крупной сети Lightning. Если у двух сторон нет прямого канала, они могут переводить средства через взаимосвязанные пути. Узлы Lightning в сети ищут наилучший маршрут для выполнения транзакции.

    Например, если ваш друг (с которым у вас есть канал) ведет вас в свою любимую кофейню, с которой у него есть канал, Lightning Network позволит вам направить платеж через вашего друга, когда вы платите за кофе, без вас нужно открыть новый канал с кофейней. Все это происходит за несколько секунд и не требует длительного ожидания или высоких комиссий, как в основном блокчейне.

    Следует отметить, что аналитики сети Биткойн могут быстро идентифицировать эти транзакции как исходящие из сети Lightning, поскольку они выглядят как сложные смарт-контракты, которые включают в себя различные открытые ключи и подписи, используемые в канале.Эта проблема решается в предложениях по улучшению биткойнов, включенных в обновление Taproot, которые направлены на повышение конфиденциальности каждой транзакции.

    Что такое Lightning Network? | Как работают Биткойн и Крипто?

    Что такое сеть Lightning?

    Предложенная в официальном документе в 2016 году сеть Lightning Network (LN) представляет собой решение уровня 2, построенное поверх Биткойн. LN был создан в ответ на проблемы масштабируемости Биткойна, а именно скорость и стоимость транзакций Биткойн.

    Текущее теоретическое максимальное количество транзакций Биткойн в секунду (TPS) составляет 10, хотя на самом деле оно находится между 3 и 7. Сравните это с традиционными платежными системами, такими как VISA, которые в 2020 году обрабатывали в среднем 6000 транзакций в секунду (на основе заявления VISA о 188 миллиардах транзакций в год).

    Плата за транзакцию Биткойн может сильно различаться в зависимости от текущего спроса на использование сети. Например, 20 апреля 2021 года средняя комиссия за транзакцию превышала 50 долларов США, а 9 августа 2021 года в среднем составляла около 2,50 доллара США. Для крупных транзакций, таких как банковские переводы или международные денежные переводы, скорость и стоимость Биткойн сопоставимы или превосходят альтернативы.Но если Биткойн будет использоваться для повседневных платежей (так называемые микротранзакции, например, чашка кофе, газ), скорость транзакций должна увеличиться, а транзакционные издержки должны резко снизиться.

    Сеть Lightning в теории

    Чтобы понять, как работает LN, и текущие проблемы LN, нам нужно поговорить о Биткойне. Ограничивающим фактором сети Биткойн является то, что каждая транзакция должна быть помещена в новый блок в цепочке. Поскольку блоки добавляются в цепочку примерно каждые 10 минут, существует жесткое ограничение на количество возможных транзакций без существенного изменения протокола Биткойн.

    Подробнее: Как работают биткойн-транзакции?

    Дебаты о серьезной переработке протокола Биткойн происходили и раньше и привели к «хард-форкам», в первую очередь к созданию Bitcoin Cash. Lightning Network — это не создание новой цепочки блоков, а решение уровня 2. Это означает, что он позволяет протоколу Биткойн оставаться относительно неизменным, но обеспечивает преимущества, которые могут принести крупные переделки — по крайней мере, теоретически.

    LN работает, устанавливая платежный канал между двумя сторонами, где только первая и последняя транзакция помещаются в блокчейн Биткойн.Любое количество транзакций между первой и последней будет происходить вне цепочки, что означает, что эти транзакции не ограничены протоколом Биткойн.

    Чтобы запустить платежный канал, обе стороны должны зафиксировать определенную сумму в биткойнах. Этот биткойн удерживается и не может быть выпущен, пока канал оплаты остается открытым. Общая сумма биткойнов, которая может быть передана через этот канал, равна общей сумме выделенных биткойнов. Давайте посмотрим на пример, чтобы проиллюстрировать это:

    Алиса и Боб хотят сформировать платежный канал друг с другом.Алиса переводит 10 BTC, а Боб переводит 5 BTC в платежный канал. Начальная транзакция, содержащая 15 BTC Алисы и Боба, помещается в блокчейн Биткойн. Как только эта транзакция будет добавлена ​​в блокчейн, что может занять 10 минут или более, Алиса и Боб могут совершать транзакции неограниченное количество раз на гораздо более высоких скоростях и практически без затрат. Ниже приведены транзакции между Алисой и Бобом:

    1. Алиса отправляет Бобу 1 BTC Алиса: 9 BTC Боб: 6 BTC
    2. Алиса отправляет Бобу 2 BTC Алиса: 7 BTC Боб: 8 BTC
    3. Боб отправляет Алисе 3 BTC Алиса: 10 BTC Боб: 5 BTC
    4. Боб отправляет Алисе 1 BTC Алиса: 11 BTC Боб: 4 BTC

    Когда один или оба желают закрыть канал, в блокчейн отправляется закрывающая транзакция с окончательным балансом Алисы и Боба. В этом случае окончательный баланс Алисы составляет 11 BTC, а Боба — 4 BTC.

    Что, если Алиса захочет заключить сделку с Кэрол? Так получилось, что у Боба есть платежный канал с Кэрол, поэтому Алиса совершает транзакцию с Бобом, а Боб передает транзакцию Кэрол. Обратите внимание, что в этом сценарии Боб может взять небольшую плату за передачу транзакции. Со временем, в соответствии с теорией шести степеней разделения, LN позволяет Алисе совершать транзакции с кем-либо еще.

    Узел A совершает транзакции с узлом Q, несмотря на то, что имеет только прямые платежные каналы с узлами C и B.

    Сеть Lightning на практике

    LN — это новый протокол, который все еще находится на стадии тестирования. Таким образом, он сталкивается со многими проблемами, начиная от удобства использования и заканчивая безопасностью.

    Есть опасения по поводу простоты запуска узла LN. Для успеха LN требуется надежная сеть биткойн-узлов, на которых работает протокол LN. Запуск узла LN может быть довольно сложным, и могут быть проблемы с платежами для запуска меньших узлов. Однако можно утверждать, что запуск LN не намного сложнее, чем запуск полного биткойн-узла.Однако, поскольку LN в основном ориентирован на микротранзакции, повседневная работа с LN будет осуществляться через кошельки с поддержкой LN. Кошельки с поддержкой LN не очень удобны для пользователя, и большинство из этих кошельков предупреждают, что, поскольку они все еще находятся на стадии публичного тестирования, рекомендуется не вносить слишком много средств. В отличие от некоторых более известных биткойн-кошельков, новизна этих кошельков с поддержкой LN означает, что существует компромисс между кастодиальными и некастодиальными версиями. Кошельки LN, не связанные с тюремным заключением, сложнее в использовании — они более запутаны и менее просты.Варианты хранения проще в использовании, но вы должны полагаться на третье лицо с вашим биткойном.

    Подробнее: Поймите разницу между кастодиальными и некастодиальными кошельками и как это связано с экономической свободой.

    LN также должен бороться с конкурентами. По состоянию на август 2021 года LN заблокировала около 2300 BTC. Это может показаться большим, но для сравнения, Биткойн был заблокирован на Ethereum (WBTC, обернутый биткойн) на сумму 250 000 BTC. Поскольку время блока в Ethereum составляет примерно каждые 14 секунд, а не 10 минут в биткойнах, транзакция биткойнов через WBTC в сети Ethereum уже намного быстрее.Кроме того, вполне возможно, что проекты Ethereum, такие как ETH 2.0 и Ethereum Plasma, сделают Lightning Network ненужной и устаревшей. Также важно помнить, что использование WBTC дает все огромные преимущества доступа к DeFi, которых нет у LN.

    Наконец, что наиболее тревожно, LN столкнулся с рядом уязвимостей. К ним относятся:

    • Griefing Attacks: средства не теряются, но это приводит к тому, что средства Lightning жертвы замораживаются, так что платежный канал не может обрабатывать какие-либо транзакции.
    • Флуд и грабеж: Злоумышленник вынуждает многих жертв одновременно требовать свои средства из блокчейна (флуд). Злоумышленник использует это скопление для кражи средств, которые не удалось затребовать до установленного срока (loot).
    • Атаки с замедлением времени: Злоумышленник увеличивает время, в течение которого жертва узнает о новых блоках, задерживая доставку блоков.
    • Закрепление атак: Злоумышленник обманом заставляет жертву ненадлежащим образом закрыть канал LN и похищает отдельные транзакции.

    Работа еще не сделана

    Хотя LN имеет множество уязвимостей, никто еще не использовал их. Вполне вероятно, что, поскольку опыт, необходимый для устранения этих уязвимостей, настолько высок, никто этого не сделал. Разработчики LN уверены, что обнаружение этих уязвимостей только укрепит сеть — это необходимая фаза роста. Разработчики с оптимизмом смотрят на создание различных исправлений для уязвимостей, которые они нашли до сих пор, хотя атаки с закреплением и атаки с замедлением времени потребуют одновременной настройки как реализации LN, так и Bitcoin Core.

    Сегодняшняя сеть Lightning сталкивается со многими проблемами, но протокол все еще относительно молод, и таких проблем следует ожидать. Разработчики Lightning продолжат улучшать протокол и, надеюсь, смогут решить проблемы, чтобы помочь масштабировать Биткойн на уровне 2.

    Подробнее: Узнайте о различиях между биткойнами и биткойн-наличными, а также о том, почему биткойн-наличность в значительной степени служит другому варианту использования.

    Для трезвой оценки сети Lightning с высоты 10 000 футов, написанной, тем не менее, постоянным участником Bitcoin Core, ознакомьтесь с отличным постом Антуана Риара.

    Сеть Lightning обеспечивает массовое внедрение биткойнов

    • В июльском отчете CoinShares о молниеносной сети биткойнов освещались перспективы быстрого, дешевого канала с высокой пропускной способностью.
    • Инвестиционный стратег компании Джеймс Баттерфилл сказал, что она может проводить «больше транзакций, чем Visa».
    • Это может помочь Биткойну достичь своих основных целей и упростить глобальные транзакции.
    LoadingЧто-то загружается.

    Криптовалюты быстро становятся частью повседневного языка финансовых рынков. Крупные финансовые учреждения предлагают криптовалюту некоторым из своих самых богатых клиентов, а цифровые банки и платежные платформы позволят пользователям покупать и продавать их.

    Но на пути к тому, чтобы биткойн стал по-настоящему мейнстримом, всегда стояло одно: скорость сети, в которой он работает.

    Биткойн-сеть обрабатывает миллиарды транзакций в день, но обычно они выполняются медленно и дорого. Это затруднило использование биткойнов для регулярных платежей и вместо этого сделало его более инвестиционным средством или средством сбережения.

    Но с начала 2018 года сеть Lightning — слой поверх сети биткойнов — ускоряет транзакции и приближает день, когда любой сможет легко и дешево совершать платежи в биткойнах.

    «Lightning позволяет пользователям амортизировать стоимость биткойн-транзакций посредством множества платежей с течением времени. Мы рассматриваем молнию как важнейшую технологию, которая может улучшить полезность биткойнов в платежах за пределы его стигмы как инвестиционного инструмента», — заявил управляющий цифровыми активами CoinShares в недавнем отчете. отчет.

    Сеть является детищем американской компании Lightning Labs, получившей 2 доллара.5 миллионов начальных инвестиций три года назад, поддержанных генеральным директором Twitter Джеком Дорси и другими.

    «Lightning гораздо более безопасна, чем Visa, и может проводить больше транзакций, чем Visa», — сказал инсайдеру инвестиционный стратег CoinShares Джеймс Баттерфилл, имея в виду ведущую платежную карту.

    В сети биткойн пользователям часто приходится часами ждать завершения транзакций, поскольку они происходят как часть блока. Время между обработкой одного блока и другим может варьироваться. Lightning, с другой стороны, может отправлять платежи так же мгновенно, как и электронное письмо, говорится в отчете.

    CoinShares сравнили использование сети с тем, как поставщики кредитных карт Visa или Mastercard взаимодействуют с финансовой системой, контролируемой США. Федеральный резерв .

    «Большинство транзакций в долларовой экономике никогда не касаются систем ФРС. Они обрабатываются агрегаторами платежей, которые, в свою очередь, периодически используют коммерческие банки, которые затем используют ФРС для окончательного расчета», — говорится в сообщении CoinShares.«Lightning делает то же самое для биткойн-транзакций, только используя биткойн-блокчейн для окончательного расчета».

    Lightning позволяет пользователям открывать платежные каналы между двумя или несколькими сторонами. Пользователи сети Lightning могут создавать узлы — фактически части программного обеспечения, которые отправляют платежи по самым быстрым маршрутам между сторонами. Оператор узла взимает небольшую комиссию за каждую транзакцию.

    «На момент написания базовая комиссия за транзакцию составляет 1 сатоши (0,00000001 биткойн), что эквивалентно 0.04 цента», — говорится в сообщении CoinShares.

    .

    В стандартной цепочке блоков узлы должны одобрять транзакции. Но узлы не делают этого в сети Lightning.

    «Транзакции выполняются намного быстрее, так как стороны могут совершать сделки друг с другом без необходимости утверждения узлов», — говорится в сообщении Coinmarketcap, поставщика криптоданных.

    В июне Lightning Labs расширила возможности своего продукта и выпустила модель 0.13-бета, что означало, что сеть может обеспечить «более крупные и надежные спонтанные платежи», говорится в блоге компании.

    «Мы создаем технологию, чтобы донести биткойн до следующего миллиарда человек. Наша цель — создать самую простую платформу для интеграции цифровых денег в Интернете с помощью молнии», — говорится в другом сообщении в блоге Lightning Labs в феврале.

    Похоже, это работает.За 2020 год пропускная способность сети выросла на 22%, а количество активных узлов — на 41%. Согласно отчету CoinShares, к июлю этого года емкость увеличилась еще на 90%, а количество активных узлов — еще на 52%.

    «Мы видим, что количество узлов растет довольно быстро, что предполагает, что они начинают использоваться не только как средство сбережения», — сказал Баттерфилл Insider.

    Что такое Биткойн Lightning Network?

    Bitcoin Lightning Network — это решение второго уровня, использующее платежные каналы для быстрого расчета транзакций без необходимости ждать подтверждения блока.

    Можно ли купить чашку кофе за биткойны? До появления сети Биткойн Лайтнинг однозначного ответа не было. Ну, не больше.

    Постоянно растущая ценность и принятие BTC затрудняли его использование для микротранзакций — небольших платежей за повседневные товары. Если Биткойн должен стать глобальной одноранговой платежной системой, он должен масштабироваться. Высокие комиссии, перегруженная сеть, длительное время подтверждения транзакций заставили биткойн-сообщество искать новые решения. Lightning Network — одна из них.

    Что такое сеть Bitcoin Lightning?

    Биткойн Lightning Network — это решение второго уровня, использующее платежных канала для быстрого расчета транзакций без необходимости ждать подтверждения блока. Впервые предложенный Джозефом Пуном и Таддеусом Драйе в 2015 году, сейчас он разрабатывается Blockstream, Lightning Labs, ACINQ и другими участниками сообщества Биткойн.

    Ни для кого не секрет, что у Биткойна низкая медиана обработки семи транзакций в секунду (TPS) .Это число далеко от основных мировых платежных систем, таких как VISA (24,00 TPS), PayPal (193 TPS), альтернативных криптовалют, таких как XRP (1500 TPS) или даже Ethereum (ETH) (20 TPS).

    Сеть Bitcoin Lightning не имеет верхней границы в отношении TPS, так как один канал в сети может обрабатывать более 250 TPS , и нет ограничений на количество каналов , которые могут присоединиться к сети.

    Как работает сеть Lightning?

    По сути, Lightning Network позволяет пользователям участвовать в нескольких транзакциях вне сети, только с начальным и конечным балансами кошелька, записываемыми в блокчейн Биткойн.Такой подход значительно увеличивает пропускную способность сети и снижает комиссию за транзакции. Кроме того, он добавляет еще один уровень безопасности и анонимности пользователей.

    Однако Lightning Network не является панацеей, и ее критики также указывают на ее недостатки, включая возможную централизацию и снижение безопасности.

    Как использовать сеть Bitcoin Lightning?

    Вот биткойн-кошельки, поддерживающие сеть Bitcoin Lightning:

    • Lightning Peach (Android, iOS, Windows, Mac, Linux)
    • Spark (Android, Windows, Mac, Linux)
Tippin .Мне (Web)
  • BlueWallet (Android и iOS)
  • Breez (Android и iOS)
  • кошелек Satoshi (Android и iOS)
  • ZAP (IOS, Windows, Mac, Linux )
  • Bitcoin молнии кошельки (Android)
  • Eclair (Android)
  • Shango (Android и iOS)
  • Casa Node (оборудование)
  • Joule (плагин браузера для хрома (вкл. .Brave), Firefox, Opera)
  • Вам необходимо пополнить счет, прежде чем вы сможете его использовать. Просто выполните обычную транзакцию BTC на свой новый адрес кошелька Lightning.

    Как только ваш кошелек будет пополнен, вам нужно будет открыть канал Lightning. Каждый кошелек работает по-своему, поэтому следуйте его навигации или руководству, чтобы сделать это. Как только канал Lightning открыт, вы можете отправлять платежи кому-то еще. Кроме того, существует ограничение на количество денег, которые можно отправлять и получать через Lightning Network.В настоящее время он составляет 0,168 BTC .

    Обратите внимание, что с большинством кошельков вы не сможете получать платежи Lightning, пока не пополните кошелек, не откроете канал и не совершите платеж. Кроме того, от вашего канала может потребоваться наличие достаточной ликвидности для приема платежей определенного размера. Единственным исключением является веб-кошелек Tippin.me , позволяющий получать подсказки за добрые дела и твиты в Twitter.

    LQwD объявляет о запуске узлов маршрутизации Lightning Network и развертывании биткойнов в платежных каналах

    ВАНКУВЕР, Британская Колумбия, октябрь. 5 января 2021 г. /PRNewswire/ — Компания LQwD FinTech Corp. (TSXV: LQWD) (OTC: LQWDF), специализирующаяся на Lightning Network, объявляет о создании узлов маршрутизации и развертывании биткойнов в платежных каналах Lightning Network, обеспечивая необходимую ликвидность для поддержки значительный рост за последний год сети Lightning Network (LN).

    Эта веха является первым этапом в работе платформы Lightning Network компании, обеспечивающей инфраструктуру, решения и ликвидность для поддержки развития сети и получения вознаграждения в процессе.

    Сеть Lightning, платежный протокол уровня 2, построенный поверх блокчейна Биткойн, состоит из узлов (компьютеров), на которых работает программное обеспечение LN, подключенных к другим узлам через платежные каналы, что позволяет им пересылать платежи по пути к конечному пункту назначения ( получатель платежа). Каждый платежный канал нуждается в достаточном количестве биткойнов для проведения платежа. LQwD, как LSP или поставщик сетевых услуг Lightning, размещает свои биткойны на узлах маршрутизации, чтобы помочь обеспечить функционирование сети, где можно получить комиссию за переадресацию транзакций. Компания считает, что этот рост, проявляющийся в увеличении количества узлов, платежных каналов и общей пропускной способности сети, будет продолжаться. Компания намеревается создать как можно большую зону покрытия, чтобы получать комиссионные за транзакции по мере роста объема сети.

    Недавние примеры использования Lightning Network были продемонстрированы в Сальвадоре крупными торговыми сетями, такими как McDonalds и Starbucks, использующими ее для оплаты, а также Twitter, позволяющим оставлять чаевые на своей глобальной платформе социальных сетей с 200 миллионами активных пользователей в день. .

    Демонстрируемый рост Lightning Network с 1 января 2021 года:


    Январь 2021

    октябрь 2021 г.

    % Увеличение

    Узлы

    15 440

    27 376

    77%

    Каналы

    36 412

    74 221

    103. 80%

    Емкость сети

    1 052

    2 971

    182,40%





    Текущая пропускная способность сети: 142 610 0431 052 долл. США

    Источник: 1ml.com

    Для получения дополнительной информации о сети Lightning посетите сайт LQwDFintech.com или LQwDFintech.com/ln-stats/.

    О LQwD

    LQwD — компания, специализирующаяся на предоставлении услуг Lightning Network Service Provider (LSP), разрабатывающая платежную инфраструктуру и решения. Миссия компании заключается в разработке услуг институционального уровня, которые поддерживают сеть Lightning Network и обеспечивают улучшенную функциональность, возможности транзакций, принятие пользователями, а также полезность и масштабирование Биткойн. LQwD также использует биткойн в качестве операционного актива для создания узлов и платежных каналов в сети Lightning.

    Прогнозные заявления

    Этот пресс-релиз содержит «прогнозную информацию» по смыслу применимых законов о ценных бумагах, касающихся бизнес-планов Компании и перспектив отрасли Компании. Хотя Компания считает, что в свете опыта ее должностных лиц и директоров, текущих условий и ожидаемых будущих изменений, а также других факторов, которые были сочтены целесообразными, ожидания, отраженные в этой прогнозной информации, являются разумными, не следует чрезмерно полагаться на них. на них, потому что Компания не может гарантировать, что они окажутся правильными.Фактические результаты и события могут существенно отличаться от тех, которые предусмотрены в этих заявлениях. Заявления в этом пресс-релизе сделаны по состоянию на дату этого выпуска, и Компания не берет на себя ответственности за их обновление или пересмотр с целью отражения новых событий или обстоятельств, за исключением случаев, предусмотренных действующим законодательством о ценных бумагах. Компания не берет на себя обязательств комментировать анализ, ожидания или заявления, сделанные третьими сторонами в отношении Компании, LQwD Financial, их ценных бумаг или их соответствующих финансовых или операционных результатов (если применимо).

    Ни TSX Venture Exchange, ни ее поставщик услуг по регулированию (согласно определению этого термина в политиках TSX Venture Exchange) не несут ответственности за адекватность или точность этого выпуска.

    ИСТОЧНИК LQwD FinTech Corp.

    Ссылки по теме

    www.coronadoresourcesltd.com

    Что такое сеть Bitcoin Lightning?

    Сеть Lightning — это автономное решение второго уровня для решения проблем масштабируемости и скорости транзакций Биткойна, которое работает поверх блокчейна.

    Проблема масштабируемости и Биткойн

    Биткойн — ведущая криптовалюта в мире. Однако, как первый в своем роде, он имеет некоторые недостатки. Биткойн относительно медленный, генерируя новый блок для блокчейна только раз в 10 минут, а размер блока ограничен 1 МБ. Кроме того, он обрабатывает только семь транзакций в секунду. Чтобы достичь массового принятия, этот показатель необходимо улучшить. Для сравнения, Visa обрабатывает 24 000 транзакций в секунду.

    Примерно в 2015 году Биткойн начал сталкиваться с тем, что стало известно как проблема масштабируемости, и было предложено множество различных решений. Некоторые, например, стремились увеличить размер блока, чтобы увеличить количество транзакций, которые можно было включить в один блок. Этот подход, как известно, привел к хард-форку Bitcoin Cash в 2017 году, который по существу разделил сообщество биткойнов и лежащие в его основе технологии на две отдельные экосистемы.

    SegWit и решения второго уровня

    В 2017 году было реализовано еще одно решение, называемое сегрегированным свидетелем (SegWit).Он работает, удаляя данные подписи из биткойн-транзакций. Биткойн-блок содержит данные транзакции и данные цифровой подписи о происхождении и назначении BTC в любой транзакции блокчейна, но SegWit отделяет свидетеля (цифровую подпись) от данных транзакции. По сути, он более эффективно перестраивает данные в любом заданном блоке, позволяя вдвое увеличить размер блока Биткойн (примерно 2 МБ на блок). Хотя по состоянию на 2020 год уровень его принятия был довольно низким (всего около 36% сети Биткойн).В дополнение к удвоению размера блока, SegWit позволяет решить проблему масштабируемости решениями второго уровня, такими как Lightning Network.

    При включенном построении второго уровня другие решения проблемы масштабируемости стремятся сохранить структуру исходного протокола Биткойн и сосредоточиться на методах вне цепочки для повышения масштабируемости. Вместо того, чтобы изменять основную функциональность блокчейна Биткойн, решения такого типа оставляют исходный блокчейн как есть и добавляют второй уровень поверх него, чтобы повысить его эффективность.Одним из наиболее многообещающих решений проблемы масштабируемости Биткойна является сеть Lightning.

    Как функционирует сеть Bitcoin Lightning

    Сеть Lightning — это то, что известно как решение проблемы масштабируемости вне цепочки или второго уровня, и оно работает поверх блокчейна. Он создает частный двусторонний канал между пользователями, что позволяет проводить несколько транзакций за пределами основного блокчейна без делегирования права хранения средств. Затем эти транзакции окончательно записываются как одна единая транзакция в основной цепочке блоков.Теоретически Lightning Network может обрабатывать миллионы транзакций в секунду.

    Сеть Bitcoin Lightning предназначена для небольших транзакций, которые можно отправлять с минимальной комиссией. Отчасти его привлекательность заключается в том, что небольшие транзакции, даже микроплатежи, могут быть отправлены мгновенно за небольшую комиссию, если таковая вообще имеется. Представьте, что вы и ваш друг попеременно покупаете друг другу кофе каждый день в течение недели — вместо того, чтобы платить друг другу после каждого раза, вы могли бы просто помириться в конце недели.Канал двусторонних платежей в Lightning Network работает аналогично и защищен смарт-контрактами. Если в какой-то момент одна из сторон закрывает канал, окончательный баланс устанавливается на исходном уровне блокчейна. Lightning Network также добавляет дополнительный уровень конфиденциальности к транзакциям в блокчейне, поскольку микроплатежи между двумя пользователями не транслируются публично по всей сети.

    Использование сети Lightning не является обязательным, и отдельные узлы сети Биткойн могут выбирать, участвовать в ней или нет.Более крупные транзакции, требующие большей безопасности, по-прежнему могут выполняться на исходном уровне блокчейна.

    Будущее сети Lightning Bitcoin

    В настоящее время над созданием сети Lightning работают три основные команды: Blockstream, Lightning Labs и ACINQ. В марте 2018 года генеральный директор Lightning Labs Элизабет Старк выпустила бета-версию демона Lightning Network для разработчиков. С тех пор сеть Lightning Network постоянно развивалась перед ее окончательным релизом.Также были опубликованы спецификации приложений, чтобы разработчики могли начать создавать приложения, работающие с Lightning Network.

    Если сеть Bitcoin Lightning Network окажется успешной для решения кризиса масштабируемости биткойнов, то, как и сам биткойн, она может проложить путь другим криптовалютам, чтобы последовать их примеру в попытке повысить собственную пропускную способность. И если несколько криптовалют примут поддержку Lightning Network, то появится еще больший потенциал для дальнейшего развития взаимодействующих блокчейнов.

    Cryptopedia не гарантирует достоверность содержимого Сайта и не несет ответственности за любые ошибки, упущения или неточности. Мнения и взгляды, выраженные в любой статье Cryptopedia, принадлежат исключительно авторам и не отражают мнения Gemini или ее руководства. Информация, представленная на Сайте, предназначена только для информационных целей и не является одобрением каких-либо обсуждаемых продуктов и услуг или советом по инвестициям, финансам или торговле.Перед принятием финансовых решений следует проконсультироваться с квалифицированным специалистом.

    Обновлено: 12.02.2022 — 13:12

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *