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

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

Штрафная транзакция

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

Каналы Lightning контролируются двумя их участниками, и штрафная транзакция служит механизмом принуждения. BOLT 5 задает для этого сметания свидетель размером 160 байт для выхода основного баланса и предписывает разделить его по выходам, если транзакция не подтвердилась за 18 блоков до истечения таймлока мошенника. Если вы держите средства в каналах, именно эта транзакция стоит между вами и узлом, который откатывает ваш баланс.

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

Штрафная транзакция тратит выходы, владелец которых уже передал вам право их забрать.

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

Что именно вы сметаете, зависит от того, что несло устаревшее обязательство. Спецификация обязывает вас разрешить основной выход мошенника с помощью ключа отзыва, разрешить каждый предложенный им платеж одним из трех способов (потратить обязательство ключом отзыва, потратить его с помощью прообраза платежа, если вы его знаете, или потратить его транзакцию HTLC-timeout, когда он ее опубликует), а также разрешить его транзакции HTLC-success и HTLC-timeout тем же ключом отзыва. Она также предписывает извлечь прообраз из свидетеля входа, пока вы этим заняты, потому что платеж, который вы почти потеряли, возможно, еще можно получить у предыдущего звена.

Все это покрывают три формы свидетеля, и BOLT 5 приводит размер каждой: 160 байт для выхода основного баланса, 243 байта для предложенного платежа, 249 байт для принятого. Добавьте вес самого входа 164, и каждый затребованный выход стоит 324, 407 или 413. Остальная часть транзакции составляет 53 байта данных, не относящихся к свидетелю, плюс заголовок свидетеля размером 2 байта. Вы можете также включить свой собственный основной выход из того же обязательства, что добавляет 272 и служит в основном для снижения уплачиваемой комиссии.

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

Почему это важно при покупке биткоина

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

41 обзор кошельков на этом сайте делится именно по этой линии. Phoenix запускает настоящий некастодиальный узел Lightning на смартфоне, поэтому механизм наказания принадлежит вам, как и обязанность следить: маршрут восстановления ACINQ требует принудительно закрыть канал и подождать примерно 720 блоков, около пяти дней, прежде чем средства канала станут вашими ончейн. BlueWallet поддерживает только биткоин и необычно много умеет ончейн, однако его сторона Lightning представляет собой аккаунт на сервере LNDHub, и если этот сервер не ваш, оператор может перемещать эти биткоины, поэтому ваших транзакций обязательства, которыми можно кого-то наказать, не существует. Wallet of Satoshi в режиме по умолчанию тоже кастодиальный, и отчасти поэтому здесь у него рейтинг 2,7, а не место в рекомендации.

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

Отозванное закрытие в канале Phoenix

Представьте канал Phoenix, в котором еще три платежа находятся в пути, когда узел на другом конце публикует обязательство недельной давности.

Ваше программное обеспечение замечает txid, выводит ключ отзыва и строит одно сметание. Его вес составляет 324 для основного выхода мошенника, 413 для каждого из трех выходов принятых платежей, 272 за включение вашего собственного основного выхода, четыре раза по 53 байта тела транзакции и заголовок размером 2 байта: 2049 единиц веса, или около 512 виртуальных байт. Его деньги находятся за относительным таймлоком, который обе стороны согласовали при открытии канала, а такие задержки измеряются днями, а не минутами: восстановление после принудительного закрытия в Phoenix занимает примерно 720 блоков, около пяти дней. Ваши средства доступны для траты, как только майнер включит вашу транзакцию.

BOLT 5 также вычисляет потолок. При максимальном стандартном весе 400 000 и самом крупном входе 413 одна штрафная транзакция охватывает 966 платежных выходов, вдвое больше 483 ожидающих платежей на сторону, которые уже допускает протокол между узлами, так что даже полностью заполненный канал можно опустошить за один раз.

Затем идет причина этого не делать. Там, где канал использует выходы-якоря, собственные платежные транзакции мошенника подписаны с SIGHASH_SINGLE и SIGHASH_ANYONECANPAY, поэтому он может присоединить свои входы и закрепить ваше объединенное сметание в мемпуле достаточно надолго, чтобы таймлок на его основном выходе истек. Если подтверждение не пришло к моменту, когда до истечения срока этого выхода остается меньше задержки безопасности, окно, которое BOLT 5 оставляет на усмотрение политики узла, рекомендуя при этом 18 блоков, вам предписано разделить работу: одна штрафная транзакция на каждый отозванный выход, с повышением комиссии, пока каждая не подтвердится. При обязательствах с нулевой комиссией каждая из них должна также укладываться в лимит 10 000 виртуальных байт, который имеют транзакции версии 3, иначе она может так и не дойти до майнеров.

Штрафная транзакция vs принудительное закрытие

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

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

Штрафная транзакция vs сторожевая башня

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

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

Не путать с

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

Может ли штрафная транзакция по ошибке забрать у меня деньги?

Нет. Она может потратить только транзакцию обязательства, которую вы уже отозвали, поэтому она срабатывает, только если вы транслируете устаревшее состояние канала, и именно поэтому опасно восстанавливать кошелек Lightning из сид-фразы, а затем пользоваться им.

Кто на самом деле транслирует штрафную транзакцию?

Ваш собственный узел или сторожевая башня (watchtower), которой вы передали зашифрованное сметание. Биткоин сам по себе здесь ничего не обеспечивает: если никакое программное обеспечение не следит за этим до истечения таймлока мошенника, украденный баланс остается украденным.

Нужно ли думать об этом в кастодиальном приложении Lightning?

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

Сколько времени у меня есть, чтобы наказать мошенничающего контрагента?

До истечения относительного таймлока на основном выходе мошенника, срок которого согласован при открытии канала. BOLT 5 добавляет, что если ваше сметание не подтверждено за 18 блоков до этого срока, следует перейти на одну транзакцию на каждый отозванный выход и повышать комиссию каждой из них, на случай если мошенник попытается закрепить (pin) объединенную транзакцию.

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

Источники

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

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

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

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