Lightning Network: все технические детали

39
ПОДЕЛИТЬСЯ

understanding-the-lightning-network-part-building-a-bidirectional-payment-channel

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

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

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

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

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

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

ln1

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

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

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

ln2

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

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

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

ln3

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

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

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

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

ln4

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

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

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

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

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

ln5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ln6

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

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

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

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

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

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

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

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

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

ln7

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

Сеть

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

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

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

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

ln8

Ну, почти все.

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

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

Контракты с хешированием и временной блокировкой

Итак, Алиса хочет обменять 1 биткойн на значение у Боба с помощью HTLC (Боб и Кэрол хотят того же самого, но забудем пока об этом). Для этого Алиса отправляет биткойн на новый адрес с мультиподписью, где биткойн блокируется. Разблокировать его можно двумя способами: Боб может сделать это, указав свою подпись и значение, а Алиса — указав только свою подпись. Однако во втором случае действует CLTV-блокировка: Алиса может подписать и отправить в сеть транзакцию только по прошествии, скажем, двух недель.

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

ln9

Но на самом деле контракты HTLC необходимы на уровне сети.

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

Важно отметить, что Боб должен получить значение от Кэрол раньше, чем Алиса получит шанс потребовать свой биткойн обратно, в противном случае он останется со значением, но без денег. Таким образом, HTLC между Бобом и Кэрол должен истекать раньше, чем HTLC между Алисой и Бобом (например, через 10 дней и 2 недели соответственно; по этой же причине в HTLC необходимо использовать блокировку CheckLockTimeVerify (CLTV), а не CheckSequenceVerify (CSV)).

ln10

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

Lightning Network

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

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

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

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

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

Причина, по которой Бобу придется подождать 1000 блоков, такая же, как и раньше: это позволяет Алисе забрать 1 биткойн в том случае, если Боб попытается подписать и отправить в сеть старое состояние канала. Это приводит нас ко второму способу разблокирования нового выхода: Алиса может “украсть” деньги, если укажет (самый новый) секрет Боба. Но если она попытается смошенничать и отправит в сеть устаревшее состояние канала, Боб сможет получить 1 биткойн, воспользовавшись секретом Алисы (ему даже не придется указывать значение).

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

Что же мы имеем на текущий момент?

У Алисы и Боба есть по транзакции-обязательству. Если Алиса отправит свое обязательство в блокчейн, она немедленно отправит 5 биткойнов Бобу. Она также может подождать 1000 блоков и забрать 4 биткойна. Кроме того, у Боба есть 2 недели на то, чтобы предоставить значение и забрать 1 биткойн из HTLC-выхода (если он не предоставит значение за 2 недели, Алиса сможет вернуть этот биткойн себе).

Боб может в любой момент отправить свое обязательство в блокчейн и немедленно отправить 4 биткойна Алисе, а также он может подождать 1000 блоков и забрать 5 биткойнов (кроме того, как было сказано чуть выше, он может забрать 1 биткойн из HTLC-выхода, предоставив нужное значение).

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

lln1

Фиксация состояния

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

Алисе это известно, и она никак не может украсть у Боба его биткойн — даже если она каким-либо образом узнает значение.

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

lln2

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

Теперь вам должна быть понятна реальная мощь сети Lightning Network:

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

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

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

lln3

Аарон ван Вирдум (Aaron van Wirdum)

Источник: bitcoinmagazine.com

