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

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

Ответы (3)

Скажем, мы с вами хотим открыть платежный канал.

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 не требуют полной комиссии за транзакцию в блокчейне, но если вы используете другие платежные каналы, они могут захотеть что-то за ликвидность, которую они вам предоставляют. Однако, поскольку другие узлы Lightning конкурируют за перевод вашего платежа за вас, это, вероятно, будет намного ниже, чем полная комиссия за транзакцию в блокчейне.

Дальнейшее чтение:

Хорошо, когда-то я думал, что биткойны будут способом мгновенной оплаты и будут использоваться в магазинах и повседневной жизни, но в другом вопросе об обмене стеками кто-то объяснил мне, что задержка подтверждения транзакций в блокчейне не будет громкой. LN проливает свет на мою предыдущую мысль. Хорошее объяснение. Я прочитаю после статьи о компромиссах между BTC и LN. Я надеюсь лучше понять последствия использования SegWit и LN, если это легко сделать общим принятием, единственное, что я знаю до сих пор, это жалобы на то, что майнеры не будут получать комиссию за каждую транзакцию.
Людям нужно будет время от времени совершать транзакции с блокчейном, верно?
@Jp_: В настоящее время единственный способ для людей осуществлять переводы средств, деноминированных в биткойнах, вне цепочки, — это использовать одну и ту же стороннюю платформу хранения (например, и отправитель, и получатель являются пользователями кошелька Coinbase). Майнеры вообще не имеют доступа к рынку мгновенных транзакций. В Lightning Network создание и закрытие каналов должно происходить в цепочке децентрализовано, поэтому охват майнеров фактически расширяется на рынок, к которому у них никогда не было доступа раньше.
0.01BTC за кофе?! Возмутительно! ;-)
Что касается конфиденциальности, не могли бы вы создать только несколько адресов, которые будут вашим личным первым соединением для платежных каналов, а затем ваши фактические балансы, которыми вы управляете, будут содержаться на других адресах, которые вы циклически используете? Разве это не добавило бы личной конфиденциальности? Таким образом, вы будете использовать свои собственные платежные каналы при тратах, чтобы вас нельзя было отличить от других, использующих ваш канал.
@fredsbend: Вы всегда неотличимы от других, использующих ваш канал, потому что никто не знает больше, чем прыжок до и после себя. Однако, насколько я могу судить, прокси-узлы не дают преимуществ в отношении конфиденциальности. — Я бы с удовольствием подробнее остановился на этой теме на вопросе, если вы его зададите.
@Murch Я все еще читаю на эту тему. У меня было достаточно сложное время для понимания блокчейна, теперь они придумали это. Вероятно, скоро появятся вопросы.
@Murch, Когда вы говорите: «Ваши транзакции не хранятся в блокчейне вечно » , вы имеете в виду, что даже расчетные транзакции не хранятся в блокчейне постоянно?
Нет, просто транзакции вне сети в сети Lightning никогда не попадали в блокчейн. Когда канал закрывается, это должно произойти в транзакции внутри сети, поэтому она записывается навсегда.

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

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

Lightning Network — это верхний слой блокчейна Биткойн. Давайте подробнее.

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

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

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

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

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

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

Можно ли доверять этому среднему человеку?

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

Проблемы в сети Lightning?

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