Перейти к основному содержимому

Типы криптовалютных адресов: Legacy, SegWit, Taproot

Если вы пользуетесь Bitcoin какое-то время, вы встречали адреса, начинающиеся с "1", адреса, начинающиеся с "3", и адреса, начинающиеся с "bc1q" или "bc1p". Это не просто косметические различия — они отражают принципиально разные способы блокировки и разблокировки средств, что заметно влияет на комиссии, приватность и функциональность.

В этом руководстве разобраны все основные типы адресов Bitcoin, как они работают на техническом уровне, их преимущества и недостатки, а также как выбрать подходящий тип под ваши задачи. Также мы рассмотрим формат адресов для Ethereum и других крупных блокчейнов.

Типы адресов Bitcoin

Адреса Legacy (P2PKH) — начинаются с "1"

Полное название: Pay-to-Public-Key-Hash

Пример: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Путь деривации: m/44'/0'/0' (BIP-44)

Адреса Legacy — это исходный формат адресов Bitcoin, определённый в изначальном протоколе Bitcoin. Адрес представляет собой хеш публичного ключа, закодированный в Base58Check:

Address = Base58Check(0x00 || RIPEMD160(SHA256(public_key)))

Байт версии 0x00 формирует адреса, начинающиеся с "1", в mainnet.

Как работает расходование (script):

ScriptPubKey: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
ScriptSig: <signature> <publicKey>

Чтобы потратить средства с адреса Legacy, отправитель предоставляет свой публичный ключ и корректную подпись. Сеть проверяет, что публичный ключ хешируется в этот адрес и что подпись действительна для данного публичного ключа.

Преимущества:

  • Максимальная совместимость — поддерживается каждым Bitcoin-кошельком, биржей и сервисом с 2009 года.
  • Простой, хорошо изученный формат.

Недостатки:

  • Наибольший размер транзакции (самые высокие комиссии).
  • Нет преимуществ SegWit (нет скидки на witness-данные).
  • Кодировка Base58Check чувствительна к регистру и склонна к ошибкам при ручном вводе.
  • Нет обнаружения ошибок за пределами checksum (он ловит случайные ошибки, но не все подстановки).

Адреса P2SH — начинаются с "3"

Полное название: Pay-to-Script-Hash

Пример: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

Путь деривации: m/49'/0'/0' (BIP-49, для SegWit-wrapped)

P2SH был введён в BIP-16 (2012), чтобы поддержать более сложные условия расходования. Вместо оплаты на хеш публичного ключа средства отправляются на хеш скрипта. Скрипт может реализовывать произвольные условия расходования: multisig, time lock, hash lock или — чаще всего сегодня — обёртку для выхода SegWit.

P2SH-P2WPKH (совместимый с SegWit):

Это самое распространённое применение адресов P2SH сегодня. Он оборачивает выход SegWit (P2WPKH) в скрипт P2SH, что даёт преимущества SegWit при сохранении обратной совместимости со старым ПО, понимающим только адреса P2SH.

RedeemScript: 0x0014 <20-byte-pubkey-hash>  (a P2WPKH script)
ScriptPubKey: OP_HASH160 <hash-of-redeemScript> OP_EQUAL

Преимущества:

  • Преимущества SegWit (сниженные комиссии, исправление malleability) при обратной совместимости.
  • Поддерживается практически всеми современными кошельками и биржами.
  • Позволяет использовать сложные скрипты (multisig, time lock).

Недостатки:

  • Комиссии выше, чем у нативного SegWit (оборачивающий скрипт добавляет overhead).
  • Неоднозначность — адрес на "3" может быть обычным multisig, обёрнутым SegWit или любым другим скриптом P2SH. По одному адресу это определить нельзя.

Нативные адреса SegWit (P2WPKH) — начинаются с "bc1q"

Полное название: Pay-to-Witness-Public-Key-Hash (кодировка Bech32)

Пример: bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4

Путь деривации: m/84'/0'/0' (BIP-84)

Нативные адреса SegWit были введены в BIP-141/BIP-143 (активированы в августе 2017) и используют кодировку Bech32, определённую в BIP-173. Они не используют Base58Check — вместо этого применяется новая кодировка, которая:

  • Только в нижнем регистре — устраняет проблемы чувствительности к регистру.
  • BCH-коррекция ошибок — может обнаружить до 4 ошибок символов и автоматически исправить некоторые ошибки.
  • Человекочитаемый префиксbc для Bitcoin mainnet, tb для testnet.

Как работает расходование:

ScriptPubKey: 0 <20-byte-pubkey-hash>
Witness: <signature> <publicKey>

Подпись и публичный ключ переносятся в секцию "witness" транзакции, которая получает скидку 75% на вес транзакции (комиссии).

Преимущества:

  • Самые низкие комиссии среди всех типов адресов до Taproot (скидка witness).
  • Исправление malleability — SegWit устраняет malleability транзакций, что позволяет использовать протоколы второго уровня вроде Lightning Network.
  • Лучшее обнаружение ошибок — кодировка Bech32 ловит больше ошибок, чем Base58Check.
  • Более простые скрипты — без overhead от обёртки P2SH.

Недостатки:

  • Некоторые старые кошельки и биржи не могут отправлять на адреса bc1q (по состоянию на 2025 это встречается всё реже).
  • Строка адреса немного длиннее, чем у Legacy или P2SH.

Адреса Taproot (P2TR) — начинаются с "bc1p"

Полное название: Pay-to-Taproot (кодировка Bech32m)

Пример: bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297

Путь деривации: m/86'/0'/0' (BIP-86)

Taproot был активирован в Bitcoin в ноябре 2021 (BIP-340, BIP-341, BIP-342). Это самое значимое обновление возможностей скриптов Bitcoin со времён SegWit.

Taproot использует подписи Schnorr вместо ECDSA и вводит модель key-spend/script-spend:

  • Расходование по key path — самый частый случай: одна подпись авторизует расходование, и внешне это неотличимо от любой другой транзакции Taproot.
  • Расходование по script path — сложные условия (multisig, time lock, hash lock) можно зафиксировать через дерево Merkle и раскрывать только при необходимости.

Как работает расходование:

ScriptPubKey: 1 <32-byte-tweaked-public-key>
Witness: <signature> (key path, most common)
— or —
Witness: <script> <control-block> <arguments> (script path)

Преимущества:

  • Приватность — все транзакции Taproot выглядят одинаково в блокчейне вне зависимости от условий расходования. Транзакция multisig неотличима от транзакции с одной подписью при использовании key path.
  • Эффективность — подписи Schnorr меньше, чем подписи ECDSA. Агрегация ключей (MuSig2) позволяет multisig-настройкам выдавать одну объединённую подпись.
  • Гибкость скриптов — MAST (Merkelized Alternative Script Trees) позволяет задавать сложные условия расходования без раскрытия неиспользованных веток.
  • Низкие комиссии — сопоставимы или ниже, чем у нативного SegWit при расходовании по key path.

Недостатки:

  • Поддержка всё ещё расширяется — некоторые кошельки и биржи пока не полностью поддерживают отправку на адреса Taproot и с них.
  • Сложность реализации повышает риск ошибок в кошельках (хотя зрелые реализации уже существуют).
  • Кодировка Bech32m (отличается от Bech32) — ПО кошелька должно поддерживать обе.

Сравнение типов адресов

FeatureLegacy (1...)P2SH (3...)Native SegWit (bc1q...)Taproot (bc1p...)
BIPOriginalBIP-16BIP-141/BIP-173BIP-341/BIP-350
Derivationm/44'/0'/0'm/49'/0'/0'm/84'/0'/0'm/86'/0'/0'
EncodingBase58CheckBase58CheckBech32Bech32m
SignatureECDSAECDSAECDSASchnorr
Fee costHighestMediumLowLowest (key path)
PrivacyLowMediumMediumHigh
Error detectionBasic checksumBasic checksumBCH codesBCH codes
CompatibilityUniversalNear-universalMost walletsGrowing

Какой тип адреса Bitcoin использовать?

Для большинства пользователей в 2025+: используйте Native SegWit (bc1q) по умолчанию. Это лучший баланс низких комиссий, широкой совместимости и зрелой поддержки.

Для максимальной приватности и минимальных комиссий: используйте Taproot (bc1p), если ваш кошелёк поддерживает его, и сервисы, с которыми вы работаете, умеют отправлять на адреса Taproot.