39 КОММЕНТАРИИ

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

  2. Теперь вам должна быть понятна реальная мощь сети Lightning Network:

    эммм. нуууу Да да – все ясно ))))

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

  4. прочитал статью дважды вместе с коментами. и вот, что я понял – заключать договор посредством мультиподписи для двухстороннего канала ни одна биржа не будет по причине описанной elite. гарантия одностороннего канала зыблется на выполнении условий. вот и вопрос такой возник : этож какие условия надо выставлять, чтобы канал надежно работал?

    вот к примеру : 100 битков проплачиваем за интернет в аду скоростью 1кб :`( на 100 млрд лет вперёд. и тут внезапно через 6 млрд лет гаснет солнце! наш интернет под угрозой и только, если в условии контракта было записано что-то типа: “если солнце погаснет, поставщик обязуется зажечь солнце в течении 1 наносек. и возобновить через 2 наносек. услугу иначе будет забит ссаными тряпками насмерть.”, – то тогда и только тогда канал надёжен или я чего упустил?

  5. “Они подписывают свои транзакции-обязательства и отправляют их друг другу.

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

    Здесь важно отметить что, после того когда Алиса получила транзакцию-обязательства от Боба, она еще не может считать что имеет 5 биткойнов. Только после получения Бобиного секрета из первого сценария, она может отправить товар Бобу.

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

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

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

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

  6. Lighning Network – LN – система, когда два участника могут заблокировать, например 100 биткойнов каждый, после чего переводить между собой мелкие транзакции бесплатно и когда мелочи наберется на 100 биткойнов – ретранслировать в блокчейн, заплатив, например 100 долларов за ретрансляцию в блокчейн.

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

    Биткойн биржа не будет блокировать для вас 100 биткойнов, так как у биткойн биржи прото нет таких ресурсов – блокировать для каждого пользователя по 100 биткойнов. Поэтому LN будет работать только в одну сторону – от Вас к централизованной бирже.

    Если спрос VISA в 20 000 транзакций в секунду вместить в предложение 1MB блок, равный 7 транзакций в секунду, то цена будет повышаться до тех пор, пока люди не перестанут выводить свои средства. Возможно этот уровень держится уровне стоимости транзакций в SEPA и SWIFT, то есть 25 – 50 долларов за транзакцию. Но так как биткойн не зависит от банков, то возможно более ценные потребительские качества поднимут стоимость транзакции до 100-200 долларов за ретрансляцию в блокчейн.

    Банкам и правительствам становится выгоден такой сценарий развития событий, они проведут DDoS атаку на крипты с большим размером блока, на BIP101, подкупят разработчиков Bitcoin Core, новостные ресурсы типа bitnovosti, и под видом борьбы с централизацией заблокируют любые попытки поднять размер блока. Инвестиции в майнинг со стороны банков также позволят держать биткойн под контролем. Майнинг окупится не только за счет награды, но и за счет будущих транзакций по 100 долларов (которых будет не больше 300 тыс в сутки). Банки уже скупают обанкротившиеся майнинговые компании.

    Развитие Lighting Network – по сути система банковского обслуживания, когда вы переводите битконы в банк через блокчейн, а банки делают вам более дешевые переводы вне blockchain, иногда банкротясь и исчезая с вашими биткойнами. Но сначала нужно поднять стоимость транзакции хотя бы до 1 доллара. Только тогда банки начнут внедрять так называемый LN, систему микроплатежей вне блокчейна от вас к банку.

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

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

      • Да, канал LN будет работать только в сторону от пользователя к бирже.

        От биржи к пользователю канала LN не будет. Будет обычный перевод в блокчейн с уплатой комиссии 100 долларов.

        Я где-то утверждал обратное?

        Вы оспариваете нечто, что я не утверждал.

    • elite, похоже вы пишите прямо из Ада. Помню смотрел одну юмористическую передачу, где комики-атеисты рассказывали ‘мол’ как на самом деле устроен Ад. Так вот в Аду надо работать, и есть два варианта работы. Либо вкатывать камень на бесконечную гору, либо писать комментарии в новостные сайты. Только прочитал заголовок статьи, и сразу пишешь комментарий, саму статью читать не разрешается.

      Исправлю ваш первый абзац, дальнейший флуд читать не вижу смысла:
      Lighning Network – LN – система, когда два участника могут заблокировать(не то чтоб могут заблокировать, а блокируют. Если они хотят открыть платежный канал, оба должны в одной транзакции поставить свои подписи. Если один не подписывается, то транзакция не действительна и средства обоих остаются на свободе, то-есть канал не открывается.), например 100 биткойнов каждый, после чего переводить между собой мелкие транзакции (можно и большие транзакции, главное что-бы сумма балансов обоих участников канала была бы 200 биткойнов и баланс каждого из участников не был отрицательным) бесплатно и когда мелочи наберется на 100 биткойнов(закрыть канал участники могут в любой момент когда захотят и главное не надо согласия другого участника) – ретранслировать в блокчейн(ретранслируется не вся история платежного канала, а только финальный баланс), заплатив, например 100 долларов за ретрансляцию в блокчейн(комиссия платиться низкая, т.к. в блокчейн попадает только транзакция с финальным балансом).

      • я вам еще раз медленно объясняю.

        Биржа, ничего блокировать в LN не будет, ну разве что 0.001 биткойн.
        Пользователь будет блокировать в LN 100 биткойнов.
        Пользователь будет переводить бирже мелкие транзакции через LN.
        Биржа не будет переводить пользователю через LN
        Биржа будет переводить пользователю через блокчейн, с комиссией 100 долларов.

        • Еще раз пытаюсь объяснить. Вы находите биржу, которая согласна проводить с клиентом операции через LN. Вы генерируете транзакцю, где написано, что вы и биржа отправляете по 100 битов на обший адрес. вы подписываете транзакцию и отправляете ее бирже. Транзакция не будет действительна до тех пор пока биржа ее не подпишет. Биржа не может изменить ни свое количество отправляемых битов(100) ни ваше, т.к. транзакция уже с одной подписью(измененение транзакции делает вашу подпесь не валидной). Единственное что может биржа, так это не подписывать транзакцию. Тогда вы просто идете в другую биржу, а она теряет клиента.

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

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

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

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

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

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

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

          Это совсем не равносильно.
          Вы можете перевести 1 млн рублей на биржу и купить 100 биткойнов. При этом вы сначала заплатите 50 долларов за перевод рублей в системе SWIFT, а потом заплатите 100 долларов за транзакцию в общедоступном blockchain вне системы LN.

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

        • “ни у одной биржи не будет 100 битков умножить на число клиентов для заморозки”

          Биржа возможно не будет иметь резерв биткойнов для каждого клиента. Но даже если у биржи ноль собственных биткойнов, ей и вам выгоден Lighning Network. Например рассмотрим такой вариант:
          вы имеете 100 битов и очень хорошо угадываете скачки курса. Вы собираетесь все 100 битов продать, потом купить, потом продать, ну и так далее. Продажу вы делаете когда цена битка подорожала, куплю – когда упала. Фиат в биржу вводится и выводится за доли секунд. Тоже самое вы бы хотели реализовать и с битками. Представим еще что вы параноик и стараетесь как можно меньше времени держать битки либо фиат на учетной записи биржи. Только произвели операцию обмена, сразу выводите фиат либо битки из биржи. Только вот фиат допустим выводится бесплатно и мгновенно, а вот с битком придется платить комиссию + засорите блокчейн своими многочисленными транзакциями туда-назад. Чтобы этого избежать, вы отправляете 50 битов бирже, она их зачисляет на вашу учетную запись и их-же использует для открытия платежного канала в вами через Lighning Network. Оставшиеся 50 битов вы посылаете бирже уже через открытый платежный канал. Ваш баланс биржи дополняется 50 битами и дальше производятся операции обмена и вывода средств, как только произошла операция. Биржа оставляет открытый платежный канал, и вы постоянно пользуетесь им для ввода и вывода ваших 100 битов. Вы гарантированны насчет перевода битов из биржи + нету комиссии за перевод. Биржа тоже не несет никаких рисков и как только вы продали биты, она спокойно может отдать вам фиат. Без Lighning Network такое реализовать нельзя. Надо отметить, что хотя канал изначально открыт с помощью ваших битов, но как только вы вывели фиат, биты становятся собственностью биржи.

        • То есть нужен фиат?

          Биржа может убежать с фиатом и с 50 битками.
          Это доверие и централизованное решение не лучше банка

        • Но даже если у биржи ноль собственных биткойнов, ей и вам выгоден Lighning Network.

          Но у обычного фиатного банка тоже ноль собственных биткойнов, означает ли это что мне выгоден банк с нулевой комиссией?

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

          Чтобы этого избежать, вы отправляете 50 битов бирже, она их зачисляет на вашу учетную запись и их-же использует для открытия платежного канала в вами через Lighning Network.

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

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

        • “То есть нужен фиат?”
          То есть, да, как бы, что-бы разменять битки на фиат, потом фиат на битки, и т. д., вам придется оперировать битками и фиатом. По моему британские ученные уже давно выяснили, что для того что-бы сделать салат из помидор и огурцов нужны помидоры и огурцы. Или я как то не правильно вас понял?

          “Биржа может убежать с фиатом и с 50 битками.”
          Да, она может убежать, но тогда пропадут только ваши битки. Все остальные участники биржи, с которыми платежный канал уже открыт, битков не потеряют. Тогда как, без Lighning Network биржа кидает сразу всех своих клиентов. Используя Lighning Network биржа может кинуть только тех, кто еще не открыл платежный канал, но уже перевел половина суммы для его открытия.

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

          вы занимаетесь каким-то словоблудием.

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

          Скажите, LN – это чтобы мозги пудрить?

        • “Но у обычного фиатного банка тоже ноль собственных биткойнов, означает ли это что мне выгоден банк с нулевой комиссией?”

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

          “Когда я отправляю 50 биткойнов бирже я плачу комиссию 100 долларов заранее”

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

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

          Речь идет о комиссии майнерам при размере блока 1 мбайт и спросе 20 тыс в секунду

          Биржа как пример только. Речь идёт о любом сервисе.

          На бирже могут быть отложенные ордера. Это требует постоянно держать средства на бирже

        • “у биржи нет 50 биткойнов, чтобы открыть канал для вас”

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

          “Речь идет о комиссии майнерам при размере блока 1 мбайт и спросе 20 тыс в секунду”

          Для открытия и закрытия платежного канала в Lighning Network транзакции должны попасть в блокчейн. Остальные транзакции идут вне блокчейна, то-есть какая бы не была комиссия за блокчейн-транзакцию майнерам, Lighning Network убирает потребность в промежуточных комиссиях. То-есть Lighning Network только улучшает экосистему биткойна. Эта статья называется “Lightning Network: все технические детали” и обсуждение комиссий за блокчей-транзакции не входит в тему этой статьи. Поэтому ваша комиссия 100 зеленых для меня выглядит как взята абсолютно с потолка. На данный момент комиссия за 1 килобайт составляет 0,0006 биткойнов = 0,4 доллара, но правда если вы желаете платить комиссию по 100 зеленых, то майнеры с удовольствием скушают ваши щедрые транзакции. Майнеры зарабатывают с генерации нового блока, и еще по крайне мере 32 года будут получать больше одного биткойна чисто за блок (без учета комиссий). То есть еще примерно 32 года можно особо не заморачиваться насчет комиссий. Вторая очень важная вещь в том, что майнинг общедоступен. Если дело становится очень прибыльным, появляются люди готовые сделать тоже, но подешевле. И что очень хорошо, так это то что инвестиция в манинг дает линейный возврат, то-есть если ты вложил Х денег а кто-то вложил 5Х, то возврат то майнинга тебе Y а тому 5Y. Здесь конечно надо принять условия, что цена за электроэнергию всюду одинакова, и АСИК-чипы достигли своих пределов и производятся всеми за +/- ту-же цену. Если комиссия майнеру поднимется до заоблачных пределов, то фабрики АСИК-чипов начнут всюду расти как грибы после дождя, ведь это очень прибыльно.

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

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

          Для открытия и закрытия платежного канала в Lighning Network транзакции должны попасть в блокчейн. Остальные транзакции идут вне блокчейна, то-есть какая бы не была комиссия за блокчейн-транзакцию майнерам, Lighning Network убирает потребность в промежуточных комиссиях. То-есть Lighning Network только улучшает экосистему биткойна. Эта статья называется “Lightning Network: все технические детали” и обсуждение комиссий за блокчей-транзакции не входит в тему этой статьи. Поэтому ваша комиссия 100 зеленых для меня выглядит как взята абсолютно с потолка.

          Сторонники Bitcoin core утверждают, что размер Блока увеличивать сейчас не нужно. Якобы это приводит к централизации. Рост комиссии в 10 раз за год и полное отсутствие понимания, где этот рост остановится, не смущает их. Пропагандируется, что LN позволит переключить все транзакции на LN. А блокчейн будет как межбанковский рынок переводов – дорого, но надежно. Я показал, что LN помогает очень слабо. Возникает централизация другого рода, сервисы типа бирж могут убегать с деньгами. Создание LN очень дорого, не дешевле очень дорогих блокчейн транзакций. И оплачивается создание каналов опять пользователями, а не сервисами. И все риски опять на пользователях. Опять появятся крупные банки, которые будут всасывать все в себя. А потом биткойн банки опять при возврате средств будут просить вас доказать чистое происхождение денег. Это централизация. Благодаря LN.

          В итоге LN в большинстве случаев не сильно уменьшает число блокчейн транзакций и не улучшает децентрализацию.

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

          Я предлагаю послать LN в мусорку, за ненадобностью , и просто каждые 2 года увеличивать размер Блока в 2 раза.

          На данный момент комиссия за 1 килобайт
          Растёт в 10 раз каждый год.

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

          Насчет размера блока и Lighning Network: вне зависимости какой будет размер блока, будь то 1MB или 10MB, или даже 100MB, Lighning Network избавляет от уплаты комиссий (они нужны только при открытии и закрытии канала) и гарантирует мгновенное (Lighning в переводе значит молния) удостоверение на получение биткойнов.

          “Я показал, что LN помогает очень слабо”
          Я не знаю кому и что вы там показывали. Но могу сказать что, собака лает – караван идет. Lighning Network только улучшит экосистему биткойна вне зависимости от того какой будет размер блока, и вне зависимости от того кому и что вы там будете показывать.

          “Каналы можно создавать уже сейчас через мультиподписи.”
          Именно это и делает Lighning Network – канал создается на основе мультиподписи и других хитрых криптографических механизмов.

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

        • ответ дан в моем предыдущим коменте

          Какой ответ? О том, что биржа ничем не рискует, но имеет доступ к моим биткойнам?

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

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

          Банк в случайный момент закрывает все каналы пользователей, открытый на биткойны пользователей, и исчезает в неизвестном направлении.

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

          А у вас, батенька, в Аду интернет столько потянет

          У меня 10 мбит в секунду. Блокчейн сейчас потребляет 1 кбит в секунду. Запас в 10 тыс раз.
          Наверное это Вы в Аду, раз у вас интернет 1 кбит в секунду. Даже на модемах столько не было.

  7. А я вот дальше третьего абзаца не осилил.
    Для продвинутых чайников можно объяснить как будет выглядеть кошель на экране мобилы – кнопки ПОСЛАТЬ НАПРЯМУЮ, ПОСЛАТЬ ЧЕРЕЗ ЛАЙТНИНГ, ОТКРЫТЬ/ЗАКРЫТЬ КАНАЛ, ВЕСТИ ДЕПО и т.п. будут, или что надо будет делать Бобику с Алиской по-простому чтобы он ей заплатил за вчерашний (а может и завтрашний) вечер?
    Ведь главное то чтобы это было просто, вдаваться в программинг и схемы то средний юзверь не будет.

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

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

    • Для этого и нужно ограничение по времени в платежных каналах. То есть в худшем случае, что может произойти если один из участников “исчезнет” – монеты зависнут до истечения срока действия канала. Однако, поскольку конкуренция провайдеров платежных каналов будет жесткая, с ненадежным участником просто никто не будет иметь дел в дальнейшем. Никакого третьего лица тут не требуется.

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

    Получается что сети типу лайтинга это 3-я сторона – крипто-банк который хранит биткойны до востребования и делает мгновенные дешевые переводы внутри своей банковской сети.

    Такие сети (банки) будут кардинально отличаться от банков которые существуют сейчас: открытая конкуренция, открытый код, никаких лицензий/откатов/дозвылыв/мошеннических схем. Любой сможет открыть крипто-банк. Любой сможет открыть сколько угодно и где угодно счетов.
    Проблема только одна – 3я сторона. ( Вернулись к тому от чего отталкивались. 🙂 🙂 ) Но первооткрывателям, будущим крупнякам, будет не выгодно кидать клиентов. Будет открытая борьба за клиентов и робота на репутацию, ведь перспективы Огромные.

    Такой расклад много кому не выгодный. Немногие продолжат пользоваться Coinbase и т.п. сервисами. Банкиры и правительства тоже будут в ярости…

    • Аналогия довольно точная. Но если разобраться со схемами внимательно, можно увидеть, что такой “крипто-банк” не может “кинуть” клиента. Самое страшное, что может произойти – деньги клиента просто подвиснут до конца срока действия платежного канала. Но потом все равно к нему вернутся.

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

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

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

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

        • Информация об открытии/сроке действия/закрытии канала будет храниться в блокчейне биткойна? Биткойн еще будет под это допилен?

        • Там и допиливать нечего – обычная мультисиг-транзакция, просто хитрозакрученная и в комбинации с ограниченной по времени транзакцией. Все необходимое для этого в протоколе уже есть, последний кирпичик (CSV) только что одобрен майнерами и скоро вступит в силу. Дело за практической реализацией LN.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here