Перейти к содержимому
buybitcoinsmart

Глоссарий / Lightning и layer 2

Сплайсинг

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

До появления сплайсинга изменение размера канала означало его закрытие и открытие другого: две ончейн-транзакции, две комиссии и промежуток, когда канала не существовало. Сплайс делает это одной транзакцией. Сообщения splice_init, splice_ack и splice_locked входят в спецификацию Lightning, а Core Lightning выпустил экспериментальную реализацию в v23.08 в августе 2023 года.

Как это работает

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

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

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

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

Где это встречается

Сплайсинг заметнее всего в кошельках, которые перестали показывать вам два баланса.

Core Lightning добавил его под флагом experimental-splicing в v23.08, открыв splice_init, splice_update и splice_signed как низкоуровневые команды. ACINQ выпустил его для обычных пользователей в Phoenix для Android v2.0.0 в августе 2023 года вместе с двойным финансированием, и именно так этот кошелек перестал различать в своем интерфейсе ончейн-средства и средства Lightning: пополнение ончейн встраивается сплайсом в существующий канал, а не открывает второй.

Для оператора узла практическая польза состоит в перебалансировке капитала без оборота каналов. Канал, ставший слишком малым для проходящего через него трафика, пополняется на месте. Из канала, держащего больше, чем нужно, часть средств переводится в холодное хранение, а канал остается открытым. Раньше и то и другое означало закрытие, ожидание и повторное открытие, с двумя ончейн-комиссиями и сбросом истории маршрутизации.

Поддержка не повсеместна. И реализация, и ее сторона в канале должны понимать сообщения сплайсинга, поэтому возможность сделать сплайс конкретного канала зависит от того, кто находится на другом его конце. Если ваш кошелек по-прежнему предлагает закрыть канал, чтобы вывести средства, значит, контрагент или программное обеспечение еще не внедрили сплайсинг.

Сплайсинг vs принудительное закрытие

Сплайсинг меняет размер канала, сохраняя его работающим; принудительное закрытие завершает канал в одностороннем порядке. Принудительное закрытие делают, когда другая сторона канала недоступна или ведет себя неправильно: вы транслируете свою последнюю транзакцию обязательств, ваш собственный баланс блокируется на задержку примерно в один день, и канал исчезает. Сплайс требует, чтобы обе стороны сотрудничали и подписывали, дает работающий канал и не накладывает задержку ни на чьи средства. Сплайсинг является плановой операцией обслуживания; принудительное закрытие является запасным вариантом, который стоит вам времени и невыгодной ставки комиссии.

Не путать с

Часто задаваемые вопросы

Можно ли пользоваться каналом, пока сплайс подтверждается?

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

Поддерживает ли мой кошелек сплайсинг?

Это зависит от программного обеспечения и от вашего партнера по каналу, поскольку оба конца должны понимать сообщения сплайсинга. Core Lightning добавил его в v23.08, а ACINQ выпустил в Phoenix для Android v2.0.0, оба в августе 2023 года.

Связанные термины

Еще в разделе «Lightning и layer 2»

Читать эту страницу на английском