Некоторые уже знают, что сатоши можно отправлять прямо на лайтнинг-адрес в формате username@domain. Но как это работает? В этом посте мы разберем как работает лайтнинг-адрес, а также ознакомимся с основами инвойсов в сети Молния и протоколом LNURL-pay.
Статья подготовлена Тони⚡️. Поддержать проект.
Основы лайтнинг-инвойсов #
Лайтнинг-инвойс – это стандарт для отправки и получения средств в сети Молния. Если вы хотите получить несколько сатоши, вы должны создать инвойс, используя свой лайтнинг-кошелек. Инвойс – это не что иное, как текстовая строка (начинающаяся с lnbc…), которая содержит, помимо прочего, идентификатор получателя и сумму. На самом деле инвойс содержит больше информации (подробнее с его структурой можно ознакомиться тут). Инвойс обычно передается с помощью QR-кода, который представляет собой визуализацию строки, описанной выше.
Затем лайтнинг-кошелек выстраивает в сети несколько путей к получателю, ранжирует их от наиболее выгодного к наиболее затратному и пробует один путь за другим, пока платеж не окажется успешным.
Однако у лайтнинг-инвойсов есть ряд ограничений. Представьте, что вы ютьюбер и хотите добавить в описание к своим видео статичный QR-код, чтобы ваши подписчики могли отправлять вам донаты. У каждый инвойса есть ограничение по сроку действия (обычно 1 час) и не может быть оплачен более одного раза. Это связано с тем, что некоторые узлы при маршрутизации платежа запоминают случайное число (payment_preimage), поэтому оплачивать один счет несколько раз небезопасно, ведь оставляет возможность проведения мошеннических схем. Что же делать? Использовать LNURL-pay!
Основы LNURL-pay #
LNURL-pay – это стандарт, который позволяет создать статический QR-код, который может быть оплачен несколько раз. Как это работает?
По своей сути, это не что иное, как URL-ссылка на веб-сервис, использующий протокол HTTPS. Ссылка закодирована с помощью bech32. Огромным преимуществом с точки зрения удобства использования является тот факт, что QR-коды неотличимы для человека, поэтому пользователю неважно, оплачивает ли он обычный инвойс или LNURL-pay.
Процедура оплаты: #
- Пользователь сканирует QR-код (LNURL-pay), используя свой лайтнинг-кошелек.
- Кошелек декодирует QR-код, затем декодирует строку bech32, получает URL и посещает его через HTTPS.
- Сервис отвечает кошельку сообщением с запросом (сумма может быть фиксированной).
- Пользователь вводит сумму и отправляет эту информацию сервису.
- Сервис возвращает классический лайтнинг-инвойс на сумму, выбранную пользователем.
- Кошелек оплачивает счет.
В итоге 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 или другие), чтобы получить возможность получать сатоши некастодиально.
Вводная статья о сети Лайтнинг доступна по этой ссылке.