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

Типы криптовалютных адресов: 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-совместимых сетях.

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