Если вы когда-либо имели дело с биткойнами, возможно, вы столкнулись с часовыми (или, в худшем случае, дневными) транзакциями. Для Биткойна становится обычным задержек более 150 тыс. неподтвержденных транзакций во времена большого объема транзакций, и когда мы объединяем это с его непомерными комиссиями, удивительно, как вы когда-нибудь собираетесь использовать его для заплатить за обед из 5 частей в KFC.

Lightning Network здесь, чтобы помочь в этом. Этот концепт – детище Таддеуса Дрийи и Джозефа Пуна, и дуэт представил его белая бумага еще в 2015 году. Если вы не слишком любите читать длинный бумажный мел, полный технических жаргонов, мы выложим его для вас в простых терминах здесь.

Что такое Lightning Network?

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

Теперь, когда мы рассмотрели слишком простое объяснение, пришло время для более длинного..

Сеть Lightning: как это работает

Открытие двустороннего платежного канала

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

«Но я думал, вы сказали, что все это происходит вне сети?» Не волнуйтесь – он все еще работает, но сначала вы должны сообщить сети Биткойн, что вы открываете транзакцию. Как только вы это сделаете, вы и другая сторона, с которой вы совершаете транзакцию, будете вести свой собственный баланс обменов, совершаемых вами на канале. Транзакции и обновленные остатки на счетах будут записываться в эту бухгалтерскую книгу каждый раз, когда переводятся средства, и после того, как вы ввели свой бизнес на канале, вы передадите окончательный результат в блокчейн для закрытия аккаунта.

Кошельки с несколькими подписями

«Итак, если платежные каналы находятся вне сети, где / как управляются средства, пока они не будут записаны в блокчейн?» Какой красивый вопрос. Чтобы использовать канал оплаты, обе стороны должны отправить свои средства на адрес кошелька с несколькими подписями..

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

  • Молли и Стив подписывают завершающую транзакцию с этими закрытыми ключами.,
  • одна сторона решает завершить сделку самостоятельно, или
  • истекает срок, и транзакция отправляется автоматически. Как только это произойдет, средства будут переведены обратно в индивидуальные кошельки любой из сторон..

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

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

Передача стоимости с помощью транзакций с обязательством

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

Например, для обмена ценностями Молли подписывает транзакцию, которая отправляет 1,5 BTC себе и 0,5 на новый адрес кошелька с несколькими подписями. Затем она подписывает эту транзакцию и отправляет ее хэш Стиву. В свою очередь, Стив подписывает обязательную транзакцию для зеркала Молли, при этом он отправляет 0,5 BTC себе и 1,5 на другой кошелек с несколькими подписями. Затем он подписывает это и отправляет хэш транзакции Молли..

Транзакция Lightning Network

Итак, у нас есть а) исходные 2 BTC, находящиеся в кошельке с мультиподписью платежного канала, б). 5 BTC в кошельке с мультиподписью, который выплачивается Стиву, и в) 1,5 BTC, находящиеся в мультиподписи бумажник, подлежащий выплате Молли. Фактически, как только одна из сторон отправит свои соответствующие хэши транзакций, баланс в мультиподписи платежного канала будет обновлен, поскольку обе стороны согласились на передачу. Виола, обмен валюты производился без использования блокчейна Биткойн..

Значения из этих кошельков можно разблокировать только при трех условиях:

  1. истекает определенное количество времени,
  2. любая из сторон разблокирует средства из кошельков с несколькими подписями, которые они настроили с помощью значения (ключа) кошелька, или
  3. обе стороны решают подписать сделку вместе.

Важно отметить, что если одна из сторон решает закрыть канал и выйти из транзакции в одиночку, ей / ей придется подождать заранее определенное количество времени (продиктованное контрактом) с момента подписания транзакции. получать свои средства. Это может показаться чрезмерным, но крайне важно предотвратить мошенничество через платежные каналы – подробнее об этом чуть позже..

Регулярные платежи / Обновление канала

Что, если Молли и Стив захотят и дальше обновлять канал или проводить более одного обмена?

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

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

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

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

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

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

Закрытие платежного канала

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

В качестве альтернативы две стороны также могут установить дату истечения срока действия контракта. Например, используя алгоритм nLockTime, они могут открыть платежный канал на 30 дней, после чего канал закроется, а окончательные балансы будут транслироваться в блокчейн. Однако каждый раз, когда стороны хотят обновить свои балансы, срок действия уменьшается. Итак, если бы Молли и Стив делали ставки на несколько футбольных матчей в течение сезона, каждый раз, когда ставка выплачивалась, контракт nLockTime имел бы новую сокращенную дату истечения срока действия (например, если первая транзакция обязательства будет завершена через 30 дней, вторая транзакция будет выплачиваться в 29, затем третья будет выплачиваться в 28, и так далее).

