Author

Topic: HTLC контракты в Lightning Network (Read 126 times)

legendary
Activity: 1442
Merit: 1605
September 06, 2021, 12:12:08 PM
#2
Кроме того, если вы просто хотите попробовать Lightning Network, открытие канала также требует транзакции. Так как мы находимся на стадии внедрения LN, важно, чтобы пользователи могли легко потестировать оплату. Это причина, по которой мы добавили эту функцию в Muun Wallet .
https://play.google.com/store/apps/details?id=io.muun.apollo&/
Muun Wallet- кошелек, который позволяет совершать оплату как в основной сети, так и в LN. Вы по-прежнему контролируете свои личные ключи, которые хранятся только на вашем устройстве, используя ПО вашего телефона.
https://muun.com/

Подводные свопы также могут быть полезны в тех случаях, когда пользователям необходимо перевести часть своих денег в LN, и наоборот. Например, после успешной недели продаж через Lightning, продавцу может потребоваться получить биткоины в основной сети, чтобы платить поставщикам.
Если открытие канала требует ончейн-транзакции, то и закрытие должно требовать такой же транзакции. Верно? Как же тогда в Muun Wallet реализована поддержка оплаты любым из двух путей: ончейн и LN?

Допустим, я получил биткоины через LN на адрес, сгенерированный Muun Wallet'ом. Я хочу отправить эти монеты ончейн. Мне для этого придётся проводить две транзакции: перевод из канала LN в основную сеть и перевод конечному получателю в основной сети. Соответственно, с двойными затратами времени и денег. Верно?

Если так, то нет никакой выгоды в использовании этой технологии. Проще будет получить монеты через основную сеть и отправить их тоже через основную сеть.
legendary
Activity: 1694
Merit: 4213
Перевод
https://blog.muun.com/a-closer-look-at-submarine-swaps-in-the-lightning-network/
Автор FLORENCIA RAVENNA  23 МАЯ 2019

Пристальный взгляд на HTLC контракты в Lightning Network

Чтобы понять суть, нам сначала нужно поговорить о HTLC. Хэш-контракты временной блокировки (HTLC) — это смарт-контракты, которые гарантируют, что получателю переведут средства при выполнении некоторых криптографических условий. Это делается для безопасности.
https://crypto-fox.ru/faq/lightning-network/

HTLC как основа Lightning Network
Допустим, вы  владелец биткоина и отправляете его по адресу, который принадлежит вашему другу Мартину. Чтобы потратить биткоин, Мартин должен доказать, что у него есть соответствующий закрытый ключ к этому адресу. Вот как сеть биткоин работает на базовом уровне: Мартин доказывает, что у него есть ключ, и он может потратить деньги.

Я сказал «на базовом уровне», потому что вы могли бы добавить больше условий для Мартина, чтобы потратить этот биткоин. В частности, вы можете добавить условие, что Мартин должен раскрыть определенный секрет в течение определенного периода времени, называемого тайм-аутом . Когда время истекает, биткоин может быть потрачен другим набором ключей, например, некоторыми из ваших.

Откуда этот секрет? Секрет - часть информации, созданная Мартином или кем-то еще в сети. Если Мартин сам создал секрет, он, конечно, узнает его в момент оплаты. Если кто-то еще создал это, Мартин должен выяснить этот секрет.

В любом случае, имеет смысл, что как только Мартин узнает секрет, он потратит биткоины, или отправит на  адрес, которым он владеет, чтобы предотвратить активацию тайм-аута. Мы назовем это действие, "требованием средств". Итак, HTLC в двух словах: это контракт, который требует, чтобы получатель в транзакции доказал, что знает определенный секрет, в течение определенного периода времени, чтобы потратить деньги.

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

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

HTLC в сети Lightning
Представьте, что вы хотите заплатить 1 BTC Сандре, но у вас нет канала для оплаты. Вместо этого Томас, у которого есть каналы с вами обоими, направит платеж. Что может пойти не так в этой цепочке платежей?
Без HTLC и в зависимости от того, кто платит первым, две вещи могут пойти не так:

Если вы сначала заплатите Томасу, полагая, что он заплатит Сандре, Томас может сбежать с вашими средствами.


Если Томас сначала заплатит Сандре, полагая, что вы заплатите ему, вы можете обмануть Томаса и не вернуть деньги.

Используя HTLC, Сандра может создать секрет, который знает только она, и попросить вас безопасно отправить биткоин Томасу, добавив пункт, что для того, чтобы потратить биткоин, он должен раскрыть секрет в течение определенного периода времени. Если он этого не сделает, вы сможете потратить биткоины. Сандра даст вам эту инструкцию в QR-коде со счетом Lightning. Она может сделать это, не раскрывая вам сам секрет, из-за свойств криптографии: вы будете знать, что Томас раскрывает секрет, который она создала, даже не зная секрета заранее.

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

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

HTLC и "подводные" свопы
HTLC могут быть использованы как в цепи транзакций, так и вне ее. Фактически, они могут использоваться для цепочки платежей, которые происходят между отправителем внутри цепочки и получателем вне этой цепочки, и наоборот. Это называется подводные свопы.

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

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

Провайдер не может потратить биткоин, который вы только что отправили ему, потому что он еще не знает секрета. Вместо этого он передаст биткоин продавцу в LN, добавив пункт, что для получения средств продавец должен раскрыть секрет. Продавец уже знает секрет, но чтобы получить деньги, он должен раскрыть его. В этом процессе провайдер узнает об этом и потребует деньги, которые вы ему отправили.


Для чего нужны подводные свопы?
Подводные свопы могут быть самым простым способом сделать первый платеж через Lightning. Несмотря на то, что вы по-прежнему платите комиссию внутри сети, этот поток платежей аналогичен одному внутри сети, и платежи могут быть мгновенными (в зависимости от реализации). Кроме того, если вы просто хотите попробовать Lightning Network, открытие канала также требует транзакции. Так как мы находимся на стадии внедрения LN, важно, чтобы пользователи могли легко потестировать оплату. Это причина, по которой мы добавили эту функцию в Muun Wallet .
https://play.google.com/store/apps/details?id=io.muun.apollo&/
Muun Wallet- кошелек, который позволяет совершать оплату как в основной сети, так и в LN. Вы по-прежнему контролируете свои личные ключи, которые хранятся только на вашем устройстве, используя ПО вашего телефона.
https://muun.com/

Подводные свопы также могут быть полезны в тех случаях, когда пользователям необходимо перевести часть своих денег в LN, и наоборот. Например, после успешной недели продаж через Lightning, продавцу может потребоваться получить биткоины в основной сети, чтобы платить поставщикам. Loop Out предоставляет способ сделать обратный обмен, и в то же время перебалансировать каналы для получения входящей емкости.
https://lightning.engineering/loop/index.html#lightning-loop-grpc-api-reference

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

Авторы йдеи подводных свопов: Alex Bosworth и Olaoluwa Osuntokun из Lightning Labs. Со временем их разработка приобрела большую популярность, хотя и не лишена недостатков.
Их приложения позволяют решить основные проблемы LN сети: ликвидности и адаптации.
Jump to: