ШКОЛА
КРИПТОВАЛЮТЫ
Журнал о цифровых деньгах
Знания. Инструменты. Практика.
Все материалы ↗

Как работает криптокошелёк: адрес, приватный ключ и доступ к средствам

Что на самом деле хранит криптокошелёк, чем адрес отличается от ключа и сид-фразы, и как сравнить биржевой счёт, приложение, аппаратный кошелёк и мультиподпись по контролю ключей.

Матовый конверт и отдельный металлический ключ на бумажной поверхности, разделённые синей полосой.
Редакционная иллюстрация · OpenAI
В этом материале

Криптокошелёк не хранит монеты. Монеты записаны в блокчейне за адресом, а кошелёк хранит приватный ключ, который даёт право ими распоряжаться, и показывает баланс, считанный из сети. Отсюда главный вопрос при выборе любого кошелька: у кого ключ. Если ключ у вас, вы отвечаете за его сохранность и резервную копию. Если ключ у сервиса, доступ зависит от правил и надёжности этого сервиса.

Адрес, ключ и приложение: три разные вещи

Путаница начинается с того, что словом «кошелёк» называют сразу три объекта. Документация Ethereum разводит их явно: в разделе об аккаунтах сказано, что аккаунт не является кошельком, а кошелёк – это интерфейс или приложение для работы с аккаунтом.

Что есть что, на примере Ethereum
ОбъектЧто этоМожно показыватьЧто будет при утечке
АдресПубличный идентификатор, 42 символа вида 0x…Да, его дают для получения средствПосторонний увидит баланс и историю, но не сможет потратить
Приватный ключСекрет из 64 шестнадцатеричных символов, которым подписываются транзакцииНетПосторонний получает полный контроль над аккаунтом
Сид-фразаСписок слов, из которого кошелёк заново выводит ключи созданных из неё аккаунтовНетПосторонний может получить контроль над аккаунтами, выведенными из этой фразы
ПриложениеПрограмма или устройство, которое хранит ключ, показывает баланс и подписываетНе секрет само по себеОпасна поддельная версия приложения, выманивающая ключ или фразу

На странице о кошельках ethereum.org описывает приложение как средство, которое даёт контроль над аккаунтом: с ним вы входите в приложения, видите баланс, отправляете транзакции и подтверждаете свою личность.

Как ключ превращается в адрес

Цепочка односторонняя, и это стоит понимать на уровне принципа. По документации Ethereum:

  1. Кошелёк генерирует случайный приватный ключ: 64 шестнадцатеричных символа, то есть 32 байта или 256 бит.
  2. Из него по алгоритму цифровой подписи на эллиптических кривых (ECDSA) вычисляется публичный ключ.
  3. От публичного ключа берётся хеш Keccak-256, от хеша – последние 20 байт, и к ним добавляется префикс 0x. Получается адрес длиной 42 символа: 40 шестнадцатеричных знаков плюс 0x.

Пройти эту цепочку в обратную сторону, от адреса к ключу, практически невозможно. Поэтому адрес можно спокойно публиковать. Учебный расчёт размеров, выполненный в Python: 32 байта дают 2256 вариантов ключа, это примерно 1,16 × 1077; 20 байт адреса дают 40 шестнадцатеричных знаков, вместе с префиксом 42. Длина примера адреса из документации ethereum.org совпала с расчётом.

В Bitcoin детали форматов адресов другие, но роль ключа та же. По описанию bitcoin.org, кошелёк хранит секретный приватный ключ и подписывает им транзакции, а подпись доказывает, что транзакция пришла от владельца, и не даёт её изменить.

Зачем нужна сид-фраза

Современные кошельки управляют множеством ключей сразу. Хранить каждый отдельно неудобно, поэтому кошелёк выдаёт одну резервную фразу, чаще всего из 12 или 24 слов (стандарт BIP-39 допускает также 15, 18 и 21), из которой детерминированно выводятся ключи созданных в этом кошельке аккаунтов. Аккаунт, импортированный по отдельному приватному ключу, к фразе не относится: справка MetaMask описывает импорт по ключу как добавление одного аккаунта, и восстанавливать его придётся этим же ключом. Ethereum.org в разделе о кошельках предупреждает: записать фразу в надёжном месте нужно сразу, потому что часто это единственный способ восстановить доступ. Как устроена фраза и как её выманивают, разобрано отдельно в материале «Сид-фраза: что она открывает и как избежать её утечки».

Виды кошельков по форме

Ethereum.org перечисляет такие формы: аппаратные устройства, которые держат ключи офлайн, мобильные приложения, веб-кошельки в браузере, расширения для браузера и настольные программы. Форма определяет удобство и поверхность атаки, но не отвечает на вопрос, у кого ключ.

  • Аппаратный кошелёк. Bitcoin.org называет такие устройства лучшим балансом между высокой безопасностью и удобством: на них нельзя установить сторонние программы, поэтому они устойчивы к уязвимостям компьютера. Ethereum.org добавляет, что ключ на таком устройстве не касается интернета и сильно снижает риск взлома, даже если злоумышленник получил контроль над компьютером.
  • Мобильное или настольное приложение. Ключ хранится на устройстве, обычно зашифрованным паролем. Удобно для небольших сумм на каждый день; bitcoin.org как раз советует держать на телефоне или компьютере только небольшие суммы, а остальное в более защищённой среде.
  • Расширение браузера. Удобно для работы с децентрализованными приложениями, но браузер является главным местом фишинга: поддельные сайты, запросы подписи, вредоносные расширения.
  • Аккаунт на бирже. Формально это тоже «кошелёк» в интерфейсе, но ключи держит биржа, а у вас логин и пароль.

Горячий и холодный кошелёк

Ещё одно деление встречается в описаниях сервисов. Бюллетень Комиссии по ценным бумагам США для инвесторов объясняет его так: горячий кошелёк подключён к интернету, удобен для операций, но открыт киберугрозам; холодный обычно представляет собой физический носитель без подключения к сети, например устройство или даже лист бумаги. Холодный кошелёк менее удобен, зато в целом лучше защищён от сетевых атак. Его, однако, можно потерять, повредить или украсть, поэтому резервная копия нужна и здесь.

Сравнение по контролю ключей

Здесь собрана главная практическая разница. Таблица описывает модели хранения без привязки к брендам.

Кто контролирует ключ и как восстанавливается доступ
МодельКлюч у когоКак восстановить доступГлавный риск
Биржевой (кастодиальный) счётУ сервисаЧерез сервис по его правилам и проверке личностиВзлом, банкротство, заморозка или ограничения сервиса
Программный кошелёкУ вас, на устройствеПо сид-фразе; импортированные аккаунты по их собственным ключамВредоносная программа, фишинг, утеря фразы
Аппаратный кошелёкУ вас, в устройствеПо сид-фразе на новом устройствеУтеря фразы, подпись вредной транзакции по невнимательности
Мультиподпись, например 2 из 3У вас или у группы, по частямПо любым двум из трёх ключейСложность настройки и хранения нескольких копий

Про кастодиальное хранение bitcoin.org пишет прямо: когда ключами управляет третья сторона, вы полностью зависите от её надёжности и честности, а биржи и онлайн-кошельки бывали взломаны, разорялись или замораживали доступ. Бюллетень Комиссии по ценным бумагам США для инвесторов добавляет: при взломе, закрытии или банкротстве кастодиана вы можете потерять доступ к активам. Подробное сравнение ответственности и ограничений вынесено в материал «Биржа или личный кошелёк: кто контролирует доступ».

Учебный пример: одна потеря, четыре исхода

Учебный пример. Сценарий условный, реальные кошельки и средства не использовались.

