В начале ноября этого года в Бостоне состоялся 19-й ежегодный международный симпозиум SSS (Symposium on Stabilization, Safety, and Security of Distributed Systems), посвящённый совершенствованию распределённых систем.
На этом событии было представлено техническое описание усовершенствований, предлагаемых к использованию в системе платежных каналов Lightning. Whitepaper подготовили учёные Конрад Бурхерт и Роджер Уоттенхофер из высшей технической школы Цюриха (Швейцария) совместно с Кристианом Декером, сотрудником компании Blockstream. Команда Blockstream занимается разработкой криптовалютных и блокчейн-проектов, одним из которых является собственная реализация технологии Lightning Network.
Что такое Lightning Network и зачем нужна эта технология?
По мнению авторов документа, с ростом популярности Биткоина и других платёжных систем на основе технологии распределённого реестра (блокчейна), разработчики и пользователи таких систем столкнулись с двумя основными проблемами:
-
Невозможность быстрой обработки поступающих транзакций за счёт имеющихся мощностей и, как следствие, появление очереди транзакций;
-
Недостаточная скорость выполнения (подтверждения) каждой отдельной транзакции. Другими словами, слишком велико время, которое требуется для того, чтобы заявить о низкой вероятности обратимости транзакции.
Следствием этих недостатков сейчас являются высокие комиссии за переводы внутри первоначальной легаси-цепи Биткоина, а также долгое время подтверждения необратимости транзакции, что препятствует дальнейшему более массовому распространению этой платёжной системы.
Если предположить, что какая-то одна криптовалюта получит широкое распространение и будет использоваться повсеместно, то её разработчикам нужно учитывать не только миллиарды людей во всём мире, совершающих финансовые операции каждый день, но и с растущее количество устройств интернета вещей (Internet Of Things), способных в будущем принимать платежи.
Существует несколько подходов к решению этих проблем. Одни разработчики предлагают увеличить максимальный размер блока с транзакциями, таким образом линейно повысив пропускную способность. В этом случае, вычислительных ресурсов на "подготовку" блока затратить нужно почти столько же, в то время, как транзакций в блок помещается больше. Этот способ имеет свои недостатки, в первую очередь значительное увеличение сетевого трафика и нагрузки на узлы.
Кардинальное отличие решения с применением Lightning Network, в отличие от предыдущего, состоит в том, что в последнем случае нагрузка с сети снимается путём проведения большей части транзакций в обход блокчейна. Вместо обработки множества мелких платежей, распределённая сеть узлов будет выступать в качестве "арбитра" между клиентами сети, позволяя им создавать специальные платёжные каналы для более частых и мелких транзакций. Эти каналы будут создаваться на основе хешированных смарт-контрактов с блокировкой по времени (HTLC) и мультиподписных транзакций (MultiSig), дающих гарантию и защиту при обмене средствами вне блокчейна.
Проблемы при использовании Lightning Network и способы их решения
Мы уже упоминали в одной из наших статей о некоторых сложностях, которые могут возникнуть при надстройке этой системы поверх существующей сети. Было выделено несколько потенциальных проблем, среди которых можно отметить следующие:
-
Усиление централизации вокруг популярных "хабов", объединяющих большое число пользователей платёжных каналов;
-
Снижение заработка майнеров из-за сокращения количества транзакций внутри блокчейна;
-
Проблема ликвидности, возникающая из-за необходимости блокировать средства в канале Lightning на неопределенный период времени, пока канал открыт. Чем больше размер платежей, совершаемых в канале, тем больше средств будет заблокировано, особенно если большая часть платежей происходит в одном направлении.
Учёные, чья работа рассматривается в этой статье, выделили ещё одну серьёзную проблему - максимальное число пользователей. По их мнению, даже если размер блоков будет увеличен, то возможна поддержка не более 800 миллионов пользователей блокчейна с реализацией Lightning Network, так как всё равно понадобятся периодические транзакции внутри блокчейна для открытия и закрытия каналов микроплатежей.
В документе предлагается идея, которая позволит устранить неудобства с блокировкой средств при открытии канала, а также сэкономить ещё больше дискового пространства при формировании цепочки блоков.
В блокчейне будет ещё меньше информации о платежах
По задумке разработчиков, кроме обычных каналов между двумя участниками сети, появится возможность создавать так называемые "фабрики каналов" - многопользовательские каналы, применение которых поможет заметно "разгрузить" блокчейн от лишних транзакций. При открытии такого канала, пользователи подписывают цифровое соглашение и специальный алгоритм объединяет их в группы. Блокируемые при присоединении к группе средства поступают на её общий счет (адрес сети Биткоина), где фиксируется доля каждого присоединившегося.
Теперь, используя свои закрытые ключи, участники могут перемещать средства из общего аккаунта другим пользователям сети или перераспределять их внутри группы. Для открытия множества новых каналов между нодами внутри группы или для связи с другими участниками сети в связанных каналами группах, взаимодействия с цепочкой блоков не потребуется. Внутри группы даже возможна временная ребалансировка, которая будет актуальна, например, при уходе одной из нод в оффлайн. При этом, такая ребалансировка позволит некоторое время не обновлять соглашение в блокчейне, ожидая переподключения участника.
Учитывая тот факт, что для передачи средств между участниками несвязанных групп всё же потребуется запись транзакции в блокчейн, логично будет заранее создать платёжный канал между этими группами, включив в одну группу участника другой. Чем больше пользователей сети будет находиться внутри связанных каналами групп, тем больше экономия места в блокчейне. Для упрощения координации действий, внутри больших групп могут существовать менее крупные, состоящие из меньшего числа участников. Таким образом, для движения средств по каналам внутри подгруппы потребуются подписи лишь тех нод, которые в неё входят.
По расчётам разработчиков, для группы из 20 нод со 100 Lightning каналами, открытыми между ними, можно на 96% уменьшить нагрузку на блокчейн по сравнению с затратами на обычные on-chain транзакции. Но такую экономию можно получить, лишь если "фабрики каналов" будут использовать схему подписи Шнорра, которая позволит объединять множество подписей, а также множество открытых ключей.
Комиссии и риски
С ростом числа нод, вовлечённых в группы с многопользовательскими каналами, растёт риск отключения части участников и устранения связи между каналами, так как соглашения между нодами может быть расторгнуто в одностороннем порядке путём трансляции в блокчейн соответствующей транзакции. Эти действия не повлияют на доли средств других участников и могут принести выгоду лишь майнерам, которые будут заинтересованы в росте комиссий за транзакции в блокчейне. Этот риск ставит под вопрос существование чрезмерно больших групп.
Системы высшего порядка, включающие группы с большим числом пользователей, потребуют согласованных действий многих нод для обновления или создания новых соглашений на более высших уровнях. В качестве вознаграждения за помощь в установлении нового соглашения, другие участники могут попросить его инициатора заплатить комиссию, путём сокращения его доли в общем аккаунте группы в пользу остальных участников.
В итоге, предложенный новый слой сети, состоящий из многопользовательских каналов, позволяет снизить затраты на проведение платежей и создание новых каналов внутри объединения нод, а также связать участников сети пересекающимися объединениями. Взаиморасчёты между этими объединениями смогут проходить без участия блокчейна. Экономия места в блокчейне от использования нового типа каналов в сети Биткоина может составить до 96%.