Кажется, люди используют «родной segwit» и «bech32» как синонимы. Они действительно одно и то же?
TL;DR: Native segwit относится к выходным данным segwit без P2SH-обертки. Bech32 — это формат адреса, используемый для представления собственных сценариев блокировки segwit-v0.
Когда segwit был активирован, он представил нулевое поколение segwit, segwit-v0. Соответствующие сценарии блокировки были двух видов:
Bech32 также используется для других целей, например, для кодирования счетов Lightning . Первоначально планировалось использовать Bech32 и для более поздних версий собственного вывода SegWit. Однако после того, как была обнаружена уязвимость изменчивости , и опросы показали, что многие кошельки неправильно обрабатывают отправку на более высокие версии SegWit, обсуждается измененная версия Bech32. Эта исправленная версия Bech32 будет использовать другую константу контрольной суммы, чтобы явно нарушить прямую совместимость, т.е. потребовать обновления кошельков для создания выходных данных segwit-v1. Нарушение прямой совместимости защищает кошельки от сжигания средств за счет неправильного понижения адресов segwit-v1 до адресов segwit-v0 и позволяет устранить уязвимость изменчивости.
Предлагаемый софт-форк Taproot представляет собственный тип вывода segwit-v1, Pay to Taproot (P2TR) , который будет первым собственным типом вывода segwit, использующим этот измененный формат адреса Bech32, названный «Bech32m», предложенный BIP-350 .