Представьте, что телефон украли. Что дальше, зависит от модели хранения.

  • Биржевой счёт. Вы меняете пароль и обращаетесь в поддержку. Деньги в безопасности, пока у вора нет доступа к почте и второму фактору. Восстановление идёт по правилам сервиса.
  • Программный кошелёк на телефоне. Ключ был на устройстве, зашифрованный паролем. Вы устанавливаете кошелёк на новое устройство, вводите сид-фразу и переводите средства на новый адрес, пока вор не подобрал пароль. Без фразы (и без отдельной копии ключа) восстановить доступ не получится.
  • Аппаратный кошелёк дома, приложение на телефоне. Приложение само по себе не подписывает траты: нужна кнопка на устройстве. Кража телефона неприятна, но ключ не скомпрометирован.
  • Мультиподпись 2 из 3. Один ключ на телефоне потерян, но два других позволяют перевести средства на новую схему. Расчёт для этой модели приведён в статье о бирже и кошельке.

Как выбрать подход

Универсального правильного варианта нет, есть соответствие задаче. Несколько вопросов помогают решить.

  1. Сумма и срок. Деньги на ближайшие траты и долгосрочные сбережения разумно хранить по-разному. Bitcoin.org предлагает именно такое разделение: небольшие суммы на устройстве, основное в защищённой офлайн-среде.
  2. Готовность отвечать за копию. Самостоятельное хранение требует один раз правильно записать фразу и потом годами её не потерять. Ethereum.org подчёркивает, что в крипте нет службы поддержки, которая вернёт доступ.
  3. Сети и токены. Кошелёк должен поддерживать нужную сеть. Ethereum.org отмечает, что большинство кошельков работают с несколькими сетями, но конкретный список нужно смотреть в документации кошелька.
  4. Наследование. Bitcoin.org советует подумать о завещании: если никто не знает, где кошелёк и пароли, средства после вас будут недоступны.

Чек-лист первого запуска кошелька

  • Скачивайте приложение только по ссылке с официального сайта проекта, адрес которого вы проверили сами. Рекламные ссылки и ссылки из чатов для этого не годятся.
  • Запишите сид-фразу на бумаге. Ethereum.org предупреждает, что снимок экрана может синхронизироваться в облако и стать доступным злоумышленникам.
  • Включите пароль и блокировку приложения.
  • Отправьте сначала небольшую тестовую сумму и проверьте её поступление в обозревателе. Как читать статус и поля перевода, описано в инструкции «Как проверить перевод криптовалюты по хешу транзакции».
  • Убедитесь, что понимаете, как восстановить доступ, ещё до того, как положите туда заметную сумму.

Частые вопросы

Пропадут ли деньги, если удалить приложение?

Нет, если сид-фраза сохранена: средства записаны в блокчейне, и после восстановления их покажет кошелёк, который поддерживает тот же стандарт фразы, тот же путь вывода ключей и нужную сеть. Если вы задавали дополнительный пароль к фразе, его тоже нужно ввести, иначе откроется другой набор ключей. Подробности в материале о сид-фразе. Если фразы нет и ключ был только в удалённом приложении, доступ потерян.

Почему один и тот же адрес виден в разных сетях?

Совместимые с Ethereum сети используют одинаковый формат адреса, поэтому ключ управляет «одним и тем же» адресом в каждой из них. Балансы при этом раздельные: средства в одной сети не видны в другой.

Кто видит мой баланс?

Любой, кто знает адрес. Bitcoin.org указывает, что все транзакции хранятся публично и постоянно, поэтому баланс и история любого адреса доступны каждому, хотя личность владельца остаётся неизвестной, пока её не раскроют.

Итог

Кошелёк – это ключ плюс программа, которая им пользуется. Адрес можно показывать, ключ и сид-фразу нельзя никому. Выбирая кошелёк, сначала решите, кто будет хранить ключ и как вы восстановите доступ, а уже потом смотрите на удобство интерфейса.

Источники и подготовка

Материал подготовлен с помощью Claude по указанным источникам. Учебные примеры отмечены в тексте. Как мы работаем.

Следующий вопрос