​Лайтнинг-адреса

​Лайтнинг-адреса

Некоторые уже знают, что сатоши можно отправлять прямо на лайтнинг-адрес в формате username@domain. Но как это работает?

В этом посте мы разберем как работает лайтнинг-адрес, а также ознакомимся с основами инвойсов в сети Молния и протоколом LNURL-pay.

Основы лайтнинг-инвойсов

Лайтнинг-инвойс – это стандарт для отправки и получения средств в сети Молния. Если вы хотите получить несколько сатоши, вы должны создать инвойс, используя свой лайтнинг-кошелек. Инвойс – это не что иное, как текстовая строка (начинающаяся с lnbc...), которая содержит, помимо прочего, идентификатор получателя и сумму. На самом деле инвойс содержит больше информации (подробнее с его структурой можно ознакомиться тут). Инвойс обычно передается с помощью QR-кода, который представляет собой визуализацию строки, описанной выше.

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

Однако у лайтнинг-инвойсов есть ряд ограничений. Представьте, что вы ютьюбер и хотите добавить в описание к своим видео статичный QR-код, чтобы ваши подписчики могли отправлять вам донаты. У каждый инвойса есть ограничение по сроку действия (обычно 1 час) и не может быть оплачен более одного раза. Это связано с тем, что некоторые узлы при маршрутизации платежа запоминают случайное число (payment_preimage), поэтому оплачивать один счет несколько раз небезопасно, ведь оставляет возможность проведения мошеннических схем. Что же делать? Использовать LNURL-pay!

Основы LNURL-pay

LNURL-pay – это стандарт, который позволяет создать статический QR-код, который может быть оплачен несколько раз. Как это работает?

По своей сути, это не что иное, как URL-ссылка на веб-сервис, использующий протокол HTTPS. Ссылка закодирована с помощью bech32. Огромным преимуществом с точки зрения удобства использования является тот факт, что QR-коды неотличимы для человека, поэтому пользователю неважно, оплачивает ли он обычный инвойс или LNURL-pay.

Процедура оплаты:

  1. Пользователь сканирует QR-код (LNURL-pay), используя свой лайтнинг-кошелек.
  2. Кошелек декодирует QR-код, затем декодирует строку bech32, получает URL и посещает его через HTTPS.
  3. Сервис отвечает кошельку сообщением с запросом (сумма может быть фиксированной).
  4. Пользователь вводит сумму и отправляет эту информацию сервису.
  5. Сервис возвращает классический лайтнинг-инвойс на сумму, выбранную пользователем.
  6. Кошелек оплачивает счет.

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

Лайтнинг-адреса

Теперь, когда мы ознакомились с принципом работы инвойсов и LNURL-pay, понять лайтнинг-адреса не составит труда. Помните, как в LNURL-pay нам нужно сканировать QR-код, чтобы получить HTTPS-ссылку? В случае лайтнинг-адресов вам не нужно сканировать никакой QR-код. Например, если ваш адрес 21ideas@getalby.com, ваш кошелек трансформирует его в URL https://getalby.com/.well-known/lnurlp/21ideas. Другими словами, ссылка не получена из QR-кода, а "скомпилирована" из лайтнинг-адреса. Ваш кошелек заходит на этот URL и получает ответ в виде уже известного нам запроса LNURL-pay с оплачиваемой суммой (пункт 3 выше). Далее процедура идентична уже описанной.

Практика

Многие кастодиальные кошельки/решения сегодня автоматически генерируют для вас лайтнинг-адрес. Если вы хотите отправить саты на этот адрес, просто вставьте адрес в "поле инвойса" в вашем лайтнинг-кошельке. Это поддерживается большинством кошельков, например Phoenix или Lightning Tip Bot. Другое решение – использовать инструменты, доступные на вашем собственном лайтнинг-узле (например, LNBits, LnMe или другие), чтобы получить возможность получать сатоши некастодиально.

  • Вводная статья о сети Лайтнинг доступна по этой ссылке.
  • Полный список кошельков и сервисов с поддержкой лайтнинг-адресов – тут.

Материал оказался полезен? Поддержите проект: