Приватный ключ
Приватный ключ — это уникальная криптографическая строка (256-битное число), которая дает право подписывать транзакции и управлять средствами на соответствующем адресе. В отличие от seed-фразы, приватный ключ привязан к конкретному адресу, а не ко всему кошельку. Передача приватного ключа равносильна передаче всех средств на этом адресе.
Как устроен приватный ключ
Приватный ключ — это 256-битное случайное число, которое генерируется при создании криптокошелька. Из приватного ключа через алгоритм эллиптической криптографии (ECDSA, secp256k1) выводится публичный ключ, а из него — адрес кошелька. Этот процесс математически односторонний: по адресу или публичному ключу вычислить приватный ключ невозможно.
В записанном виде приватный ключ выглядит как строка из 64 шестнадцатеричных символов (например, a1b2c3d4...) или в формате WIF (Wallet Import Format) — строка из 51–52 символов, начинающаяся с «5», «K» или «L» для Bitcoin.
Приватный ключ vs seed-фраза
Это два разных уровня контроля. Seed-фраза (BIP-39) — мастер-ключ, из которого математически выводятся приватные ключи для всех адресов кошелька. Один кошелек MetaMask содержит тысячи потенциальных адресов, каждый со своим приватным ключом — и все они выводятся из одной seed-фразы.
Приватный ключ привязан к одному конкретному адресу. Экспорт приватного ключа из MetaMask (Настройки → Безопасность → Экспорт приватного ключа) дает контроль только над этим адресом, но не над остальными адресами того же кошелька. Компрометация приватного ключа опаснее, чем кажется: злоумышленник может создать бесконечно много транзакций с этого адреса, пока на нем есть средства.
Где хранится приватный ключ
В программных кошельках (MetaMask, Trust Wallet) приватный ключ хранится в зашифрованном виде на устройстве в файле keystore. Пароль кошелька расшифровывает файл при каждой подписи транзакции. Это означает, что физический доступ к устройству + знание пароля дают полный контроль над ключами.
В аппаратных кошельках (Ledger, Trezor) приватный ключ хранится в защищенном чипе (Secure Element) и никогда не покидает устройство. Транзакция подписывается внутри чипа — компьютер получает только подписанную транзакцию, но не сам ключ. Это единственный способ хранения, при котором ключ защищен даже от вредоносного ПО на компьютере.
Как злоумышленники похищают приватные ключи
Фишинговые сайты просят «импортировать» или «верифицировать» кошелек через ввод приватного ключа. Вредоносные расширения браузера перехватывают ключ при его вводе в веб-форму. Clipboard hijacking — вредоносное ПО следит за буфером обмена и фиксирует строки, похожие на приватный ключ.
Инфостилеры (RedLine Stealer, Vidar, Raccoon) сканируют файловую систему в поисках файлов keystore, wallet.dat и других форматов хранения ключей. Некоторые стилеры нацелены именно на директории данных MetaMask и Trust Wallet в браузере. В 2024 году инфостилеры стали основным вектором кражи ключей у розничных пользователей.
Форматы представления приватного ключа
Hex (шестнадцатеричный) — 64 символа (0–9, a–f). Используется в Ethereum и большинстве EVM-совместимых сетей. WIF (Wallet Import Format) — Base58Check-кодированный формат для Bitcoin, начинается с «5» (несжатый) или «K»/«L» (сжатый). Именно в WIF-формате ключи обычно хранятся в файле wallet.dat Bitcoin Core.
Keystore JSON — зашифрованный файл с приватным ключом, защищенный паролем. Используется в MetaMask и Ethereum-кошельках. Для расшифровки нужен как файл, так и пароль — потеря любого из них означает невозможность доступа.
Публичный ключ и адрес кошелька
Публичный ключ выводится из приватного через умножение на эллиптической кривой. Адрес кошелька выводится из публичного ключа через хеширование (Keccak-256 для Ethereum, SHA-256 + RIPEMD-160 для Bitcoin). Оба процесса необратимы: ни адрес, ни публичный ключ не позволяют восстановить приватный ключ.
Публичный ключ и адрес кошелька безопасно передавать кому угодно: это «номер счета», по которому можно получать средства. Приватный ключ — это «подпись», дающая право тратить эти средства. Только нарушение безопасности приватного ключа несет риск потери средств.
Часто задаваемые вопросы
Можно ли восстановить приватный ключ, если он утерян?
Если есть seed-фраза — да, приватный ключ для любого адреса выводится из нее заново через BIP-32/BIP-44. Если нет ни ключа, ни seed-фразы — доступ к адресу невозможно восстановить: перебор 256-битного числа займет больше времени, чем существование Вселенной.
Чем отличается приватный ключ от публичного?
Публичный ключ (и адрес кошелька) можно передавать кому угодно — это ваш "номер счета". Приватный ключ — "подпись" для управления этим счетом. Передача публичного ключа безопасна. Передача приватного ключа — полная потеря контроля над средствами на этом адресе.
Безопасно ли хранить приватный ключ в файле на компьютере?
Нет. Файлы уязвимы к инфостилерам и вирусам. Оптимально — аппаратный кошелек (Ledger, Trezor), где ключ физически не покидает устройство. Если аппаратного кошелька нет — зашифрованный keystore-файл на офлайн-носителе.
Может ли кто-то угадать мой приватный ключ?
Нет. Количество возможных приватных ключей — 2^256. Случайно угаданный ключ — физически невозможное событие. Уязвимость возникает только при ненадлежащем хранении или плохой генерации случайных чисел.
Что делать, если приватный ключ был скомпрометирован?
Немедленно создайте новый адрес и переведите все средства до того, как злоумышленник это сделает. Если средства уже выведены — зафиксируйте TxID и обратитесь в KarCrypto. Скомпрометированный ключ нельзя "отозвать" — можно только эвакуировать средства быстрее злоумышленника.