Видео

Рекомендуемые

Популярные метки

Как работает сеть Lightning, простым языком

Например, вы и я хотим открыть платёжный канал в сети Lightning. Как это сделать?

Кладём деньги в Lightning

Мы оба отправляем 0,05 BTC на общий 2-из-2 адрес мультиподписи. Для этого необходимо совершить транзакцию на блокчейне Биткойна.

В качестве “таблицы баланса”, мы оба создаём транзакцию мультиподписи, которая платит 0,05 BTC вам, и 0,05 BTC мне. Я подписываю одну транзакцию выплаты и даю её вам. Если вы хотите, чтобы она сработала, вам нужно всего лишь добавить вашу собственную подпись и распространить её в сети Биткойна. И наоборот, вы даёте мне вашу копию транзакции с выплатой, которую вы подписали, а я – нет.

Такие “таблицы баланса” являются обычными биткойн-транзакциями с мультиподписью 2-из-2, просто они ещё не действительны, так как каждой не хватает одной подписи. Стоит заметить, что эти односторонние транзакции блокируют выплаченные средства выполняющей стороны на некоторое время.

Платёж

Теперь, я хочу выплатить вам 0,01 BTC. Мы оба создаём новую транзакцию выплаты (“табличку баланса”) как и ранее, однако эта означает, что вы получаете 0,06 BTC, а я получаю 0,04 BTC. Каждый из нас получает транзакцию, подписанную другим, как это делалось в прошлый раз.

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

Т.е. когда я пытаюсь активировать (уже недействительную) “табличку баланса” 0,05 – 0,05, эти мои выплаченные средства в текущий момент заморожены на несколько блоков вперёд. Это даёт вам время распространить “анти-чит” транзакцию, в которой я подписался, что мои выходы в размере 0,05 BTC отправляются прямиком к вам.

Всё же, для меня вполне безопасно давать такую транзакцию вам, да и всей сети, так как “анти-чит” может быть активирован исключительно в качестве ответа на мошенническое использование старой таблички баланса. Кстати, такой анти-чит механизм является одной из причин, по которой Lightning нуждается в исправлении проблемы пластичности транзакций (transaction milleability), входящем в состав SegWit.

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

Сетевой платёж

Отлично, теперь я и вы можем отправлять деньги туда и обратно тысячи раз, мгновенно, но без добавления транзакций в блокчейн Биткойна. Однако, с другой стороны, если кто-то из нас когда либо попробует надуть другого, он будет доставлен в суд “удалённо”, посредством решения, результатом которого станет его собственный убыток от диспута на блокчейне. Достаточно хитроумно, но вполне применимо.

Согласно теории шести рукопожатий, все люди соединены со всеми другими посредством всего нескольких последовательных связей. Предположим, что вы хотите отправить деньги Бобу, ведь он бариста и только что приготовил вам чашку кофе. Боб является другом Элис, а у меня с Элис имеется платёжный канал. Для примера, давайте представим, что в каждом платёжном канале находится 2 биткойна, по одному на каждого. У вас нет прямого канала с Бобом.

Наша “сеть” выглядит так:

Вы <-- 1BTC ----- 1BTC --> Я <-- 1BTC ----- 1BTC --> Элис <-- 1BTC ----- 1BTC --> Боб

Теперь, поскольку у вас нет прямого платёжного канала с Бобом (это было бы неэффективно, случись вам создавать платёжный канал с каждым бизнес-партнёром, которого вы встретите), вы направляете свой платёж через сеть. Вместо простого написания обновления к табличке баланса между Бобом и вами, как я описал ранее, всё становится синхронным усилием: ваш кошелёк находит такой путь от вас к Бобу, у которого а) достаточная ликвидность, б) наименьшие комиссии и в) наименьшее количество промежуточных шлюзов. Чтобы совершить платёж, каждый вовлечённый платёжный канал обновляет свой баланс. С платежом в 0,01 BTC за чашку кофе, происходит обновление нашей сети:

Вы <-- 0.99BTC ----- 1.01BTC --> Я <-- 0.99BTC ----- 1.01BTC --> Элис <-- 0.99BTC ----- 1.01BTC --> Боб

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

Теперь, представьте, что у вас есть платёжный канал не только со мной, но, возможно, дюжина платёжных каналов с другими пользователями! 

Консенсусное закрытие канала

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

Компромиссы

  • В сети Лайтнинг, за одну транакцию вы не можете получить сумму большую, чем сумма значений балансов всех ваших платёжных каналов;
  • Ваши транзакции не хранятся на блокчейне целую вечность (что значит – больше платёжной приватности), но с другой стороны, вы постоянно используете один адрес, что позволяет лицам, знающим владельца адреса, мониторить ваш баланс (меньше персональной приватности);
  • Мгновенные транзакции! Однако, ваши деньги заморожены в платёжном канале, который вам понадобится сперва закрыть на блокчейне, если вы хотите совершить обычную Биткойн-транзакцию с этими деньгами;
  • Меньшие комиссии! Транзакции в Лайтнинг не требуют полной комиссии для майнеров блокчейна, но если вы проводите средства через чужие платёжные каналы, они могут захотеть получить вознанаграждение в обмен на ликвидность, которую предоставляют вам. Так или иначе, из-за того, что другие узлы Лайтнинга будут соревноваться за право провести ваш платёж, операция будет стоить куда меньше, чем за полноценную транзакцию на блокчейне.

Источник: bitnovosti.com

  • 9 мая 2017 г., 10:50:00 MSK
  • 0 комментариев
  • 90 просмотров
0 комментариев