Адрес — это строка-идентификатор, на которую можно отправить криптоактив (монеты или токен). В терминах сетей: адрес — «псевдоним» публичного ключа (или его производной), записанный в удобном для пользователя формате. По адресу сеть понимает, чьей подписью должен сопровождаться расход входящих средств.
Адреса бывают разных форматов (hex, Base58, Bech32), зависят от цепочки (Биткоин, Ethereum и др.) и модели учёта (UTXO vs аккаунты). Несмотря на внешнее разнообразие, фундамент одинаков: криптография открытого ключа, хеш-функции и правила валидации транзакций.
От ключей к адресу: общая схема
1) Пара ключей. Кошелёк генерирует приватный ключ и связанный с ним публичный ключ (см. приватный ключ и публичный ключ). Приватный — для подписи, публичный — для проверки.
2) Производный идентификатор. В биткоин-подобных сетях адрес — это хеш публичного ключа (или скрипта условий), закодированный в читаемый вид и снабжённый чек-суммой. В аккаунтных сетях (Ethereum) адрес — это последние 20 байт хеша публичного ключа, записанные в hex.
3) Отображение и проверка. Пользователь видит «красивую» строку; узлы сети по ней восстанавливают бинарное представление, проверяют чек-сумму и сверяют подписи при расходе.
Важно. Адрес — это не хранилище и не «счёт» в банковском смысле. В UTXO-модели это «ярлык» для будущей траты конкретных выходов (см. UTXO), в аккаунтной — «имя» записи состояния (баланс + nonce).
Две модели учёта: UTXO и аккаунты
| Модель | Примеры сетей | Что «лежит» на адресе | Как расходуются средства | Особенности |
|---|---|---|---|---|
| UTXO | Биткоин, Litecoin, Zcash | Выходы транзакций (монеты-атомы) | Входы новой транзакции ссылаются на старые выходы; остаток = «сдача» | Параллелизм трат, детерминируемость, повышенная приватность при одноразовых адресах |
| Аккаунтная | Ethereum, Solana | Состояние аккаунта (баланс/хранилище) | Баланс уменьшается/увеличивается; порядок задаёт nonce | Удобство смарт-контрактов, легко считать остаток, адреса EOA и контрактов |
Связка с адресами. В UTXO-цепях адрес обращается в «скрипт условий» (кто и как может тратить); в аккаунтных — адрес указывает на запись состояния (для EOA — внешний аккаунт, для контракта — код и storage).
Форматы адресов: как они выглядят
Hex-адреса (Ethereum). Строки вида 0x… из 40 шестнадцатеричных символов. Чек-сумма EIP-55 кодируется регистрoм букв (смешанный lower/UPPER); она помогает отлавливать опечатки. Для контрактов адрес вычисляют детерминированно (CREATE/CREATE2) из адреса создателя и nonce/саля.
Base58 (классические биткоин-адреса). Адрес начинается на «1…» (P2PKH) или «3…» (P2SH). Внутри — версия, полезная нагрузка и 4-байтовая чек-сумма; алфавит Base58 исключает похожие символы (O/0, I/l).
Bech32/Bech32m (современные биткоин-адреса). bc1… (или tb1… в тестнете). Разработан для SegWit/Taproot: удобней для QR, устойчив к частым опечаткам, не чувствителен к регистру. Чек-сумма встроена в хвост адреса.
ENS/имена (людские «алиасы»). Системы вроде ENS — это не адрес, а удобное имя, которое разрешается в адрес с помощью смарт-контрактов/записей. Отправка всегда идёт на адрес; имя выступает как уровень удобства и может меняться.
Виды адресов в популярных сетях
Биткоин.
- P2PKH (Legacy) — «1…»: платёж на хеш публичного ключа.
- P2SH — «3…»: платёж на хеш скрипта (мультиподпись, вложенный SegWit и т.п.).
- P2WPKH / P2WSH (SegWit) — bc1q… / bc1q… (длины различаются): дешевле комиссии, без наследия ошибок формата.
- P2TR (Taproot) — bc1p…: современные ключевые пути и сценарии без раскрытия лишнего.
Ethereum.
- EOA — адрес внешнего аккаунта (подписывается приватным ключом, платит gas).
- Contract — адрес со сто́ром и кодом; не может подписывать, действует через вызовы.
- CREATE2 — адрес контракта заранее известен по (соль, байткод, адрес создателя); полезен для «предсказываемых» развёртываний.
Lightning (не адреса). В Lightning Network платежи идут через счета/инвойсы и маршруты, а не на «адрес» L1. Тем не менее для пополнения и закрытия каналов используются обычные биткоин-адреса.
Как создаётся адрес: пошагово
1) Инициализация кошелька. Вы генерируете seed (см. seed-фразу), из которой детерминированно выводятся пары ключей. Это удобно: бесконечное дерево одноразовых адресов получаетcя из одного бэкапа.
2) Генерация ключей. Для каждого нового приёма средств кошелёк создаёт новую пару ключей или новый скрипт (мультисиг и т.п.).
3) Формирование адреса.
- UTXO-сети: применяются хеши к публичному ключу/скрипту → добавляется версия → кодируется строка (Base58/Bech32).
- Аккаунтные сети: берётся хеш публичного ключа, берут его 20 байт → 0x… → добавляют EIP-55-чек-сумму (регистр букв).
4) Публикация адреса. Вы показываете строку (часто QR) контрагенту. Для UX нередко используют URI: bitcoin:addr?amount=… / ethereum:0x…?value=….
5) Приём и расход. Поступление фиксируется в сети. Когда вы тратите, формируется подпись приватным ключом (или исполняется логика контракта), и узлы убеждаются, что это правомерный расход.
Приватность и повторное использование адресов
Публичные реестры ≠ приватность. Любой может просматривать блокчейн и строить граф платежей. Повторное использование одного и того же адреса облегчает кластеризацию и deanonymization.
Практики для UTXO-сетей:
- Одноразовые адреса. На каждый входящий платёж — отдельный адрес; кошелёк сам управляет деревом.
- Сдача на новый адрес. Отправляйте «change» на свежий внутренний адрес.
- Coin control. Избегайте объединения «чистых» и «публичных» UTXO в одной трате.
Практики для аккаунтных сетей:
- Разделяйте назначения. Для публичной деятельности (донаты, DAO) и приватного хранения лучше иметь разные адреса (EOA).
- С осторожностью к именам. ENS-ника достаточно, чтобы связать активность.
Подробнее — в руководстве по приватности.
Безопасность: чем рискует владелец адреса
Адрес ≠ приватный ключ. Адрес можно смело публиковать. Никогда не делитесь приватным ключом/seed (см. self-custody и безопасность).
Поisoning / «пыль». Злоумышленники присылают «копейки» на ваш адрес, чтобы подтолкнуть к ошибочным тратам или создать «шум» в аналитике. Кошельки должны уметь игнорировать пыль.
Подмена буфера обмена / QR. Малварь меняет адрес в буфере; QR-коды могут вести на чужие сети. Всегда сверяйте первые/последние символы и используйте чек-суммы (EIP-55/Bech32).
Неправильная сеть/токен. Адреса разных сетей могут выглядеть похоже (EVM-сети), но актив уходит «не туда». Проверяйте, что сеть и токен совпадают; при необходимости используйте мосты или мультичейн-подсказки кошелька.
Фишинг через «похожие имена». Имена-алиасы (ENS и т.п.) могут отличаться на один символ. Проверяйте домены/рекорды, не кликайте на «поддельные» ссылки.
Типичные ошибки с адресами и как их избежать
- Опечатка в адресе. Решается чек-суммами и QR. Никогда не печатайте вручную длинные строки.
- Отправка на старый адрес биржи. У бирж меняются пулы адресов. Проверяйте адрес перед каждой отправкой.
- Отправка токена не в той сети. USDT в ERC-20 ≠ USDT в TRC-20 и т.п. Проверяйте сеть и мосты.
- Потеря «сдачи». В UTXO-сетях кошелёк сам создаёт адрес «change». Не редактируйте вручную, если не уверены.
- Смешивание средств. Не отправляйте «чистые» и «публичные» монеты одним чеком; используйте «coin control».
- Платёж «из контракта». В Ethereum не все контракты принимают plain ETH. Следите за интерфейсом получателя (смарт-контракты).
Адреса и смарт-контракты
В аккаунтной модели адрес может указывать на контракт — объект с кодом и хранилищем. Отличия:
- контракт не подписывает сообщения — им управляют транзакции от EOA;
- адрес контракта детерминирован (CREATE/CREATE2), что полезно для «предсказуемых» развёртываний (пулы, DEX);
- многие контракты хранят внутренние «балансы» токенов по адресам; перевод токена — это вызов функции (например, transfer), а не нативная отправка.
Практика: проверяйте, что ваш адрес совместим с логикой контракта (например, умеет ли контракт принимать ETH/токен), и что у отправителя достаточно gas.
Адреса и L2/межсетевое взаимодействие
Rollups. На L2 адреса обычно идентичны L1 (EVM-совместимые сети). Отправляя актив, убедитесь, что вы в нужной сети: межсетевые переводы делают через мост (контракт → контракт).
Сайдчейны. В сайдчейнах адрес может совпадать с L1-форматом, но активы — другие (wrapped). Проверьте обозначения сети в UI кошелька/биржи.
Lightning. Адреса L1 используются для пополнения/вывода; сами платежи идут по инвойсам. Для «статических» приёмов в Lightning применяются офферы (см. BOLT12 Offers).
Как читать адрес безопасно: чек-лист для пользователя
- Сверяйте первые/последние 4–6 символов и длину.
- Проверяйте сеть (Ethereum/Arbitrum/Polygon и т.д.).
- Для токенов — контракт и десятичность (decimals).
- Для Биткоина — формат (1…, 3…, bc1…) и поддерживается ли он получателем.
- Для повторных платежей — обновляйте адрес биржи/мерчанта.
- Не отправляйте «вслепую» на адрес из чата/почты без проверки домена/подписей.
Продвинутое: одноразовые и «стелс-адреса», мультиподписи
Одноразовые адреса. В UTXO-модели — норма: каждый платёж приходит на новый адрес из вашего дерева ключей. Это повышает приватность.
Мультиподпись (multisig). Адрес может соответствовать скрипту (например, 2-из-3). Такой адрес не «знает», кто именно подписывает; проверка идёт по скрипту условий.
Стелс-адреса (stealth). Техники «адрес по meta-address» позволяют принимать платежи без обмена конкретным одноразовым адресом. Отправитель вычисляет его локально, а получатель находит перевод по событиям и «view-ключу». Это повышает приватность получателя в публичных реестрах.
Часто задаваемые вопросы (FAQ)
Можно ли «переименовать» адрес? Нет. Адрес — следствие ключа/скрипта. Можно публиковать алиасы (ENS), но сами переводы идут на адрес.
Зачем разные форматы в Биткоине? Новые форматы (Bech32/Taproot) экономят место, снижают комиссии и улучшают UX (устойчивость к опечаткам). Старые форматы поддерживаются ради совместимости.
Почему биржа каждый раз даёт новый адрес? Для приватности и внутреннего учёта. Всегда берите актуальный адрес из интерфейса.
Что будет, если ошибся на один символ? Чек-суммы часто спасают (строка станет «невалидной»), но не всегда. Если транзакция ушла в сеть и подтверждена — отменить нельзя.
Может ли кто-то «угадать» мой приватный ключ по адресу? При корректной реализации и надёжной криптографии — практически невозможно. Риски — в фишинге, малвари и утечках seed.
Чем отличается адрес контракта от EOA? EOA «подписывает» и платит gas; контракт — получает вызовы и действует по своему коду.
Сравнение ключевых форматов
| Сеть | Формат строки | Пример начала | Чек-сумма | Примечание |
|---|---|---|---|---|
| Bitcoin | Base58 (Legacy) | 1… / 3… | 4 байта в хвосте | Исторические форматы P2PKH/P2SH |
| Bitcoin | Bech32/Bech32m | bc1… | Встроенная | Для SegWit/Taproot, дружелюбно к QR |
| Ethereum | Hex (EIP-55) | 0x… | Регистр букв | 20-байтовый хеш публичного ключа |
| EVM L2 | Hex | 0x… | Регистр букв | Совпадает с L1, но другая сеть |
Лучшие практики
- Всегда копируйте-вставляйте адрес (или сканируйте QR), не вводите вручную.
- Для Биткоина используйте Bech32 там, где возможно — это дешевле и надёжнее.
- Включайте coin control и одноразовые адреса в UTXO-сетях.
- Разделяйте «публичные» и «приватные» кошельки/адреса в аккаунтных сетях.
- Храните seed и приватные ключи офлайн; делайте резервные копии (см. seed-фраза).
- Проверяйте сеть/токен перед отправкой и читайте всплывающие предупреждения кошелька.
- Следите за подсказками по безопасности и приватности.
