Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

Компания Bitlum, занимающаяся созданием приложений на базе Lightning Network, специально для информационно-новостного портала Coinsider написала цикл статей о работе этой сети. В предыдущей публикации были описаны типы Smart-контрактов, без которых невозможно освоение концепции Lightning Network: htlc, time-lock, 2х2 multisig. Обмена Bitcoin рассмотрим подробнее в статье.

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

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

С функционированием платежного шлюза связано 3 процесса:

  • Открытие шлюза – его регистрация в Blockchain-системе и формирование исходного состояния.
  • Задействование шлюза – использование Smart-контрактов для осуществления транзакции вне Blockchain-системы.
  • Закрытие шлюза – занесение в реестр конечного состояния участников и балансов в Blockchain-систему.

Открытие и закрытие шлюза

Для открытия шлюза Марине и Александру необходимо:

  • Поместить свои средства в общее хранилище, которое называется multisig. Сделать это можно создав и отправив в сеть фондирующий платеж, именуемый funding transaction.
  • Создать транзакцию под названием commitment transaction, отражающую текущее состояние и распределяющую средства из общего хранилища в заданной пропорции.
  • Сохранить сформированный платеж на обеих сторонах. Данную транзакцию также не следует отправлять в Bitcoin-сеть на обработку майнерам.

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

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

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

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

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

Как было сказано выше, в платеже-состоянии содержатся Smart-контракты для каждого из хранилищ, в которых заложен принцип дальнейшего открытия. В нашем случае хранилище №3 может быть открыто только Мариной, а хранилище №4 – только Александром.

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

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

Процесс создания общего хранилища и начального платежа-состояния длится около 8-10 минут и называется открытием шлюза. Отправка данной транзакции в Bitcoin-сеть для раздела средств в установленной пропорции именуется закрытием шлюза. Этот процесс также длится от 8 до 10 минут. Разберем, как подобная система дает возможность осуществлять платежи без использования Blockchain.

Задействование шлюза

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

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

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

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

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

Пример: Предположим, нам нужно продать 15 биткоинов на криптовалютной бирже, но с некоторыми условиями:

  • средства не должны храниться на торговой площадке;
  • обмен цифровых монет должен осуществиться практически моментально.

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

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

Аннулирование состояния

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

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

Внесем несколько изменений:

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

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

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

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

Добавим ограничение на время получение средств, чтобы ни один из участников не мог воспользоваться ситуацией, когда другой находится офлайн. Сделать это можно с помощью time-lock механизма. Если Александр захочет воспользоваться отсутствием Марины и отправит старое состояние первым, то у Марины будет временная фора чтобы оштрафовать Александра.

Как использовать платежный шлюз в Lightning Network для обмена Bitcoin?

Совместное закрытие шлюза

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

Решением этой задачи может быть разделение процесса закрытия шлюза на 2 вида: вынужденный и совместный.

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

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

Если же Александр находится офлайн, и у Марины нет возможности провести совместное закрытие шлюза, она все равно может получить свои средства посредством генерирования последнего платежа-состояния, однако деньги придут только по истечению time-lock периода.

Отправка последнего платежа-состояния в Bitcoin-сеть именуется вынужденным закрытием шлюза.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Похожие статьи