Lightning Network


На основе блокчейна Bitcoin запущена сеть Lightning Network. В ней уже несколько сотен узлов. Любой может стать участником и воспользоваться молниеносными и почти бесплатными переводами.


Представим, что находитесь в кафе и хотите выпить кофе. Поможет ли Lightning Network?


Прямые платёжные каналы


Вы можете построить прямой платёжный канал между собственным узлом и узлом кафе. Если оба Bitcoin-узла уже синхронизированы с основным блокчейном, то вам будет достаточно лишь отправить в блокчейн запрос на создание платёжного канала, при этом зарезервировать некоторое количество BTC для данного канала. Чтобы оплатить кофе потребуется дождаться окончания подтверждения транзакции создания канала в блокчейне, после чего сможете выполнить платёж.


Сравнение прямых платежей


Давайте сравним прямую оплату через Bitcoin-транзакцию и платёж через Lightning Network.


Подготовка


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


Для создания Lightning Network канала требуется доступ к активному узлу Bitcoin-блокчейна. Более того, потребуется и прямое соединение между узлами Lightning Network. Создание платёжного канала Lightning Network должно быть подтверждено транзакцией в Bitcoin-блокчейне.


Платёжная транзакция


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


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


Закрытие канала и вывод средств


В случае прямых Bitcoin-платежей никаких дополнительных операций не требуется. После фиксации транзакции платёж "оказывается" в кошельке продавца.


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


Цепочка платёжных каналов


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


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


Последний километр


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


Простейший ответ — не создавать платёжные каналы Lightning Network на конечных участках (последнем километре). Давайте рассмотрим следующую схему:


Последний километр


Далее будем считать, что узел B может создать заказ, а узел A сможет моментально его оплатить в Lightning Network. То есть путь между узлами существует и в платёжных каналах зарезервировано достаточно средств.


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


  1. Клиент сообщает продавцу, какие товары хочет приобрести.
  2. Продавец просит узел B сформировать платёжный заказ на требуемую сумму.
  3. Продавец сообщает номер заказа клиенту.
  4. Клиент передаёт полученный номер заказа узлу A и просит оплатить.
  5. Узел A оплачивает заказ в Lightning Network.
  6. Узел B сообщает продавцу, что заказ оплачен.
  7. Продавец передаёт заказ клиенту.

Рассмотрим эти шаги на примере ситуации в кафе. Итак, вы выбрали кофе и сообщили об этом продавцу. Он посчитал общую сумму заказа и отправил её узлу B. Для этого на стороне узла B достаточно простого сервиса (или веб-страницы), где для введённой суммы будет выдаваться уникальный номер заказа в Lightning Network.


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


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


POS-оплата


Схема похожа на обычную оплату банковской картой. Ключевая разница в том, что банк-эквайер продавца запрашивает возможность проведения операции у банка клиента. Это возможно, поскольку все протоколы описаны и банки доверяют оборудованию, которое предварительно установлено в кафе (POS-терминал) и выдано вам (банковская карта).


Возможно, что в будущем и в блокчейне появятся и получат распространение подходящие протоколы и оборудование. Тогда узел A запросит у вас авторизацию через узел B. Но это потребует, чтобы ваше оборудование было совместимо с оборудованием в кафе. Гораздо проще потребовать онлайн-доступ к узлу A, сохранив предыдущую схему. А вот передачу номера счёта в Lightning Network всё-таки стоит упростить.


В чём подвох?


Что же мешает вам и соседнему кафе уже сейчас начать использовать предложенную схему? Во-первых, всё ещё не определён правовой статус Bitcoin, Lightning Network и т.д. Все ли готовы рисковать в связи с этим?


Во-вторых, в подходе важную роль играет узел A и узел B, при этом взаимодействие с ними происходит вне Lightning Network. Вопрос в том, как найти эти узлы и договориться с ними?


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


На базе чего будет строиться взаимодействие между клиентом и узлом A? Или между узлом B и продавцом? Ответ простой — на доверии.


