После многих лет концептуализации и разработок, первые реализации лайтинга проходят стадию бета-тестирования. Как результат, каждый день появляется множество новых узлов, все большее пользователей открывают друг с другом каналы, а некоторые из торговцев даже начинают принимать лайтинг платежи.
Конечно же, сеть лайтинг находится на ранних этапах своего развития. Хотя уже доступны для использования основные реализации, некоторые кошельки и другие приложения, планируется, что в течение следующих нескольких лет сеть платежей Биткойна будет улучшаться в таких областях как сетевая архитектура, безопасность и удобство использования, также так и во многом другом.
Каналы с двойным финансированием
Сеть лайтинг состоит из серии платежных каналов. Каждый канал существует между двумя пользователями, что позволяет отправлять средства между ними туда и обратно.
Но, на данном этапе разработки, каналы платежей могут финансироваться только одной из двух сторон. Сначала один из участников должен отправить транзакцию контрагенту; только тогда этот контрагент может вернуть платеж в пределах одного и того же платежного канала.
Тем не менее, в информационном документе сети лайтинг были предложены каналы с двойным финансированием, для которых предложение спецификации было разраьотано ACINQ, компанией, стоящей за eclair. Как следует из названия, каналы с двойным финансированием позволяют обоим пользователям частично финансировать платежный канал путем размещения депозитов в Биткойнах. Это должно предоставить пользователям лайтинг большую гибкость, так как пользователи смогут сразу отправлять и получать оплату после открытия канала.
Submarine Swaps
Для того чтобы провести лайтинг платеж, пользователи должны сначала депонировать средства в лайтинг канале. Как только средства появляются в канале, их уже нельзя отправлять по регулярным (по сети) адресам Биткойна. Это означает, что Биткойн в латинг канале несколько отделен от Биткойна в обычном кошельке, вроде как деньги на расчетном счете и деньги на сберегательном счете.
Но, есть несколько решений для более плавного переключения между лайтинг и ончейн платежами.
Одним из решений является Submarine Swaps. Submarine Swaps по существу позволяют пользователям отправлять лайтинг платежи посреднику в сети лайтинг, затем посредник отправляет соответствующее количество Биткойнов на обычный (ончейн) Биткойн адрес. Это также работает и в обратном порядке: пользователи могут отправлять регулярные платежи по сети посреднику, а затем посредник отправляет соответствующее количество Биткойнов на принимающий узел лайтинг в сети лайтинг.
Важно отметить, что с помощью Submarine Swaps такое преобразование осуществляется «атомарно». Используя трюк, который уже есть в сеть лайтинг, лайтинг платеж и оплата по сети могут быть эффективно связаны друг с другом. (По согласованию с пользователями посредник может взимать небольшую плату за обслуживание).
Сплайсинг
Еще одно решение, которое способствует более понятному использованию лайтинг - это «сплайсинг». По сути, «сплайсинг» позволит пользователю «пополнять» средства в существующем лайтинг канале или «забирать» средства из него, при этом канал будет оставаться открытым.
Идея проста. Любой лайтинг канал начинается с транзакции открытия, которая гарантирует, что оба пользователя согласились разместить средства в канале. Остальная часть лайтинг канала состоит из серии последующих транзакций, которыми обмениваются между собой пользователи, которые обычно не передаются в сеть Биткойна. Средства в транзакции открытия остаются на месте до тех пор, пока канал не закроют.
Когда происходит «сплайсинг ин», пользователи проводят транзакцию открытия, вместо того, чтобы отправлять средства в транзакцию с заменой, которая включает больше Биткойнов, от одного или обоих пользователей. Как только эта новая транзакция открытия подтвердится на блокчейне, канал пополняется. Пока новая транзакция открытия не будет подтверждена, оба пользователя могут одновременно обновить как старый, так и новый канал, чтобы избежать «простоя» канала.
И, наоборот, при «сплайс аут», пользователи используют транзакцию открытия, чтобы отправить средства на обычный (по цепочке) адрес и, возможно, сохраняют некоторые из них в канале, используя тот же трюк. Таким образом, пользователи могут совершать транзакции в цепи прямо из лайтинг канала.
Eltoo
При каждом новом платеже, лайтинг каналы между пользователями обновляются для того, чтобы отразить их балансы. Это также используется для того, чтобы оштрафовать пользователей, которые попытаются обмануть, путем передачи данных прежнего баланса. Так как обманутые пользователи могут потерять все средства, которые находятся в канале.
Проблема в том, что передача старых балансов – это не всегда попытка совершения обмана. Существует ряд сценариев, когда пользователи могут случайно передать данные старого баланса; например, из-за ошибки программного обеспечения или резервной копии. При такой ситуации, полная потеря средств в каналах - это довольно тяжелое наказание.
E ltoo - это предложение, о котором впервые было рассказано 30 апреля 2018 года. Оно разработано командой разработчиков c-lightning компании Blockstream, eltoo предназначен для того, чтобы обновлять канал, создавая цепочку таймлокед транзакций, где каждая транзакция тратит средства из предыдущей и таким образом отображаются самые последние данные баланса.
Если один из пользователей представляет данные более старого баланса канала, у его контрагента есть время для передачи самых последних данных баланса канала.
Такое решение могло бы работать сегодня, но оно не практично в случае сбоя. Для этого потребуется, чтобы вся цепочка транзакций передавалась и записывалась на блокчейне Биткойна. Поэтому разработчики предложил софт форк протокола Биткойна для того, чтобы провести иерархию типов транзакций: любая новая транзакция важнее любой более старой транзакции, при этом нет необходимости в передачи всех транзакций во всей цепочке.
Если этот софт форк будет принят и активирован в сети Биткойна, пользователи лайтинг смогут создавать каналы, как в нынешнем стиле, так и с помощью eltoo, в зависимости от предпочтений.
Компактная фильтрация блоков клиентом
В то время как сеть лайтинг является протоколом второго уровня, блокчейн Биткойна по-прежнему актуален для пользователей лайтинга в отношении безопасности. В частности, пользователи лайтнинг должны следить за блокчейном, чтобы знать, включены ли определенные транзакции. Это может стать достаточно ресурсоемким процессом, особенно для мобильных пользователей.
Решением стало - упрощенная проверка платежей (SPV), что была описана в информационном документе Биткойна. Нынешние SPV кошельки используют трюк под названием «Bloom filters», чтобы выяснить, были ли проведены какие-либо соответствующие транзакции.
К сожалению, Bloom filters не конфиденциальны, поскольку кошельки раскрывают все их адреса узлам сети Биткойн. У них также есть некоторые проблемы с масштабированием и удобством использования, так как каждый отдельный SPV кошелек использует ресурсы, по крайней мере, одного полного узла Биткойна.
Чтобы решить эти проблемы, в Lightning Labs разработали новое решение под названием «компактная фильтрация блоков на стороне клиента», которую они реализовали в кошельке Neutrino.
Компактная фильтрация блоков на стороне клиента существенно меняет трюк, который используют нынешние SPV кошельки. Вместо кошельков, запрашивающих транзакции, относящихся к ним, создавая и отправляя Bloom filters на полные узлы, полные узлы создают фильтр для всех Neutrino кошельков.
Кошелек Neutrino затем использует этот фильтр, чтобы установить то, что соответствующая транзакция не состоялась – это по сути все, что пользователи должны знать, чтобы убедиться, что их не обманывают. (Если фильтр находит совпадение, Neutrino выбирает соответствующий блок, чтобы увидеть, действительно ли совпадение касается определенной транзакции.)
Сторожевые башни
Чтобы избежать обмана, пользователи лайтинг должны отслеживать ончейн транзакции.
В то время как компактная фильтрация блоков на стороне клиента должна значительно облегчить такую задачу, пользователям необходимо «делать проверку» время от времени для того, чтобы убедиться, что их не обманывают.
«Сторожевые башни» - это решение, о котором было написано еще в информационном документе сети лайтинг, с тех пор оно было усовершенствовано. Как следует из названия, Сторожевые башни позволяют пользователям осуществлять аутсорсинг мониторинга блокчейна третьей стороной.
Когда пользователи обновляют канал, они отправляют пакет данных в Сторожевую башню. Первая часть этого пакета - это как «намек» на транзакцию, на которую они должны обратить внимание, как часть головоломки. Этот намек сам по себе не раскрывает что-либо о содержании транзакции, за которой должна следить Сторожевая башня; пользователи не отказываются от конфиденциальности в этом случаи.
Однако, если соответствующая транзакция появляется в блокчейне Биткойна, Сторожевая башня может использовать эту подсказку, чтобы ее распознать. Затем, используя данные транзакции на самом блокчейне, Сторожевая башня может использовать вторую часть полученного пакета для пересмотра штрафной транзакции. Эта штрафная транзакция отправляет все средства в канал пользователю, которого обманули. (В случае с eltoo, он просто транслирует правильный баланс канала.)
Пользователи могут осуществлять аутсорсинг мониторинга каналов на нескольких Сторожевых башнях.
Мгновенный атомный многоходовой платёж
То, что делает сеть лайтинг сетью – это то, что каналы платежей между пользователями взаимосвязаны. Пользователи могут делать платежи через платежные каналы с помощью одноранговых сетей, которые действуют как «посредники», для пользователей, с которыми у них нет прямого канала.
Но, сейчас один платеж должен быть маршрутизирован по одному маршруту. Если один пользователь хочет заплатить 5 mBTC другому, не только он должен иметь 5 mBTC в одном канале, но и все посредники на маршруте также должны иметь 5 mBTC в канале для пересылки. Чем больше платеж, тем меньше вероятность этого.
Мгновенные атомные многоходовые платёжи (AMP) могут значительно упростить такое ограничение. Идея предложена Lightning Labs - более крупные платежи могут быть «разрезаны» на более мелкие кусочки и все из них имеют свой собственный маршрут от плательщика к получателю через посредников.
Однако частичные платежи могут стать еще более сложной проблемой, чем вообще не проведенный платеж: продавец не будет удовлетворен частичной оплатой, а клиент не будет счастлив - потратить деньги ни за что.
Решением этой проблемы стало то, что AMP используют расширение к хеш-тайм-локед контрактам, которые уже применяются вдоль маршрутов лайтинг, включают в себя передачу секретных данных по сети. Используя трюк, подобный тому, который используется детерминированными кошельками (которые генерируют несколько адресов Биткойна из одного семени), меньшие части большего платежа могут быть проведены получателем только в том случае, если все они есть в наличии.
Атомарные транзакции
Сеть лайтинг разработана как масштабирующий уровень для Биткойна. Но, так как многие альткоины являются программными форками кодовой базы Биткойна, нетрудно создать аналогичные уровни масштабирования для этих альткойнов. Уже существует сеть Лайткоин Лайтинг, и, скорее всего, последуют еще сети Лайткоин.
Интересно, что в будущем эти сети не должны быть разделены друг от друга.
Используя фундаментальный строительный блок сети лайтинг под названием «атомарные транзакции», платежные каналы могут быть связаны между различными блокчейнами. Другими словами, пользователь может отправлять Биткойны, пока узел в сети готов сделать обмен, а другой пользователь может получить платеж в Лайткоине.
Конечно, это также означает, что пользователи могут отправлять такие платежи сами себе: они могут отправлять Биткойны и получать Лайткоины.
Фабрики каналов
Основным преимуществом сети лайтинг является, возможно, его потенциал для значительного увеличения верхнего предела транзакций Биткойна без обременения сети Биткойн. Пока у двух пользователей есть средства в своих каналах, они могут платить друг другу практически неограниченное количество раз, при этом требуется только две транзакции по цепочке: одна для открытия платежного канала и другая для его закрытия.
«Фабрики каналов», впоследствии могут уменьшить среднее количество транзакций по цепочке, необходимых для каждого платежного канала.
Фабрики каналов - это тип платежного канала, который может существовать среди многих пользователей. Между тем, как и любой платежный канал, фабрики каналов всегда требуют двух транзакций по цепочке.
Фабрики каналов, в свою очередь, действуют как «подканалы» для сети лайтинг. Участники Фабрики каналов могут открывать и закрывать практически неограниченное количество лайтинг каналов друг с другом, не требуя дополнительных транзакций по цепочке.
Уникальность
Специально для форума MMGP.COM