Что такое фабрики каналов и как они работают?

Один из открытых вопросов исследования для Lightning Network заключается в том, что для создания достаточного количества платежных каналов для всех пользователей Lightning Network потребуется огромное количество транзакций в сети. В последнее время в этом контексте всплывает термин «Фабрики каналов»¹.

Что такое фабрики каналов? Как они работают? Как это помогает масштабировать Lightning Network?


¹ Судя по всему, этот термин был введен в статье К. Берхерта, К. Декера и Р. Ваттенхофера « Масштабируемое финансирование сетей каналов микроплатежей Биткойн».

Ответы (1)

Что такое фабрики каналов?

Короче говоря, фабрики каналов — это платежные каналы, которые можно использовать для создания дополнительных платежных каналов. Звучит странно, но на самом деле все довольно просто:

В обычном платежном канале у вас всегда есть транзакция, подписанная всеми участвующими сторонами, которая готова передать текущий баланс канала в цепочку блоков. Например, в канале между Алисой и Бобом эта транзакция может иметь два выхода: один платит Алисе 0,25 BTC, а другой платит Бобу 0,75 BTC. Если бы транзакция из этого примера транслировалась, канал оплаты между Алисой и Бобом был бы закрыт.

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

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

Как они работают?

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

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

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

Как это помогает масштабировать Lightning Network?

Предположим, у нас есть группа пользователей, которые хотят открыть друг другу платежные каналы. Для nпользователей им необходимо открывать mканалы, где m = n(n-1)/2. Для открытого канала Lightning Network текущего поколения они, вероятно, потратят не менее двух входов и сгенерируют не менее трех выходов (около 240 байт на mканалы). Для фабрики каналов у них будет около nвходов (примерно 70 вбайт) и n + 1выходов (примерно 25 вбайт) плюс 10 вбайт служебных данных. Вот учет сбережений:

введите описание изображения здесь

При этом не учитываются затраты на закрытие каналов, которые сложнее рассчитать, поскольку каналы могут оставаться открытыми в течение переменного периода времени. Также не включена дополнительная экономия, доступная благодаря агрегации подписей Шнорра — если ее нужно активировать в биткойнах, она умеренно повысит эффективность Channel Factory за счет уменьшения объема пространства, используемого входными данными. Обратите внимание, что цифры, используемые здесь, являются приблизительными.

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

Спасибо за объяснение. В документе также говорится: «Новый уровень решает проблему масштабируемости, обеспечивая финансирование каналов вне блокчейна без доверия». Что они подразумевают под «финансированием канала вне блокчейна»? Насколько я понимаю, в настоящее время финансирование канала также может происходить вне блокчейна: если ваш канал исчерпан, вы можете «возвратить» его, просто получив оплату (покупая на бирже на LN).
@LucaMatteis Я полагаю, это означает, что вас можно добавить в существующую фабрику каналов без необходимости новых транзакций в сети. Например, представьте, что Алиса, Боб и Чарли открывают фабрику каналов. Теперь они могут открыть любой платежный канал, с которым все согласны, включая открытие каналов для Дэна, который не был частью исходного набора. Это требует выделения Дэну части BTC, которая использовалась для создания фабрики каналов, но это просто означает, что Дэн купил BTC, скажем, у Алисы. Как только канал Дэна открыт, его средства защищены возможностью при необходимости совершать транзакции в сети.
Таким образом, новые пользователи смогут присоединиться к сети, не создавая транзакцию в блокчейне? Это интересно. Спасибо!
@LucaMatteis Извините, если подумать, я не думаю, что то, что я описал ранее, является безопасным: вам нужно, чтобы ваш публичный ключ был частью набора мультиподписей, используемого для открытия фабрики каналов, чтобы безопасно использовать созданные им каналы. Теперь я думаю, что пункт, который вы процитировали, относится просто к способности без доверия создавать и уничтожать каналы в пределах одного набора пользователей фабрики. Например, Алиса изначально открывает канал на 1 BTC для Боба и канал на 2 BTC для Чарли; позже она закрывает эти каналы и открывает каждому канал на 1,5 BTC, и все это делается вне сети.
Каковы недостатки? Непослушные пользователи более опасны?
@DavidA.Harding Вы говорите: «та же безопасность, которая позволяет начальному платежному каналу иметь безопасность с нулевой конфигурацией». О какой безопасности с нулевой конф. вы говорите? Как получается, что нулевые подтверждения безопасны?
@GiovanniDiStasi Я не могу придумать никаких новых угроз безопасности. Не сотрудничающий участник может предотвратить создание новых каналов фабрикой каналов в любое время, но не может иным образом повлиять на какие-либо уже установленные каналы, кроме своего собственного, так что в основном такая же безопасность, как у LN. Участники фабрики каналов могут получить больше информации об балансах друг друга, чем в чистой LN, но в общедоступную цепочку блоков поступает еще меньше данных, поэтому фабрики каналов кажутся нейтральными к конфиденциальности или слегка улучшающими конфиденциальность.
@almel Все платежные каналы, о которых я слышал (Spillman, CLTV, HTLC, Duplex), используют некоторые варианты безопасности с несколькими подписями. Алиса и Боб вносят по 0,5 BTC на адрес с мультиподписью 2 из 2, для которого требуются обе их подписи. Они ждут, пока это подтвердится. Теперь Алиса может подписать транзакцию с этого адреса, отдав Бобу 0,75 BTC и вернув себе 0,25 BTC. Боб может безопасно принять эту транзакцию немедленно, не требуя подтверждения, потому что транзакция также требует его полной подписи, поэтому Алиса не может вернуть 0,25 BTC, которые она ему заплатила.
@DavidA.Harding: Я думаю, вам следует уточнить, что ваше упоминание о «безопасности с нулевой конфигурацией» относится к транзакциям обязательств, созданным путем обновления канала, а не к первоначальному финансированию транзакции.