В предыдущих уроках мы выяснили, как блокчейн хранит данные, как майнеры защищают сеть через Proof of Work и как Proof of Stake использует залог вместо энергии. Но ни один из этих механизмов не объясняет главного: откуда блокчейн знает, что именно вы — владелец своих монет? Как он отличает вас от миллиарда других участников без паспорта, логина и колл-центра, куда можно позвонить, если всё пошло не так?
Ответ — в математике. Той самой, которая делает криптовалюту принципиально другой системой владения.
В этом уроке вы узнаете:
- как из случайного числа рождается адрес кошелька — и почему восстановить ключ из адреса математически невозможно
- как цифровая подпись доказывает владение монетами, не раскрывая секрет
- как работает цепочка приватный ключ → публичный ключ → адрес
- как из одной seed-фразы из 12–24 слов получаются тысячи адресов во всех блокчейнах
- что такое «25-е слово», WIF-формат и мультиподпись
- почему квантовые компьютеры пока не угрожают вашим монетам
После этого урока вы поймёте, почему в криптовалюте нет кнопки «забыл пароль» — и почему это не баг, а ключевое свойство системы.
Аналогия: замок и ключ
Представьте почтовый ящик в подъезде. У него есть номер — его знают все, кто хочет бросить вам письмо. Есть прорезь — через неё любой может опустить конверт. И есть замок — открыть ящик и достать содержимое может только тот, у кого есть ключ.
В криптовалюте устроено именно так, только вместо ящика — адрес в блокчейне.
- Публичный ключ — аналог замка и прорези: любой может отправить монеты на адрес, зная его.
- Адрес кошелька — номер ящика: строка символов, которую можно публично сообщать кому угодно.
- Приватный ключ — единственный ключ от замка: только владелец может «достать» монеты, то есть подписать транзакцию и отправить их дальше.
Самое важное свойство этой системы: из замка нельзя изготовить ключ. Зная адрес кошелька и даже публичный ключ, математически невозможно вычислить приватный ключ. Это не вопрос вычислительной мощности «на сегодня» — это фундаментальное свойство математики, лежащей в основе.
Показывать адрес и публичный ключ — безопасно. Приватный ключ нельзя сообщать никому и никогда: ни поддержке, ни «партнёрам», ни родственникам. Кто знает приватный ключ — тот владеет монетами. Без исключений.
Как создаётся пара ключей
Всё начинается с числа. Большого случайного числа.
Представьте, что вы открыли кошелёк впервые и нажали «Создать новый кошелёк». В этот момент приложение обращается к генератору случайных чисел вашего устройства и получает 256-битное число — последовательность из 256 нулей и единиц. Это и есть ваш приватный ключ.
256 бит — это число от 1 до 2256. Для понимания масштаба: атомов в наблюдаемой вселенной насчитывают от 1078 до 1082. А 2256 ≈ 1077. Вероятность того, что кто-то случайно «угадает» ваш приватный ключ, исчезающе мала — она не отличима от нуля на практике.
Из приватного ключа через алгоритм ECDSA (Elliptic Curve Digital Signature Algorithm — алгоритм цифровой подписи на эллиптических кривых) вычисляется публичный ключ. Математику объяснять не будем — важно понять свойство: это односторонняя функция. Из приватного ключа легко вычислить публичный. Обратное вычисление — практически невозможно.
Адрес кошелька — финальный шаг цепочки:
- Публичный ключ проходит через одну или несколько хэш-операций (как мы разбирали в уроке про устройство блока).
- Результат кодируется в короткую читаемую строку.
- Для Bitcoin применяется Base58Check-кодирование. Адреса начинаются с
1(формат P2PKH),3(P2SH) илиbc1(SegWit — сегрегированный свидетель, современный формат с меньшими комиссиями). - Для Ethereum: берётся Keccak-256 хэш публичного ключа, из него — последние 20 байт, добавляется префикс
0x. Получается строка вроде0x71C7656EC7ab88b098defB751B7401B5f6d8976F.
Вся цепочка выглядит так: случайное число → приватный ключ → публичный ключ → адрес. Каждый шаг — в одну сторону. Вернуться назад нельзя.
Источник случайности (entropy — энтропия) критически важен при создании ключа. Аппаратные кошельки используют аппаратный генератор случайных чисел, движения устройства, дополнительные источники шума. Если энтропия слабая — приватный ключ предсказуем, а значит, уязвим.
Цифровая подпись: как доказать владение без раскрытия ключа
Теперь допустим, что у вас есть монеты на адресе и вы хотите их отправить. Блокчейну нужно убедиться, что вы — законный владелец, а не кто-то, кто просто знает ваш адрес. Но как это сделать, если отдавать приватный ключ нельзя?
Именно для этого существует цифровая подпись (digital signature).
Когда кошелёк формирует транзакцию, он берёт данные этой транзакции — кому, сколько, с какого адреса — и подписывает их приватным ключом. Результат — уникальная подпись, которая содержит математическое доказательство того, что подписавший знает приватный ключ. Сам ключ в подпись не входит.
Нода (node — узел сети, компьютер-участник блокчейна) проверяет подпись с помощью публичного ключа. Она не знает ваш приватный ключ — и не нуждается в нём. Математика позволяет проверить корректность подписи, имея только публичный ключ.
Аналогия: нотариальная печать. Нотариус скрепляет документ своей личной печатью — никто другой не может её воспроизвести, даже зная, как она выглядит снаружи. Но любой человек может взглянуть на документ и убедиться, что печать настоящая. Цифровая подпись работает по тому же принципу, только вместо физической печати — математика.
У каждой подписи есть важное свойство: она привязана к конкретным данным транзакции. Невозможно «вырезать» подпись из одной транзакции и вставить в другую — подпись перестанет быть корректной, потому что данные изменились. Именно поэтому нельзя отправить монеты с чужого адреса, даже если вы наблюдали миллион его транзакций и видели все его подписи.
Адрес ≠ кошелёк: важное различие
Разберём распространённое заблуждение, которое приводит к панике: «я удалил кошелёк — у меня пропали монеты».
Монеты в блокчейне — это записи в реестре, не файлы на вашем устройстве. Адрес — это строка символов, которая служит «местом» в блокчейне, где числится баланс. Когда вы «отправляете» монеты, физически ничего не перемещается: просто меняется запись в общем реестре. На адресе отправителя стало меньше, на адресе получателя — больше.
Кошелёк (wallet — приложение) — это программа, которая управляет ключами, создаёт транзакции и подписывает их. Если вы удалите приложение — ключи пропадут с устройства, но записи в блокчейне останутся нетронутыми. Восстановите кошелёк по seed-фразе (резервной фразе из 12–24 слов, которую кошелёк показывает при первом создании, — подробно о ней ниже) — и увидите прежний баланс.
Из этого следуют несколько важных выводов:
- Один кошелёк может управлять сотнями адресов — это норма.
- Потеря устройства не равна потере монет — если у вас есть seed-фраза, кошелёк восстанавливается в любом совместимом приложении.
- Потеря seed-фразы — равна потере монет навсегда. Никто не сможет помочь.
- MetaMask, Trust Wallet, Ledger — это интерфейсы для управления ключами. Монеты не «внутри» них.
Проверьте: знаете ли вы, где хранится seed-фраза от вашего кошелька? Если нет — это первоочередная задача. Подробно о методах хранения — в уроке 3.2.
HD-кошельки и seed-фраза: как из 12 слов получаются все адреса
Раньше каждый адрес требовал отдельного приватного ключа. Пользователи Bitcoin в 2010–2012 годах буквально хранили файл с сотнями ключей — и каждая резервная копия устаревала при создании нового адреса. Один потерянный файл — и часть монет терялась навсегда.
В 2012 году появился стандарт BIP-32, который решил эту проблему через концепцию HD-кошелька (Hierarchical Deterministic wallet — иерархически детерминированный кошелёк). Идея: из одного «мастер-ключа» математически выводится дерево дочерних ключей — сколько угодно, и всегда одни и те же при том же мастер-ключе. Одна резервная копия — защищает все адреса сразу, настоящие и будущие.
Мастер-ключ — это 128 или 256 бит случайных данных. Стандарт BIP-39 описывает, как превратить их в запоминаемые слова: каждые 11 бит кодируются одним словом из стандартного словаря в 2048 слов. Так получаются 12 (из 128 бит) или 24 слова (из 256 бит) — ваша seed-фраза.
Последнее слово в seed-фразе содержит контрольную сумму (checksum — цифровой отпечаток для проверки). Если вы записали фразу с опечаткой — кошелёк при восстановлении сообщит об ошибке. Это страховка от случайных ошибок при записи.
Из одной seed-фразы получаются адреса для разных блокчейнов через деривационные пути (derivation path — путь вывода ключей). Стандарт BIP-44 описывает формат: m/44'/coin_type'/account'/change/address_index.
| Блокчейн | Деривационный путь | Первый адрес |
|---|---|---|
| Bitcoin (Legacy) | m/44’/0’/0’/0/0 | начинается с 1 |
| Bitcoin (SegWit) | m/84’/0’/0’/0/0 | начинается с bc1 |
| Ethereum | m/44’/60’/0’/0/0 | начинается с 0x |
| Solana | m/44’/501’/0’/0′ | строка в Base58 |
| Cosmos (ATOM) | m/44’/118’/0’/0/0 | начинается с cosmos1 |
| BNB Chain | m/44’/60’/0’/0/0 | тот же адрес, что Ethereum |
Именно потому, что популярные кошельки — MetaMask, Ledger, Trezor, Trust Wallet — следуют одним и тем же стандартам BIP-32/BIP-39/BIP-44, ваша seed-фраза работает в любом из них. Это не магия, а совместимость через открытые стандарты.
coin_type в деривационном пути — уникальный номер для каждого блокчейна. Для Bitcoin это 0, для Ethereum — 60, для Solana — 501. Именно поэтому одна seed-фраза даёт разные адреса в разных сетях: математика работает с разными числами на входе.
Passphrase: 25-е слово для параноиков
Стандарт BIP-39 предусматривает необязательное расширение: passphrase (иногда называют «25-е слово» или «BIP-39 passphrase»). Это дополнительная пользовательская фраза, которую вы задаёте сами — в отличие от стандартных 12 или 24 слов, она нигде не хранится.
Механика такая: seed-фраза + passphrase вместе образуют другой мастер-ключ, а значит — совершенно другие адреса. Без passphrase этот кошелёк просто не существует. Если кто-то нашёл листок с вашей seed-фразой — без passphrase он не получит доступ к «защищённому» кошельку.
Это двухфакторная защита в чистом виде: «что имею» (seed-фраза) плюс «что знаю» (passphrase).
Важно понимать: большинство пользователей с passphrase никогда не столкнутся. MetaMask, Trust Wallet и другие программные кошельки эту функцию не предлагают. Passphrase — опция в настройках аппаратных кошельков Trezor и Ledger, которую нужно явно включить. Если вы создаёте кошелёк первый раз — об этом можно не думать.
Главная опасность passphrase — её потеря или опечатка. В отличие от seed-фразы, здесь нет контрольной суммы: любая ошибка в одном символе создаёт другой кошелёк без предупреждения. Если вы забудете passphrase или запишете её неверно — монеты пропадут навсегда. Это инструмент для опытных пользователей с крупными суммами, которые понимают, что делают и как хранят оба компонента защиты.
WIF и другие форматы: как хранится приватный ключ
Приватный ключ — это 256-битное число (32 байта). В «сыром» виде он выглядит как 64 шестнадцатеричных символа: e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262.
Для Bitcoin существует удобный формат хранения и импорта — WIF (Wallet Import Format). Это Base58Check-кодировка приватного ключа: человекочитаемый формат с встроенной контрольной суммой. WIF-ключи начинаются с символа 5 (несжатый формат) или K / L (сжатый). Выглядит примерно так: L2vQ1HEqGkBhxGjLkLpJQm3s8Dc...
Ethereum использует hex-формат напрямую, без обёртки WIF.
Почему «голый» приватный ключ опасен в обычной работе? Потому что достаточно одной случайности:
- Скопировать ключ в буфер обмена — и он останется доступным для вредоносных программ.
- Сделать скриншот экрана с ключом — изображение может попасть в облачную синхронизацию.
- Вставить ключ в форму на фишинговом сайте под видом «импорта».
- Передать через мессенджер — сообщения хранятся на серверах.
- Ввести в онлайн-генератор «для проверки» — ключ немедленно скомпрометирован.
Seed-фраза безопаснее для резервного копирования: в ней есть контрольная сумма (вы сразу узнаете об опечатке), и большинство пользователей работают с ней привычнее. WIF и hex-формат нужны в узких технических сценариях — например, при ручном импорте ключа в другое приложение или при работе с кастомным кошельком.
Правило простое: работайте с seed-фразой, не с приватными ключами напрямую. Приватный ключ — это внутренний механизм, seed-фраза — ваш человекочитаемый резерв.
Квантовые компьютеры и будущее криптографии
Этот вопрос задают регулярно: «Когда квантовый компьютер взломает Bitcoin?» Разберём честно, без паники и без преуменьшения.
Алгоритм ECDSA, на котором строится криптография Bitcoin и Ethereum, теоретически уязвим для алгоритма Шора — квантового алгоритма, способного решать задачи дискретного логарифма на эллиптических кривых. Для взлома 256-битного ECDSA потребовался бы квантовый компьютер с примерно 1 500 логическими (fault-tolerant) кубитами.
Реальное состояние дел в 2026 году: лучшие квантовые компьютеры IBM и Google оперируют около 1 000–2 000 физических кубитов. Но физический кубит и логический кубит — принципиально разные вещи. Для создания одного логического кубита нужны сотни физических из-за коррекции ошибок. До «криптографически релевантного» квантового компьютера — минимум 10–15 лет по самым оптимистичным оценкам.
Есть нюанс: открытые адреса (те, с которых вы хотя бы раз отправляли монеты) уязвимы больше, чем адреса только для получения. Когда вы отправляете транзакцию, публичный ключ становится виден в блокчейне. Адреса, с которых никогда не отправляли, — публичный ключ скрыт за хэшем, что даёт дополнительный слой защиты.
Американский институт стандартов NIST в 2024 году завершил процесс стандартизации постквантовых алгоритмов: CRYSTALS-Kyber (для обмена ключами) и CRYSTALS-Dilithium (для подписей). Ethereum и Bitcoin-сообщества активно обсуждают пути миграции на постквантовую криптографию. Переход возможен через хардфорк, когда угроза станет реальной.
Угроза реальная, но не срочная. Блокчейн-сообщество занимается этим заблаговременно, и у вас есть время следить за развитием темы в ленте крипто-новостей — без паники.
Multisig: владение несколькими ключами
До сих пор мы говорили о схеме «один ключ — один адрес». Но блокчейн поддерживает более сложную схему: multisig (multiple signatures — множественная подпись).
Идея: адрес требует M подписей из N возможных ключей. Например, схема 2 из 3 означает, что для отправки монет нужны подписи любых двух из трёх назначенных ключей.
Практические применения multisig разнообразны:
- Личная безопасность при крупных суммах: три ключа на разных устройствах в разных местах. Хакер, взломавший один — ничего не получит.
- DAO-казначейства: управление общими средствами требует голосования нескольких участников.
- Корпоративные кошельки: для перевода нужно одобрение финансового директора и генерального — как два подписанта на банковском счёте.
- Семейный резерв: три ключа у разных членов семьи — страховка от внезапной потери.
- Партнёрские фонды: никто из участников не может вывести средства единолично.
Gnosis Safe — наиболее популярный Ethereum-протокол для multisig, под управлением которого в 2026 году находится более $100 млрд. Для Bitcoin multisig существует нативная поддержка через P2SH и P2WSH-адреса (начинаются с 3 и bc1 соответственно).
Multisig — инструмент для суммы от $50 000. Для большинства пользователей достаточно обычного аппаратного кошелька плюс надёжного хранения seed-фразы. Не усложняйте схему без нужды: чем больше ключей, тем больше точек отказа.
Главное преимущество схемы 2 из 3: потеря одного ключа — не катастрофа. У вас остаётся два рабочих ключа, чтобы восстановить доступ. Хакеру, в свою очередь, нужно скомпрометировать минимум два независимых устройства — что несравнимо сложнее, чем взломать одно.
Подробнее о том, как выбрать конкретный кошелёк и где физически хранить seed-фразу, — в уроке 3.2 модуля «Безопасность и кошельки».