Что такое Bech32: адреса Bitcoin, начинающиеся с bc1
Bech32 — формат кодирования адресов Bitcoin SegWit (bc1…), описанный в BIP-173; его версия Bech32m (BIP-350) используется для адресов Taproot.
В Bitcoin есть несколько типов адресов. Самые старые начинаются с 1 (P2PKH), адреса скриптов — с 3 (P2SH); оба записаны в кодировке Base58Check. С появлением SegWit был введён новый формат Bech32: адреса начинаются с bc1, в тестовой сети — с tb1. Адреса SegWit первой версии выглядят как bc1q…, а адреса Taproot — как bc1p… и кодируются в доработанном варианте Bech32m.
У Bech32 несколько практических преимуществ. Он использует только строчные буквы и цифры без похожих символов, поэтому адрес проще читать и диктовать. Контрольная сумма специально спроектирована так, чтобы гарантированно обнаруживать небольшое число ошибок в символах. А транзакции с SegWit-адресов занимают меньше места в блоке, поэтому комиссия при отправке с них обычно ниже, чем с адресов старого формата.
Bech32 нечувствителен к регистру, но смешивать регистр нельзя: адрес можно записать целиком строчными или целиком заглавными буквами (заглавные иногда используют в QR-кодах ради компактности), но не вперемешку. Префикс bc1 сразу показывает, что адрес относится к основной сети Bitcoin; tb1 — к тестовой, и путать их нельзя.
Сегодня почти все кошельки и биржи умеют отправлять на bc1-адреса, но изредка встречаются старые сервисы, которые принимают только адреса на 1 или 3. Для Taproot-адресов (bc1p) поддержка ещё моложе. Если клиент жалуется, что кошелёк «не принимает адрес», чаще всего дело именно в этом. Со стороны разработчика ошибка — валидировать адреса Bitcoin регулярным выражением вместо проверки контрольной суммы библиотекой.
Moonvex принимает BTC в сети Bitcoin, выдавая отдельный адрес на каждый платёж; платёж зачисляется после подтверждения двумя независимыми провайдерами узлов.