Префикс показывает script, а не получателя
- 1 обычно обозначает legacy P2PKH; 3 — P2SH и потому не доказывает, что внутри именно nested SegWit.
- bc1q использует Bech32 для witness version 0, а witness versions 1–16 должны использовать Bech32m; стандартный Taproot P2TR — version 1 и обычно начинается с bc1p.
- Адрес нельзя безопасно «перевести» в другой формат заменой префикса: кошелёк получателя должен создать подходящий script и подтвердить контроль над ним.
| Как начинается | Encoding | Обычно кодирует | Главная оговорка |
|---|---|---|---|
| 1… | Base58Check | Legacy P2PKH | Совместим широко, но не использует SegWit witness format |
| 3… | Base58Check | P2SH, включая P2SH-P2WPKH | Не каждый адрес 3… является nested SegWit |
| bc1q… | Bech32 | Native SegWit v0: P2WPKH или P2WSH | Тип определяется длиной witness program |
| bc1p… | Bech32m | Witness v1; стандартный 32-byte program — P2TR | Префикс без полной decoding-проверки недостаточен |
- Как начинается
- 1…
- Encoding
- Base58Check
- Обычно кодирует
- Legacy P2PKH
- Главная оговорка
- Совместим широко, но не использует SegWit witness format
- Как начинается
- 3…
- Encoding
- Base58Check
- Обычно кодирует
- P2SH, включая P2SH-P2WPKH
- Главная оговорка
- Не каждый адрес 3… является nested SegWit
- Как начинается
- bc1q…
- Encoding
- Bech32
- Обычно кодирует
- Native SegWit v0: P2WPKH или P2WSH
- Главная оговорка
- Тип определяется длиной witness program
- Как начинается
- bc1p…
- Encoding
- Bech32m
- Обычно кодирует
- Witness v1; стандартный 32-byte program — P2TR
- Главная оговорка
- Префикс без полной decoding-проверки недостаточен
Адрес кодирует условие создания output
Когда отправитель платит на адрес, wallet декодирует строку и строит scriptPubKey — условие, при котором новый UTXO можно будет потратить. Поэтому адрес ближе к компактной платёжной инструкции, чем к банковскому счёту. Один wallet способен создавать много адресов разных типов, а один человек — контролировать множество UTXO.
Legacy P2PKH начинается с 1 и тратится через public key hash
P2PKH — pay to public key hash — относится к формату до SegWit. Mainnet address кодируется Base58Check и обычно начинается с 1. При трате input раскрывает signature и public key, а script проверяет соответствие hash и подписи. Такой адрес остаётся действительным; слово legacy описывает конструкцию, а не истечение срока.
Что можно заключить по 1…
- получатель просит создать P2PKH output в Bitcoin mainnet, если вся строка валидна;
- будущий input будет учитывать legacy serialization, а не witness discount;
- строка не сообщает, является ли wallet custodial и кто хранит private key;
- checksum не подтверждает, что адрес получен от нужного человека.
Адрес 3 скрывает script hash, а не обязательно SegWit
BIP-13 назначил mainnet P2SH version byte 5, который после Base58Check даёт начало 3. P2SH фиксирует hash redeemScript. После появления SegWit в такой redeemScript стали помещать witness program — так работает nested SegWit, например P2SH-P2WPKH. Старые отправители видят обычный P2SH output, а обновлённый получатель тратит его с witness.
bc1q — нативный witness version 0 с Bech32 checksum
BIP-173 задаёт human-readable part bc для mainnet, разделитель 1 и data part. Символ q после bc1 кодирует witness version 0. Program длиной 20 bytes означает P2WPKH, а 32 bytes — P2WSH. У нативного witness output scriptSig пуст, поэтому нет P2SH wrapper и связанных с ним дополнительных bytes.
| Часть | Смысл | Проверка |
|---|---|---|
| bc | Human-readable part Bitcoin mainnet | Не путать с tb testnet |
| 1 | Разделитель HRP и данных | Берётся последний допустимый separator |
| q | Закодированная witness version 0 | Для v0 нужен Bech32, не Bech32m |
| Data | Witness program в base32 | После decoding допустимы 20 или 32 bytes |
| Последние 6 символов | Checksum | Не несут payload и должны пройти polymod check |
- Часть
- bc
- Смысл
- Human-readable part Bitcoin mainnet
- Проверка
- Не путать с tb testnet
- Часть
- 1
- Смысл
- Разделитель HRP и данных
- Проверка
- Берётся последний допустимый separator
- Часть
- q
- Смысл
- Закодированная witness version 0
- Проверка
- Для v0 нужен Bech32, не Bech32m
- Часть
- Data
- Смысл
- Witness program в base32
- Проверка
- После decoding допустимы 20 или 32 bytes
- Часть
- Последние 6 символов
- Смысл
- Checksum
- Проверка
- Не несут payload и должны пройти polymod check
bc1p использует новую checksum-константу для witness version 1
BIP-350 сохранил структуру Bech32, но ввёл Bech32m checksum: version 0 продолжает использовать Bech32, versions 1–16 — Bech32m. Для version 1 первый data character после separator отображается как p. Стандартный P2TR output содержит 32-byte output key, поэтому Taproot-адрес mainnet обычно выглядит как bc1p… . Корректный decoder сверяет и version, и encoding, и длину program.
Комиссия не назначается префиксом получателя. Она зависит от weight всей transaction: типов и количества inputs, outputs и witness data. Нативные SegWit-конструкции часто экономнее legacy при сопоставимом платеже, но точное значение считают по собранной transaction и текущей fee rate. Отдельно полезно понимать мемпул, RBF и CPFP, если перевод задержался.
Совместимость проверяют на стороне отправителя и получателя
| Ситуация | Безопасное действие | Опасное действие |
|---|---|---|
| Сервис не принимает bc1p | Запросить у своего wallet другой поддерживаемый receiving address | Самостоятельно заменить bc1p на bc1q или 3 |
| Получен адрес 3… | Проверить всю строку и поддержку P2SH у отправителя | Считать его nested SegWit только по префиксу |
| Wallet предлагает несколько account types | Проверить backup и recovery support каждого account | Предполагать, что один derivation path найдёт все UTXO |
| Строка не проходит checksum | Остановиться и запросить адрес повторно | Исправлять символы догадкой |
- Ситуация
- Сервис не принимает bc1p
- Безопасное действие
- Запросить у своего wallet другой поддерживаемый receiving address
- Опасное действие
- Самостоятельно заменить bc1p на bc1q или 3
- Ситуация
- Получен адрес 3…
- Безопасное действие
- Проверить всю строку и поддержку P2SH у отправителя
- Опасное действие
- Считать его nested SegWit только по префиксу
- Ситуация
- Wallet предлагает несколько account types
- Безопасное действие
- Проверить backup и recovery support каждого account
- Опасное действие
- Предполагать, что один derivation path найдёт все UTXO
- Ситуация
- Строка не проходит checksum
- Безопасное действие
- Остановиться и запросить адрес повторно
- Опасное действие
- Исправлять символы догадкой
Выбор криптокошелька включает поддержку нужных script types при создании, подписи и восстановлении. То, что приложение умеет отправлять на bc1p, ещё не означает, что оно создаёт собственный Taproot account. Перед крупным получением сверяйте официальную recovery-документацию wallet. Практическую репетицию восстановления проводите только на чистом отдельном или сброшенном vendor-supported hardware wallet, офлайн и без ввода seed на сайте, телефоне, рабочем либо общем компьютере.
Checksum ловит ошибки строки, но не подмену получателя
- Получить адрес из доверенного канала или показать receiving screen на устройстве получателя.
- Проверить, что выбрана Bitcoin mainnet, а не testnet и не другой актив с похожим названием.
- Декодировать всю строку: encoding, checksum, witness version и program length.
- Сверить адрес целиком на независимом экране; первые и последние символы дают лишь сокращённую проверку.
- Не менять регистр или префикс вручную и не вставлять адрес из истории без повторного подтверждения.
Публичный адрес не содержит имени владельца. Синтаксический валидатор может распознать сеть и encoding, но не доказывает связь строки с человеком и не проверяет его право на средства. Успешный результат означает только, что правила выбранного формата выполнены; destination всё равно подтверждают отдельно.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- BIP-13 — Address Format for pay-to-script-hash Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:31 GMT+5
- BIP-141 — Segregated Witness Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:31 GMT+5
- BIP-173 — Base32 address format for native witness outputs Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:31 GMT+5
- BIP-350 — Bech32m format for v1+ witness addresses Bitcoin BIPs · Проверено 18 августа 2026 г. в 22:31 GMT+5
- Bitcoin Developer Guide — Transactions Bitcoin Project · Проверено 18 августа 2026 г. в 22:31 GMT+5
