Скажем, мы с вами хотим открыть платежный канал.
1) Вложение средств в Lightning
. Мы оба отправляем 0,05 BTC на общий мультиподписной адрес 2 из 2. Для этого требуется транзакция в блокчейне Биткойн.
В качестве «балансового отчета» каждый из нас создает мультиподписную транзакцию 2 из 2, которая выплачивает 0,05 BTC вам и 0,05 BTC мне. Я подписываю одну платежную транзакцию и передаю ее вам. Если вы хотите ввести его в действие, вам нужно только добавить собственную подпись и передать ее в сеть Биткойн. Наоборот, вы даете мне свою копию платежной транзакции, которую вы подписали, а я еще нет.
Эти «балансовые отчеты» являются обычными транзакциями с мультиподписью 2 из 2 в сети Биткойн, просто они еще недействительны, потому что в каждой из них отсутствует одна подпись. Обратите внимание, что эти односторонние транзакции выплат блокируют выплаченные средства исполняющей стороны на некоторое время.
2) Оплата
Теперь я хочу заплатить вам 0,01 BTC. Каждый из нас создает новую транзакцию выплаты («балансовый отчет»), как и раньше, но в этой говорится, что вы получаете 0,06 BTC, а я получаю 0,04 BTC. Каждый из нас, как и прежде, получает транзакцию, подписанную другим.
Чтобы гарантировать, что ни один из нас не сможет использовать старую транзакцию выплаты, которую другой подписал ранее, каждый из нас создает «анти-читерскую» транзакцию: это транзакция, которая тратит выходы из нашей первой транзакции выплаты на другую.
Т.е. когда я пытаюсь активировать (устаревший) баланс 0,05 - 0,05 BTC, мои выплаченные средства блокируются на несколько блоков. Это дает вам время для трансляции «анти-читовой» транзакции, в которой я подписал, что мои 0,05 BTC будут отправлены вам.
Тем не менее, я могу безопасно передать эту транзакцию вам и всей сети, потому что «анти-чит» может быть активирован только в ответ на мошенническое использование старого баланса. Кстати, именно из-за этого античитерского механизма Lightning нуждается в исправлении Transaction Malleability от Segregated Witness.
При настройке, как описано выше, мне нужно было бы быть в сети, чтобы поймать вас на попытке обмана, но, очевидно, для меня было бы небезопасно держать каналы оплаты открытыми, если бы мне приходилось оставаться в сети все время. Итак, чтобы побудить других помочь с «анти-читерской» транзакцией, мы установили небольшую часть «анти-читерской» выплаты в качестве вознаграждения, которое может потратить каждый. Теперь мы можем доверить античитерскую транзакцию всем узлам в сети, чтобы каждый мог следить за трансляцией старых балансовых отчетов. Когда это происходит, любой может подписать награду себе и транслировать «анти-чит».
3) Сетевой платеж
Хорошо, теперь вы и я можем отправлять деньги туда и обратно тысячи раз с почти мгновенным эффектом (зависит только от того, насколько быстро мы можем общаться друг с другом), не добавляя ни одной транзакции в блокчейн Биткойн. Тем не менее, с другой стороны, если бы один из нас когда-либо попытался обмануть другого, он был бы немедленно привлечен к суду, разрешив спор в блокчейне в ущерб себе. Довольно стильно, но пока не очень полезно.
По теории шести степеней разделения, каждый подключен к любому другому участнику всего за несколько переходов. Предположим, вы хотите отправить деньги Бобу, бариста, который только что приготовил вам кофе. Боб — друг Алисы, а у меня есть Платежный канал с Алисой. Для наглядности предположим, что в каждом платежном канале есть два биткойна, разделенных поровну. У вас нет прямой связи с Бобом.
Наша «сеть» теперь выглядит так:
You <-- 1BTC ----- 1BTC --> Me <-- 1BTC ----- 1BTC --> Alice <-- 1BTC ----- 1BTC --> Bob
Теперь, поскольку у вас нет прямого канала оплаты Бобу (и было бы очень неэффективно, если бы вам приходилось создавать канал оплаты с каждым деловым партнером, которого вы когда-либо встречали), вы направляете платеж через сеть. Вместо того, чтобы просто писать обновление баланса между Бобом и вами, как я описал выше, это становится согласованным усилием: ваш кошелек находит маршрут от вас к Бобу, который имеет а) достаточную ликвидность, б) наименьшие комиссии и в) наименьшее количество переходов. . Для совершения платежа каждый задействованный платежный канал обновляет свои балансы. При оплате 0,01 BTC за кофе это обновляет нашу сеть до:
You <-- 0.99BTC ----- 1.01BTC --> Me <-- 0.99BTC ----- 1.01BTC --> Alice <-- 0.99BTC ----- 1.01BTC --> Bob
Как видите, балансы на концах соответственно сместились от вас к Бобу, но у других участников такой же баланс (хотя и сместился на другие платежные каналы). Важно понимать, что транзакция может пройти только полностью или не пройти вовсе . Либо мы все обновляем балансы, либо никто не делает.
Теперь представьте, что у вас есть не только один платежный канал со мной, но у вас есть, может быть, дюжина платежных каналов с другими пользователями! :)
4) Закрытие канала
по обоюдному согласию. За исключением приведенного выше случая, когда одна сторона закрывает канал в одностороннем порядке, один из нас может попросить другую сторону закрыть канал по обоюдному согласию. Когда мы соглашаемся, мы вместе создаем окончательную транзакцию выплаты, которая не блокирует никакие средства и позволяет немедленно тратить средства после подтверждения. Мы могли бы даже использовать эту транзакцию, чтобы потратить часть нашего баланса напрямую третьей стороне в блокчейне или создать еще один другой платежный канал.
5) Компромиссы
Дальнейшее чтение:
Lightning позволяет вам блокировать монеты между двумя кошельками, а затем отправлять специальные транзакции между каждым кошельком, которые становятся «настоящими» только тогда, когда они добавляются в блокчейн. Но вы этого не делаете, потому что ончейн обходится вам дороже, поэтому вы постоянно обновляете транзакции между собой.
Lightning позволяет не только отправлять транзакции вне цепочки от A к B, но и от A к B, к C и т. д. Что позволило бы создать одну большую сеть, где большинство транзакций происходит вне цепочки, вам не нужно доверять кому угодно и где все транзакции происходят мгновенно.
Lightning Network — это верхний слой блокчейна Биткойн. Давайте подробнее.
Это технология, которая заставляет биткойн работать быстрее, масштабируемее и улучшает биткойн таким образом, чтобы биткойн мог обрабатывать сотни или тысячи транзакций в секунду, прямо сейчас биткойн обрабатывает около семи транзакций в секунду, что очень мало по сравнению с Visa и Mastercard, которые обрабатывают сотни или тысячи транзакций в секунду. Молниеносная сеть Биткойн — это предложение, которое может помочь перейти от семи транзакций в секунду к сотням или тысячам транзакций в секунду без какого-либо центрального объекта и без потери доверия между узлами.
Как работает сеть Lightning?
Это работает у вас и у меня, когда мы можем отправлять друг другу биткойны по каналу, который находится вне блокчейна, поэтому мы устанавливаем канал между собой в блокчейне, мы начинаем общаться друг с другом и отправлять транзакции друг другу вне блокчейна. Мы можем совершать сотни или миллионы таких транзакций, не транслируя их обратно в блокчейн. Когда мы создаем этот канал вне блокчейна, мы можем выполнять любое количество транзакций, не обременяя всю сеть.
Итак, в своем техническом документе они также предложили эту идею, в которой я могу отправить транзакцию другому человеку, не создавая прямой связи с этим другим человеком. Объясню ребята...
Предположим, я и мой друг отправляем транзакцию друг другу вне блокчейна, поэтому может быть, что мой друг подключается к какому-то другому человеку X, поэтому в сети Lightning можно отправить средства от меня человеку X через моего друга. Мне не нужно иметь прямое соединение с человеком X. Это действительно хороший способ распространения средств по сети без установления большого количества прямых соединений, которые также могут обременять всю сеть Lightning.
Это сравнимо с тем, как работает Интернет сегодня. Когда я отправляю пакет, он может пройти через множество разных узлов, и узлам на самом деле все равно, откуда приходит пакет и куда он идет, их заботит только то, куда они должны отправить его дальше и поэтому следующий человек может отправить его куда-то еще, и тогда он, наконец, достигнет конечного пункта назначения. Это похоже на то, как работает сеть Lightning, если у меня есть соединение с моим другом, а мой друг имеет соединение с кем-то еще. Я мог бы отправить средства от себя кому-то еще через моего друга, мой друг даже не знал бы, предназначены ли средства для отправки человеку X или человек X должен отправить человеку Y.
Можно ли доверять этому среднему человеку?
Я хочу отправить немного средств от себя моему другу Сачину, и я хочу отправить эти средства Сачину через посредника Шивама, поэтому у меня есть канал от меня к Шиваму, а затем у Шивама есть канал к Сачину, теперь я хочу отправить свои средства к Сачин. Как я могу доверять Шиваму? Может быть, Шивам берет мои средства себе и ничего не отправляет Сачину, поэтому эта вещь обрабатывается криптографически, и транзакция будет возвращена мне, если Сачин не получит мою транзакцию в течение определенного периода времени.
Проблемы в сети Lightning?
Худшее, что может случиться со мной в этой сети Lightning Network, это то, что какой-то неверный посредник будет удерживать мои средства в течение нескольких дней, и поэтому по прошествии этих дней мои средства будут возвращены по протоколу сети. Еще одна проблема с этой сетью заключается в том, что люди могут использовать множество каналов, они могут мгновенно открывать и закрывать каналы для перегрузки сети. Чтобы открыть канал, нам нужно передать эту информацию в основной блокчейн, поэтому, если какой-то злоумышленник попытается открывать и закрывать сотни каналов в секунду, это может сильно обременить блокчейн. Они в нем работают.
неаумузыкальный