Блокчейн/Уровень V · Слои/5.1 Lightning/Урок 5
Штрафы и сторожевые башни
Ключ отзыва, окно таймлока и третья сторона, которая наблюдает
МатериалыБлок-эксплорер, умеющий отображать скрипты транзакций (например, mempool.space)Спецификация BOLT #2Текстовый редактор для разбора логики скриптов
Любопытство
- Почему публикация транзакции, технически валидной, но устаревшей, приводит к полной потере средств, а не к частичной выгоде?
- Как нода может неделями оставаться офлайн так, чтобы контрагент не украл её средства?
- Какое конкретное изменение в механизме консенсуса Bitcoin позволило бы двум сторонам просто заменять старые состояния новыми, полностью устраняя необходимость в логике наказаний?
Исследование
- Каналы Lightning опираются на подписанные коммитмент-транзакции, которые фиксируют снимок баланса. Если одна сторона уходит офлайн, а её пир публикует устаревшее состояние, в котором у него больше средств, это нарушение протокола. Честной ноде нужен механизм, позволяющий немедленно отреагировать и вернуть свой баланс — даже после нескольких недель без связи. Без такой защиты безопасность полностью зависит от постоянного подключения.
- Защита строится на секретах отзыва. При каждом обновлении состояния канала каждая сторона раскрывает секрет, стоящий за её предыдущим коммитментом, что позволяет другой стороне вычислить ключ отзыва для этого старого состояния. Если пир позже опубликует его, у честной стороны этот ключ уже есть. Это позволяет ей немедленно потратить выход мошенника без каких-либо задержек. Собственный выход опубликовавшей стороны заблокирован относительным таймлоком — обычно от 144 до 2 016 блоков (примерно от суток до двух недель) в зависимости от реализации и размера канала.
- Этот механизм требует, чтобы кто-то следил за блокчейном. Нода, слишком долго находящаяся офлайн, не сможет вовремя заметить публикацию. Сторожевые башни (watchtowers) решают эту проблему, храня зашифрованные штрафные транзакции, заранее подготовленные пользователем. Эти резервные копии привязаны к конкретным идентификаторам транзакций, что сохраняет приватность до момента нарушения. Башня отслеживает мемпул и блокчейн на предмет этих идентификаторов.
- Когда сторожевая башня обнаруживает, что в блокчейн попало старое состояние, она расшифровывает соответствующую резервную копию с помощью ID нарушающей транзакции. Затем она публикует штрафную транзакцию, которая переводит мошеннический выход честной стороне. Так весь баланс мошенника конфискуется в качестве штрафа за нарушение правил протокола. Угроза полной потери перевешивает возможную выгоду от обмана.
- Принудительное закрытие каналов тоже сопряжено со значительными издержками. Таймлоки задерживают доступ к средствам, а чтобы транзакции гарантированно распространялись в периоды высоких комиссий, приходится держать резервы на комиссии. Эти экономические трения стимулируют кооперативное закрытие. Пользователи, запускающие собственные ноды, несут эти риски напрямую; те, кто пользуется кастодиальными сервисами, перекладывают это бремя на провайдера.
- Альтернативная схема — eltoo, или LN-Symmetry (Деккер, Рассел и Осунтокун, 2018), — заменила бы штрафы простой заменой состояния. Для неё нужен софт-форк: SIGHASH_ANYPREVOUT (BIP118) или альтернативы, например CTV в сочетании с CHECKSIGFROMSTACK. Пока он не активирован, нынешняя модель штрафов и отзыва остаётся единственным надёжным механизмом принудительного исполнения для каналов Lightning в продакшене.
Ключевые факты
- Поскольку секрет отзыва каждого старого состояния передаётся другой стороне при его замене, публикация этого состояния позволяет контрагенту забрать весь баланс канала.
- Выход опубликовавшей стороны заблокирован относительным таймлоком (часто от 144 до 2 016 блоков), что даёт пострадавшей стороне время отреагировать.
- Сторожевые башни хранят зашифрованные резервные копии состояний, привязанные к ID транзакций, и сохраняют приватность, пока в блокчейне не будет обнаружено нарушение.
- Протокол eltoo устранил бы штрафные транзакции за счёт простой замены состояния, но для его активации требуется софт-форк BIP118.
- Принудительное закрытие требует держать резервы на комиссии и ждать истечения таймлоков, поэтому оно экономически дороже кооперативного.
- При каждом обновлении каждая сторона раскрывает секрет своего предыдущего коммитмента, что позволяет применить штраф, если это состояние когда-либо будет опубликовано.
Упражнение девять, шесть, три, один
9СобратьПеречислите 9 различных состояний протокола или событий в жизненном цикле канала Lightning, связанных с обменом ключами, подписями или публикацией транзакций ончейн.
6СгруппироватьРаспределите эти 9 пунктов по 6 категориям в зависимости от их значения для безопасности: кооперативные действия, одностороннее принудительное исполнение, сохранение приватности, экономические издержки, зависимость от консенсуса и переходы состояний.
3Выделить главноеСведите 6 групп к 3 ключевым компромиссам, определяющим профиль рисков при работе некастодиальной ноды Lightning.
1КристаллизоватьНапишите одно предложение о том, почему угроза полной потери средств через секреты отзыва необходима для безопасности офчейн-платежей.
Проверка фактов
Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.