Почему Taproot требует нового формата адреса?

Давид Ценаркевич спросил в Твиттере:

Привет, #биткоинщики. Я пытаюсь понять, зачем taproot нужен новый формат адреса, так как я его пропустил. Если у вас есть хорошая ссылка или что-то в этом роде - поделитесь, пожалуйста. Я думал, что "Выход Taproot - это собственный вывод SegWit с номером версии 1 (...)" означает, что подойдет bech32.

и я задаю вопрос здесь, чтобы обеспечить лучшую видимость вопроса и ответа.

Ответы (1)

Фон

Адреса P2TR будут закодированы с использованием Bech32 , хотя, вероятно, это будет измененная версия. В ожидании слияния Taproot некоторые сторонники протестировали поведение различных кошельков и сервисов в отношении выходных данных Segwit v1. BIP173 предписывает применять известные ограничения для адресов Bech32, но «реализации ДОЛЖНЫ разрешать использование любой версии». Тесты показали, что несколько кошельков и сервисов не соответствовали спецификации, а скорее либо не смогли создать выходные данные SegWit-v1, либо, что еще хуже, молча понизили их до выходных данных SegWit-v0, используя тот же сценарий вывода, но изменив версию SegWit и тем самым сжигание средств.

В прошлом году также было обнаружено, что Bech32 подвержен изменчивости расширения длины. Адреса с определенным окончанием можно расширить , вставив определенные символы (или удалив их, если они появляются в определенных позициях). Это в значительной степени несущественно для собственных адресов segwit из-за их ограничения до 42 или 62 символов.

Недавнее предложение направлено на устранение обеих проблем путем изменения расчета контрольной суммы для Bech32. Использование этого измененного формата для будущих выходных версий segwit защитит средства от сжигания, поскольку выходы более низкого уровня больше не будут соответствовать требованиям к контрольной сумме segwit-v0, и в то же время устранит изменчивость расширения длины для segwit-v1–v16.

Оплата на адреса segwit v1

Спецификация segwit явно разрешает создание всех версий выходных данных segwit. Поэтому ожидалось, что все кошельки с поддержкой SegWit смогут создавать выходы P2TR из коробки. Согласно упомянутым тестам, многие кошельки и сервисы не соответствуют спецификации, но требуют обновлений для поддержки отправки на P2TR. В соответствии с предлагаемым изменением кошельки должны будут дополнительно обновить константу контрольной суммы для адресов segwit-v1–v16 bech32.

Расходы на выходе P2TR

BIP Taproot предписывают новую версию скрипта ( Tapscript ), подписи Шнорра и выходной формат Taproot , поэтому расходы на выходы P2TR потребуют в первую очередь дополнительной работы по реализации, особенно для использования расширенных функций, таких как расходы на пути скрипта или использование агрегированные ключи в ключевом пути.