Для совместимости со старыми сервисами: используйте P2SH (3...), если вам нужно получать средства от сервиса, который не умеет отправлять на адреса bc1q или bc1p.

Избегайте Legacy (1...) для новых кошельков, если только у вас нет конкретного требования по совместимости.

Формат адреса Ethereum

Ethereum использует единый формат адреса:

0x742d35Cc6634C0532925a3b844Bc9e7595f2bD38
  • 20 байт (40 шестнадцатеричных символов) с префиксом 0x.
  • Получается из последних 20 байт Keccak-256 хеша публичного ключа.
  • EIP-55 mixed-case checksum — буквы верхнего и нижнего регистра служат checksum. Если изменить регистр любой буквы, checksum не пройдет.
  • Один и тот же формат адреса используется для всех EVM-совместимых сетей (Ethereum, Polygon, Arbitrum, Optimism, BSC).

Важно: отправка токенов по неверной сети (например, ETH mainnet вместо Polygon) на тот же адрес не приводит к потере средств (адрес существует во всех EVM-сетях), но для доступа к ним вам может понадобиться переключить сеть.

ENS (Ethereum Name Service)

ENS даёт человекочитаемые имена для адресов Ethereum:

vitalik.eth → 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

Всегда проверяйте разрешённый адрес перед отправкой средств. Имена ENS можно передавать, поэтому адрес за именем может измениться.

Форматы адресов других блокчейнов

Bitcoin Cash (BCH)

Bitcoin Cash использует формат CashAddr, чтобы отличаться от адресов Bitcoin:

bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a

Префикс bitcoincash: предотвращает случайную отправку на адреса Bitcoin.

Litecoin (LTC)

Litecoin использует типы адресов, похожие на Bitcoin:

  • Legacy: начинается с L или M
  • P2SH: начинается с M или 3
  • Native SegWit: начинается с ltc1q

Solana (SOL)

Solana использует публичные ключи Ed25519 в кодировке Base58:

7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV

32 байта, кодировка Base58, обычно 32-44 символа.

Cardano (ADA)

Cardano использует адреса в кодировке Bech32 с префиксом addr:

addr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzer3jcu5d8ps7zex2k2xt3uqxgjqnnj83ws8lhrn648jjxtwq2ytjqp

Адреса Cardano заметно длиннее адресов Bitcoin, потому что кодируют и платёжные credentials, и staking credentials.

TRON (TRX)

TRON использует адреса в кодировке Base58Check, начинающиеся с T:

TJYeasTPa6gpB9Ut5HALR2twMHU3gYpML8

Cosmos (ATOM)

Cosmos использует кодировку Bech32 с префиксами, специфичными для сети:

cosmos1qypqxpq9qcrsszg2pvxq6rs0zqg3yyc5lzv7xu

Каждая сеть Cosmos SDK использует свой префикс (например, osmo для Osmosis, juno для Juno).

Инструмент SafeSeed

Используйте SafeSeed Address Generator, чтобы получать адреса для нескольких блокчейнов и типов адресов из одной seed phrase. Посмотрите, как одна и та же seed phrase создаёт разные адреса для Bitcoin Legacy, SegWit, Taproot, Ethereum и других сетей. Вся обработка происходит локально в вашем браузере.

Валидация адресов и безопасность

Проверка checksum

Всегда проверяйте адреса перед отправкой средств:

  • Bitcoin Legacy/P2SH: Base58Check включает 4-байтный checksum. Большинство кошельков проверяют это автоматически.
  • Bitcoin SegWit/Taproot: Bech32/Bech32m включает 6-символьный checksum с сильным обнаружением ошибок (BCH codes).
  • Ethereum: EIP-55 mixed-case checksum. Если кошелёк не реализует EIP-55, он примет любой регистр — это тревожный сигнал.

Повторное использование адреса

Для приватности избегайте повторного использования адресов Bitcoin. Каждая транзакция должна использовать новый адрес. HD Wallet (BIP-44) автоматически генерируют новые адреса.

Адреса Ethereum обычно используются повторно (account-based model), хотя использование нескольких аккаунтов может улучшить приватность.

Подмена адреса через буфер обмена

