Технология Lightning Network для сети блокчейна Bitcoin BTC

Технология Lightning Network для сети блокчейна Bitcoin (BTC)
Технология Lightning Network для сети блокчейна Bitcoin (BTC)

Подробно разберем как работает технология Lightning Network и какова ее роль для развития сети биткоин.

В части 1 посмотрим, зачем это надо. В части 2 обсудим поверхностно общую идею платежных каналов, Lightning Network и проблемы. В части 3 введем необходимые строительные блоки. В части 4 наконец-то опишем более строго детали работы платежного канала. В части 5 по-быстрому построим Lightning из платежных каналов, расскажем про критику и комиссии. В части 6 немного подытожим.

Навигация по материалу:

  • 1 Зачем нужен Lightning Network?
  • 2 Идея лежащая в основе технологии
    • 2.1 Платежный канал
    • 2.2 Сеть платежных каналов
    • 2.3 Проблема доверия
  • 3 Смарт-контракты в сети биткоин
    • 3.1 Авторизация
    • 3.2 Кооперация
    • 3.3 Сроки
  • 4 Реализация платежного канала
    • 4.1 Открытие канала
    • 4.2 Использование канала
  • 5 Как работает Lightning Network
    • 5.1 Маршрутизация сети
    • 5.2 Экономика комиссий
    • 5.3 Критика технологии
  • 6 Развитие и интеграция Lightning Network сегодня
    • 6.1 Соонователь Lightning Labs пока не рекомендует поднимать узлы на мейннете.

Зачем нужен Lightning Network?

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

Это, разумеется, совсем не способствует масштабируемости: блокчейн занимает десятки гигабайт на диске, майнеры сжигают электричества больше, чем некоторые страны, блоки переполнены, комиссии растут, люди ругаются и форкают биткоин. Поэтому в данный момент активно разрабатываются альтернативные решения. Одним из таких решений являются Lightning Network (далее LN).

Q: When will the Lightning Network be rolled out?
A: The rollout has already begun. This is an iterative distributed learning process; it’s unlikely there will be a single point in time at which we say LN is «deployed» because it will grow organically. Software is never finished.

— Jameson Lopp (@lopp) 1 января 2018 г.

Идея лежащая в основе технологии

Идея решений второго уровня (second layer solutions), к которым и относится LN, звучит довольно просто.

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

Звучит интригующе, но совсем непонятно как…

Платежный канал

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

  • Алиса и Боб отправляют депозиты на адрес, который управляется ими совместно с помощью двух приватных ключей.
  • Каждый из них создает специальную транзакцию — смарт-контракт (да, в биткоине есть смарт-контракты, об этом в следующей части). Эта транзакция корректна, но пока не записывается в блокчейн.
  • Изначально транзакции содержат информацию о том, что Алиса и Боб могут забрать свои депозиты обратно.
  • Когда Алиса расплачивается с Бобом, они по обоюдному согласию обновляют информацию в этих транзакциях. Алиса соглашается получить меньше изначального депозита, Боб — больше. По сути эти транзакции представляют собой долговые обязательства (IOU, I owe you).
  • Так они могут обмениваться небольшими суммами (в пределах их депозитов) друг с другом, хоть до бесконечности.
  • В какой-то момент любая сторона может решить рассчитаться окончательно. Тогда Алиса (или Боб) просто записывают одну финальную транзакцию в главный блокчейн и получают суммы депозитов с учетом всех промежуточных платежей.
  • Пункты 1–3 в этой схеме называются открытием платежного канала (payment channel, канал микроплатежей). Пункты 4 и 5 — использованием канала. Пункт 6—закрытием платежного канала.

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

    Сеть платежных каналов

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

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

    Так выглядел график платежных каналов на 22.01.2018 (https://lnmainnet.gaben.win).

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

    Конечно, нужно еще искать оптимальные пути между двумя людьми, и еще нужно как-то мотивировать участников обрабатывать чужие платежи. Но начнем с основной проблемы: с проблемы доверия.

    Проблема доверия

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

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

  • Оба депозита от Алисы и Боба хранятся на общем биткоин-кошельке. Если Боб откажется подписывать транзакции, то как Алисе вернуть свой депозит?
  • В процессе расчетов создается много версий долговых обязательств. Предположим, что в основном Алиса платит Бобу. Тогда в финальной версии транзакции Боб получает больше своего депозита, а Алиса — меньше. Но Алиса может схитрить и самовольно записать в блокчейн самую первую валидную версию транзакции, как будто Боб никогда и не получал денег. Что тогда делать Бобу?
  • Если Алиса и Боб передают деньги по сети каналов через Витю, то как они могут убедиться, что Витя действительное передаст деньги, а не заберет их себе?
  • Назовем эти проблемы соответственно: “проблема общего депозита”, “проблема последней транзакции” и “проблема посредника”.

    Все перечисленные выше проблемы решаются с помощью буквально парочки трюков. Но обо всем по порядку: для начала введем несколько необходимых строительных блоков…

    Смарт-контракты в сети биткоин

    Биткоин поддерживает простейший язык смарт-контрактов Script. В каждой биткоин-транзакции есть специальное поле, которое содержит скрипт на этом языке. Этот скрипт проверяет, при выполнении каких условий выход транзакции может быть потрачен.

    “Потратить выход транзакции A” — это на самом деле более технически корректный способ сказать “потратить деньги с адреса/кошелька K, на который они были зачислены с помощью транзакции A”.

    В отличии, например, от эфириума, возможности смарт-контрактов биткоина намного более ограничены. Связано это с тем, что Script не является полным по Тьюрингу. Например, в нем нельзя использовать циклы/рекурсию и нельзя создавать переменные (отсутствует память).

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

    Рассмотрим несколько важных операций этого языка.

    Авторизация

    Пожалуй, самая стандартная часть любой транзакции — это проверка подписи. Пусть транзакция A зачисляет средства на некий адрес K. Чтобы дальше потратить деньги с K, нужно доказать...






    НовостиICOБиржи криптовалютЗаймыКредитные картыКредитыРазноеТрейдингФорексХайпы

    Технология Lightning Network для сети блокчейна Bitcoin (BTC) | Биржа криптовалют Bitonic

    Технология Lightning Network для сети блокчейна Bitcoin (BTC) | Что хорошего в кредитной карте онлайн?

    Технология Lightning Network для сети блокчейна Bitcoin (BTC) | Мастерская по стиралкам. Недорогие ремонты

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *