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

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

Анонс канала

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

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

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

Анонс канала дорого подделать, и в этом весь смысл замысла.

Gossip отправлять ничего не стоит, поэтому иначе нода могла бы наводнить сеть вымышленными каналами. BOLT 7 препятствует этому, делая каждое утверждение проверяемым по блокчейну. Сообщение, тип 256, называет short_channel_id, который указывает на один конкретный выход: три байта высоты блока, три индекса транзакции и два индекса выхода. Принимающая нода находит этот выход и отбрасывает анонс, если только этот выход не является непотраченным P2WSH, который платит двум указанным ключам Bitcoin.

В начале сообщения стоят четыре подписи. Две происходят от ключей идентичности нод, а две от ключей финансирования, которые управляют ончейн-выходом, bitcoin_key_1 и bitcoin_key_2. Все четыре подписывают один и тот же двойной SHA256-хеш, вычисленный от байтового смещения 256 до конца сообщения. Сопоставление ключей нод с ключами Bitcoin доказывает, что две ноды, объявляющие канал, являются теми двумя сторонами, которые его финансировали, а не посторонними, указывающими на чужой выход. Кроме того, node_id_1 должен быть лексикографически меньшим из двух сжатых ключей, и принимающая нода должна игнорировать любой анонс, в котором этот порядок нарушен.

Анонсирование включается по желанию битом announce_channel при открытии канала. Если он установлен, пиры обмениваются сообщением announcement_signatures (тип 259), как только транзакция финансирования наберет достаточную глубину, и после этого любая сторона может транслировать результат. Splice (изменение размера) создает новый анонс для новой транзакции, поэтому ноды ждут 72 блока после того, как выход финансирования потрачен, прежде чем забыть канал: трата может оказаться изменением размера, а не закрытием.

Где это видно

Обозреватель Lightning читает именно анонсы каналов, когда рисует граф сети.

Идентификатор, напечатанный рядом с каждым каналом, берется прямо из сообщения. short_channel_id, записанный как 539268x845x1, означает выход 1 транзакции с индексом 845 в блоке 539268, так что любой может проверить этот выход ончейн. Анонс не содержит ничего похожего на листинг: ни комиссии, ни емкости, ни имени оператора. Канал нельзя использовать, пока хотя бы одна сторона не отправит channel_update со своими комиссиями и дельтой истечения, а имя ноды приходит отдельно в node_announcement.

Такое разделение объясняет, почему каналы исчезают из обозревателей, хотя продолжают существовать. Если самый новый channel_update в любом из двух направлений старше двух недель (1209600 секунд), нода может удалить канал из своего представления. Анонс никогда не обновляется сам по себе, поэтому канал остается на карте, только пока оператор продолжает заново подписывать его условия.

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

Анонс канала vs емкость канала

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

Не путать с

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

Стоит ли вам приватности анонс канала Lightning?

Да. Анонс называет выход финансирования ончейн и связывает его с публичным ключом вашей ноды, поэтому любой, кто читает gossip, видит, какие биткоины обеспечивают канал и какие две ноды стоят на его концах. Канал не обязан быть анонсирован, чтобы работать: BOLT 7 делает анонсирование опциональным через бит announce_channel, устанавливаемый при открытии канала.

В чем разница между channel_announcement и channel_update?

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

Читайте далее

Источники

Последняя проверка: 6 сентября 2026 г.

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

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

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