Вредоносное ПО может отслеживать буфер обмена и подменять криптовалютные адреса на адрес атакующего. После вставки всегда визуально проверяйте как минимум первые и последние 6 символов адреса, а в идеале весь адрес. Некоторые кошельки показывают визуальный хеш (identicon) адреса для более удобной проверки.

Проверка QR-кода

При сканировании QR-кода для получения адреса убедитесь, что декодированный адрес соответствует ожидаемому. Вредоносные QR-коды могут содержать адреса, контролируемые атакующим.

Конвертация между типами адресов

Нельзя "конвертировать" адрес между типами (например, Legacy в SegWit), потому что каждый тип использует свой путь деривации и формирует другой набор ключей. Однако вы можете:

  1. Сгенерировать несколько типов адресов из одной seed phrase — ваша seed phrase одновременно выводит ключи для всех типов адресов через разные пути деривации.
  2. Перевести средства с одного типа адреса на другой — просто отправьте транзакцию с вашего Legacy-адреса на ваш SegWit-адрес. Это обычная транзакция Bitcoin.

Невозможно получить доступ к средствам, отправленным на адрес SegWit, используя путь деривации Legacy, потому что они используют разные приватные ключи.

FAQ

В чём разница между адресом Legacy и SegWit?

Адреса Legacy (начинаются с "1") используют исходный формат транзакций Bitcoin. Адреса SegWit (начинаются с "bc1q") используют Segregated Witness, который отделяет данные подписи от данных транзакции, что уменьшает размер транзакции, снижает комиссии и исправляет malleability транзакций. SegWit рекомендуется для всех новых кошельков.

Могу ли я отправить Bitcoin с адреса Legacy на адрес SegWit?

Да. Все типы адресов Bitcoin совместимы на уровне сети. Вы можете отправлять с любого типа адреса на любой другой. Единственная проблема совместимости связана с ПО кошельков — некоторые старые кошельки не умеют создавать транзакции с отправкой на адреса bc1q или bc1p.

Почему мой кошелёк каждый раз показывает новый адрес?

Это ожидаемое поведение для HD Wallet, использующих BIP-44. Новый адрес генерируется для каждой транзакции для улучшения приватности. Все адреса выводятся из одной seed phrase и могут быть восстановлены. Ранее использованные адреса остаются действительными и всё ещё могут получать средства.

Что такое кодировка Bech32?

Bech32 — это формат кодировки адресов, определённый в BIP-173, используемый для нативных адресов SegWit (bc1q). Он использует буквенно-цифровые символы в нижнем регистре (исключая 1, b, i, o), включает BCH checksum с коррекцией ошибок и имеет человекочитаемый префикс (bc для Bitcoin mainnet). Bech32m (BIP-350) — модифицированная версия для адресов Taproot (bc1p).

У какого типа адреса Bitcoin самые низкие комиссии?

Адреса Taproot (bc1p) обычно имеют самые низкие комиссии для расходования по key path благодаря эффективности подписей Schnorr. Native SegWit (bc1q) — очень близкий второй вариант. SegWit в обёртке P2SH (3...) дороже, а адреса Legacy (1...) самые дорогие из-за большего размера транзакций.

Можно ли использовать один и тот же адрес для Bitcoin и Bitcoin Cash?

Нет. Хотя адреса Legacy в Bitcoin и Bitcoin Cash могут выглядеть похоже (оба начинаются с "1"), отправка Bitcoin на адрес Bitcoin Cash (или наоборот) может привести к отправке средств в неправильную сеть. Bitcoin Cash использует формат CashAddr (начинается с "bitcoincash:"), чтобы избежать этой путаницы.

Что произойдёт, если отправить криптовалюту на неверный тип адреса в неверной сети?

Для EVM-сетей (Ethereum, Polygon, BSC и т.д.) один и тот же адрес существует во всех сетях, поэтому средства не теряются — нужно лишь открыть правильную сеть. Для не-EVM-сетей с другим форматом адресов кошельки обычно не позволяют отправить на недействительный адрес. Если каким-то образом средства отправлены на несуществующий формат адреса, они могут быть потеряны навсегда.

Все ли адреса Ethereum имеют один формат?

Да. Ethereum использует единый формат адреса (0x + 40 hex-символов) для всех задач: получения ETH, токенов ERC-20, NFT и взаимодействия со smart contract. Тот же адрес действителен во всех EVM-совместимых сетях.

Связанные руководства