Глоссарий / Lightning и layer 2
Выход-якорь
- Что такое Выход-якорь?
- Выходы-якоря представляют собой две аварийные лазейки по 330 сатоши, прикрепленные к транзакции обязательства Lightning, по одной на ключ каждого партнера, чтобы любая из сторон могла повысить комиссию при заранее подписанном закрытии.
Каналы с якорями дают каждому партнеру крошечный выход, который сначала может потратить только он, исключительно как рычаг для последующего повышения комиссии. BOLT 3 фиксирует сумму в 330 сатоши, и через 16 блоков любой желающий может подобрать якорь, который никто не забрал. Если вы пользуетесь кошельком Lightning, держите про запас ончейн-биткоин, потому что якорь сам по себе не может оплатить комиссию.
Как это работает
Выход-якорь хранит 330 сатоши под ключом финансирования партнера канала, а причина, по которой обязательство несет два таких выхода, а не один общий рычаг, связана с атакой.
Скрипт короткий: публичный ключ финансирования, OP_CHECKSIG, OP_IFDUP, затем ветвь OP_NOTIF с OP_16 и OP_CHECKSEQUENCEVERIFY. Ваша собственная подпись открывает его сразу. Через шестнадцать блоков после подтверждения обязательства пустой свидетель открывает его для любого, и так BOLT 3 не дает брошенной сдаче навсегда закрепиться в наборе живых монет. Этот путь важен, только если комиссии упадут достаточно низко, чтобы подобрать 330 сатоши стоило того.
Схема с одним якорем на каждого партнера представляет собой защиту от пиннинга. Дайте обеим сторонам один общий рычаг, и контрагент сможет прицепить к нему крупную дочернюю транзакцию с низкой комиссией, раздувая семейство неподтвержденных транзакций, пока ваше собственное повышение не окажется недоступно по цене, а обязательство не пропустит срок, для которого его передали в сеть. BOLT 3 приписывает работоспособность защиты с раздельными якорями изменению в Bitcoin Core 0.19 и привязывает каждый якорь к ключу финансирования. Это же объясняет, почему все остальные выходы такого обязательства несут блокировку последовательности, включая to_remote.
Ничего из этого не бесплатно. Обе суммы якорей вычитаются из баланса стороны, финансирующей канал, всего 660 сатоши, а базовый вес, от которого считается цена транзакции обязательства, растет с 724 до 1124 весовых единиц. Взамен финансирующая сторона получает HTLC-транзакции второй ступени, которые вообще не несут комиссии: при option_anchors их комиссия должна быть нулевой, и они подписываются с SIGHASH_SINGLE и SIGHASH_ANYONECANPAY, так что вы подключаете свой собственный вход при передаче в сеть и платите тогда действующую ставку. BOLT 9 перечисляет это в битах 22 и 23 как тип обязательства с якорями и HTLC-транзакциями без комиссии.
Где это видно
Выходы-якоря становятся видны в обозревателе блоков в тот момент, когда канал Lightning закрывается без сотрудничества, как два выхода по 330 сатоши каждый, которые выглядят как чья-то ошибка. BOLT 3 опускает один из них, только когда нет HTLC в пути и баланс одной из сторон ниже предела пыли.
То, какой из 41 обзора кошельков на нашем сайте покажет вам такой выход, зависит от хранения. Phoenix, получивший здесь оценку 4,0, запускает на самом смартфоне настоящий некастодиальный узел Lightning, и наш обзор отмечает, что восстановление после принудительного закрытия занимает примерно 720 блоков, поэтому якорь остается вам для управления. Muun с оценкой 3,8 также некастодиален, но его платежи Lightning могут потребовать подводного обмена, который рассчитывается ончейн. Wallet of Satoshi с оценкой 2,7 по умолчанию кастодиален. Выход в 330 сатоши не может финансировать дочернюю транзакцию, поэтому повышение комиссии означает потратить якорь вместе с биткоином, который у вас уже был.
Выход-якорь vs эфемерный якорь
Выход-якорь в течение первых 16 блоков может быть потрачен одним конкретным ключом финансирования, тогда как эфемерный якорь не имеет ключа с первой секунды и не хранит никакой ценности, которую стоило бы защищать.
Более новые каналы zero_fee_commitments из BOLT 3, с битами функций 40 и 41, заменяют пару на один shared_anchor, построенный на стандартном скрипте pay to anchor: OP_1, за которым следуют два байта 0x4e73, и потратить его с пустым свидетелем может любой. Его сумма составляет 240 сатоши, стандартный предел пыли для этого скрипта, и опускается ниже, только когда остается меньше, что допускает правило эфемерной пыли, поскольку тогда обязательство не платит комиссию. Оба решения отвечают на одну угрозу с противоположных сторон: якоря с ключом побеждают пиннинг, давая каждой стороне рычаг, который никто другой не может привести в действие, а якорь без ключа тем, что оставляет обязательство неподдающимся майнингу, пока кто-нибудь не прицепит комиссию.