Доверие


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


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


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


Остался ещё вопрос про получение денег узлом A от покупателя и продавцом от узла B. Но тут нет никаких ограничений, если выбранный способ будет устраивать обе стороны.


Эпилог


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

Комментарии (22)


  1. ggo
    05.02.2018 09:39

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

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


    1. MR_BYTE
      05.02.2018 11:37

      У тебя вообще такой проблемы не будет. Только ты решаешь, переводить средства или нет. Если деньги были списаны по ошибке, то это лично твой косяк или софта (но это тоже твой косяк, так как ты выбираешь софт).


      1. ildarz
        05.02.2018 11:52
        +1

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


        1. pda0
          05.02.2018 12:41

          Как в DAO. Всемирное голосование и хардфорк сети. :)

          Это вообще главная проблема крипты, которую пока многие отказываются осознать в полной мере. (Не удивительно, мы едва преодолеваем период, когда в сетях криптовалют были одни энтузиасты.) Текущая финансовая система такова не только потому, что жадные люди хотят прибрать к рукам ваши денежки. :) Но и потому, что люди — неустранимо ненадёжные существа. Мы совершали, совершаем и будем совершать ошибки. И если в сети нет механизма, позволяющего эти ошибки исправлять, то применимость у неё весьма ограниченная.

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


          1. MR_BYTE
            05.02.2018 12:56

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


            1. pda0
              05.02.2018 14:42

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


          1. Master_Dante
            05.02.2018 16:13

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


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


            1. pda0
              05.02.2018 22:17

              Не, это так не работает. Такой подход будет лишь уделом гиков. Представьте, что Steam руководствовался бы такой же политикой. Забыли пароль, угнали аккаунт? Самосовершенствуйтесь и начинайте сначала. Его бы вытеснил сервис, который предлагал бы эти услуги.


              1. Master_Dante
                06.02.2018 17:01

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


        1. Master_Dante
          05.02.2018 13:49

          Рынок решит, какой способ более жизнеспособный. Я предпочитаю, чтобы ответственность была на мне. А не на банках и судах, которым я не доверяю. Вся эта мифическая возможность отката транзакций, в реальности выливается в то, что закон работает в пользу власть-имущих. Кроме того дает возможность, в любой момент времени забрать ваши деньги под любым предлогом. Ну и потихонечку залазить в мой карман через механизм инфляции. А да забыл еще про дефолты упомянуть… Люди устали от этого паноса, именно поэтому появились криптовалюты, которые разом решают все проблемы. Ленин был бы счастлив, конечно пока не обрел власть… Так что катись ты со своим правовым статусом. Право, это потребность большинства.


      1. old_bear
        05.02.2018 17:18

        Если деньги были списаны по ошибке, то это лично твой косяк или софта (но это тоже твой косяк, так как ты выбираешь софт).

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


    1. Goron_Dekar
      05.02.2018 12:05

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


  1. MR_BYTE
    05.02.2018 12:03

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


  1. Master_Dante
    05.02.2018 12:18

    Бредовая статья, попытка выразить свое однобокое видение как истинно верное.


  1. Nick_mentat
    05.02.2018 13:18

    Ну можно и обратный подход применить. Пусть все потерянные деньги наошибочных списаниях, будут выплачиваться всем участникам сети равномерно. На первый взгляд кажется абсолютно нелогичным, но подумайте 2 раза. Изъять часть денег у одного,, а затем распределить поровну между всеми, включая этого одного — значит увеличить энтропию денег. А за чей счёт это будет восполнятся? Никто не хочет платить за это. Система в асимптотике стремится к полному равенству количества денег у всех участников. Если у всех равное количество обменных едениц, то еденица обесценивается, как скажем, если бы у всех было равное количество золота в средневековой деревне — значит золото дешёвое. Золото дорогое, только если значительная его часть удерживается в казне, либо вкладывается в инертный капитал, таким образов возникает разная скорость для разного типа капитала, и разный уровень редкости. В таких условиях возможны арбитражные сделки, появляются взаимовыгодные сделки, движется экономика. При условном «комунизме» где у всех равное количество денег, это будет болото и стагнация. Это очень неоптимальное состояние для валюты. Крупные держатели, имеющие большую часть валюты, будут лучше всего чувствовать на себе сдвижки в энтропии, и они же будут иметь наибольшее влияние на курс. В итоге каждая операция возврата денег по такой системе — будет уменьшать курс. При правильном балансе, можно настроить количество держателей валюты таким образом, чтобы процедура возврата возвращала инициатору возврата со среднестатистической суммой денег на счету меньшую сумму, чем та, на которую просядут его накопления по курсу, сразу после этой операции. Таким образом, возврат невыгоден инициатору, и он будет стараться прибегать к нему как можно реже, например — если надо наказать продавца, который прислал рысь, вместо офисного кресла. Тогда это средство будет служить контролем за совестью продавцов, но им не будут злоупотреблять.


  1. maslyaev
    05.02.2018 14:48

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

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


    1. MR_BYTE
      05.02.2018 15:16

      Это не так, похоже вы не до конца изучили протокол, укажите место в протоколе, где появляется не равенство?


      1. Cobolorum
        05.02.2018 16:45

        maslyaev прав.
        1 Депонируя средства в пользу будущих расчетов (которые могут и не состоятся), вы отвлекает собственные средства.
        2 Узлы обладающие значительными свободными средствами будут выступать «концентраторами» соединений как со стороны плательщиков так и со стоны получателей средств.
        Вам становится выгодней иметь дело с монопольным узлом, т.к. вы должны условно один раз разместить 100 у.е. а не 10 по 10. В случаи 100-1 вы помжете совершить платеж в размере до 100 у.е., а в случаи 10х10 только в размере 10 у.е.


        1. MR_BYTE
          05.02.2018 17:24

          Вы правы, возможно так и будет! Но что мне от этого плохого? ))))
          1. Средства мои ни кто не заберет, не заблокирует.
          2. Если узел решил со мной не работать, я буду работать через другой узел. А отказавший мне узел начнет нести убытки.
          3. На счет суммы депонирования проблемы не вижу. Вот почему: каждая транзакция в блокчейне может быть дополнительно открывающей/закрывающей канал. Я могу проводить обычную ончейн транзакцию биткойна и за одно открыть канал (ведь все равно комиссию отдавать) Т.е. если представить, что за один год в блокчейне 90% транзакций одновременно являются и каналами LN, то значит сеть будет огромной! Каждый держатель кошелька биткойна будет иметь огромное количество каналов (с разными балансами) с огромным количество людей. Путь всегда найдется, осталось только алгоритм поиска пути хороший придумать))))
          4. Куда люди тратят деньги? Если взять обычного человека, это: несколько магазинов и других учреждений, у каждого из них будет своя нода (если это не ларек 3 кв. м.) и это реально, так как биткоин не пошел по пути увеличения размера блока. Вот и все, не надо зависить от одного узла.

          Уверен, фактор централизации LN сильно преувеличен. Но майнеры, это тоже своего рода фактор централизации.


      1. maslyaev
        05.02.2018 18:56

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


  1. dkukushkin
    05.02.2018 17:56

    Вместо 1000 слов, мог бы кто-нибудь сказать как это попробовать на практике? Или еще нет такой возможности?

    Т.е. на какой сайт зайти, что нужно ввести, чтобы совершить транзакцию в LN.


    1. MR_BYTE
      05.02.2018 18:27
      +1

      1. Здесь рабочая сеть видна lnmainnet.gaben.win
      2. Так можно открыть ноду bitcointalk.org/index.php?topic=2884838.new Есть много других мануалов.
      Осторожно! Софт сырой!
      Платить пока консольными командами. Т.к. кошелек для ПК и для мобильника еще работают в тестовой сети.
      3. Купить можно это store.blockstream.com В общем мало чего, все еще сырое.