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

Глоссарий / Протокол и обновления

Эфемерный якорь

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

Определено в BIP-431.

Контрактные протоколы, такие как Lightning, должны подписывать транзакции задолго до того, как станет известно, какими будут комиссии, поэтому им нужен способ увеличить комиссию позже. Bitcoin Core 28.0 сделал стандартным четырехбайтовый скрипт, который может потратить кто угодно, именно для этой задачи, а 29.0 позволил такому выходу не содержать ничего вовсе при условии, что его родительская транзакция не платит комиссию. Выигрыш состоит в том, что закрытия каналов стоят меньше и оставляют меньше зависших средств.

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

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

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

Pay-to-anchor устранил большую часть этой стоимости. Bitcoin Core 28.0 ввел новый стандартный выход, скрипт которого состоит ровно из четырех байт: OP_1, двухбайтовое помещение данных и байты 0x4e 0x73. Это программа segwit версии 1 длиной два байта, а поскольку Taproot оставляет программы неизвестной версии 1 без ограничений на расходование, потратить ее может кто угодно с пустым свидетельством. Ни ключа, ни скрипта, который нужно раскрыть, а вход настолько мал, что почти ничего не стоит.

Правило пыли поначалу все еще действовало. Bitcoin Core оценивает выход по тому, сколько стоило бы его потратить, и для этого выхода получается 80 виртуальных байт, что при стандартной ставке пыли 3 сатоши за виртуальный байт означает, что он должен содержать не менее 240 сатоши. Лучше, чем 330, но все еще не бесплатно.

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

Еще две части из Bitcoin Core 28.0 делают эту схему пригодной к использованию. Транзакции TRUC, описанные в BIP431 и обозначаемые версией 3, допускают одного неподтвержденного родителя и одного неподтвержденного потомка и ограничивают транзакцию 10 000 виртуальными байтами, что устраняет атаки закрепления (pinning), из-за которых повышение комиссии было ненадежным. Затем оппортунистическая трансляция пакетов позволяет родительской транзакции путешествовать вместе с дочерней как пара, так что родительская транзакция с нулевой комиссией вообще может дойти до майнера.

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

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

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

Эфемерный якорь vs лимит пыли

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

Не путать с

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

Создам ли я когда-нибудь эфемерный якорь сам?

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

Почему выход нулевой стоимости допускается, когда выходы пыли отклоняются?

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

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

Еще в разделе «Протокол и обновления»

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