Цель контрактов nLockTime проста: они поддерживают актуальность остатков на счетах и ​​не позволяют одной стороне подделать выписку по счету. Как мы уже обсуждали ранее, каждый раз, когда согласовывается транзакция с обязательством, старый баланс счета заменяется новым, и каждая вовлеченная сторона имеет записи этого нового баланса, а также значение старой транзакции (ключ). Если одна из сторон пытается обмануть другую, мошенническая сторона будет наказана.

Многоканальные платежи и контракты, заблокированные по времени хеширования

«Что, если Молли и Стив хотят отправить биткойны друг другу, но у них нет открытого канала оплаты?» Ну они могут пройти через посредника. Назовем этого парня Чак – передай ему привет.

Оказалось, что и у Молли, и у Стива открыты платежные каналы с Чаком, поэтому вместо открытия нового канала они решают использовать свои соответствующие двунаправленные платежные каналы для торговли через Чака..

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

Платежный канал сети Lightning с HTLC

Допустим, Молли хочет дать Стиву 0,5 BTC, потому что она такая милая – серьезно, что за персик. Для этого Стив должен создать строку криптографических чисел, называемую значением (по сути, кодом подтверждения или ключом). Затем он создает хэш этого значения для отправки Молли. Чтобы упростить эту письменную иллюстрацию, мы обозначим значение буквой V, а хеш – буквой H..

Когда Молли получает H, она делится им с Чаком. На этом этапе Молли отправит Чаку 0,5 BTC только в том случае, если он откроет V. Чтобы получить V, Чак отправляет 0,5 своих собственных BTC Стиву в обмен на V. Как только у него есть это число, он отправляет V Молли, которая затем отправляет 0,5. BTC в Чака. Вот и все – Молли фактически перевела 0,5 BTC Стиву..

Если вы заблудились, вот как это произошло:

Стив создает V и H → Стив отправляет H Молли → Молли отправляет H Чаку → Чак отправляет BTC Стиву → Стив отправляет V Чаку → Чак отправляет V Молли → Молли отправляет BTC Чаку

Таким образом, значение (V) служит кодом подтверждения / ключом для хэша (H), который представляет собой квитанцию ​​/ блокировку транзакции..

«Это все прекрасно, но откуда Молли знает, что сумма, которую посылает ей Чак, является законной и что удерживает Стива от побега с биткойнами, которые ему платит Чак?»

Опять хорошие вопросы. Подобно тому, как nLockTime обеспечивает честность всех в двунаправленном платежном канале, контракты с временной блокировкой хеширования обеспечивают подотчетность сторон в этой модели.

С HTLC транзакции биткойн-средств снова блокируются в кошельке с несколькими подписями и могут быть разблокированы только а) после представления значения (V) и хэша (H) или б) срок действия контракта истекает по истечении периода ожидания..

Фактически это означает, что, когда Молли и Чак заключают соглашение о том, чтобы Молли заплатила Стиву, она блокирует биткойн, который она должна Чаку, в кошельке с несколькими подписями с помощью HTLC. После того, как Чак заплатит Стиву и получит V, он может ввести V и H в HTLC, чтобы получить возмещение в биткойнах Молли, закрепленных за контрактом. В качестве альтернативы, если Чак не выполняет свою часть сделки и контракт истекает, скажем, через неделю, тогда биткойн Молли высвобождается и возвращается в ее личный кошелек..

Такое же взаимодействие происходит и на собственном платежном канале Чака и Стива. Чак не может передать свои биткойны Стиву, пока Стив не раскроет V. Как только Стив раскрывает V в контракте с несколькими подписями, у Чака теперь V, а Стив получает свои BTC..

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

Схема сети Lightning

Заключение: почему сеть Lightning имеет значение

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

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

У этой модели есть несколько ключевых преимуществ:

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

Решения для масштабируемости и задержки: Следуя предыдущему пункту, Lightning Network сократит раздутие сети. Уменьшение количества транзакций в цепочке означает меньше работы для майнеров, что, в свою очередь, означает более быстрое время транзакций и более низкие комиссии. Если каждую транзакцию не нужно помещать в публичный регистр блокчейна, сеть будет работать гораздо более плавно. Кроме того, транзакции Lightning Network будут намного быстрее, чем транзакции в сети..

Вы, наверное, задаетесь вопросом, как обычный пользователь сможет правильно ориентироваться в многоступенчатом процессе, который мы только что обрисовали. Что ж, Dryja, Poon и другие работают над приложениями / интерфейсами, которые выполняют все сложные шаги за вас – все, что вам нужно сделать, это нажать несколько кнопок.

В настоящее время Lightning Networks разрабатывается для биткойнов, Litecoin и Vertcoin. Сеть Lightning все еще в тестовая сеть, и дата запуска основной сети еще не была подтверждена на момент публикации.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me