Публичный ключ — это криптографический аналог приватного ключа. Вместе они позволяют вам доказать владение криптовалютой, не раскрывая секрет, который её контролирует.
Резюме
- Публичный ключ — это большое число, математически выводимое из приватного ключа с помощью умножения на эллиптической кривой, односторонней функции, которую быстро вычислить в прямом направлении, но практически невозможно обратить.
- Биткоин и Эфириум используют одну и ту же эллиптическую кривую secp256k1, которая генерирует 256-битные приватные ключи и 512-битные несжатые публичные ключи (или 257-битные сжатые публичные ключи).
- Адрес кошелька — это не то же самое, что публичный ключ; адрес — это более короткая хешированная версия публичного ключа, предназначенная для упрощения обмена и повышения устойчивости к некоторым теоретическим атакам.
- Приватный ключ подписывает транзакции, публичный ключ проверяет эти подписи, а адрес получает средства. Потеря приватного ключа означает постоянную потерю доступа; раскрытие публичного ключа или адреса не несёт риска для безопасности средств.
- Уязвимость прошивки Coldcard в июле 2026 года, которая выявила слабую генерацию приватных ключей, затронувшую 116 миллионов долларов в биткоинах, подчёркивает, почему правильная генерация и хранение ключей остаются наиболее критическими аспектами самостоятельного хранения.
Криптография с открытым ключом — это основа каждой криптовалютной транзакции, однако большинство пользователей никогда не взаимодействуют со своим публичным ключом напрямую. Они видят адреса кошельков, сканируют QR-коды и подтверждают переводы, не понимая математического слоя, который делает возможным владение без доверия.
Этот слой важен, потому что его понимание меняет ваше отношение к безопасности. Публичный ключ — это не пароль. Это не секрет. Это число, которым вы можете поделиться с кем угодно, и из которого никто не сможет вывести приватный ключ, контролирующий ваши средства. Эта асимметрия — легко пройти в одном направлении, но невозможно вернуться назад — позволяет незнакомцам в интернете отправлять друг другу деньги, не доверяя банку, правительству или друг другу.
Как работают пары ключей
Каждый криптовалютный кошелёк построен на паре ключей: один приватный и один публичный. Приватный ключ — это случайно сгенерированное число, обычно длиной 256 бит, что означает, что оно является одним из примерно 10 в степени 77 возможных значений. Для контекста: предполагаемое количество атомов в наблюдаемой вселенной составляет около 10 в степени 80. Пространство ключей достаточно велико, чтобы подбор конкретного приватного ключа методом перебора не был практической проблемой при текущих или обозримых технологиях.
Публичный ключ выводится из приватного ключа с помощью умножения на эллиптической кривой. Биткоин и Эфириум используют одну и ту же кривую, называемую secp256k1. Приватный ключ умножается на фиксированную точку на этой кривой, называемую генераторной точкой, и результатом является другая точка на кривой. Этот результат и есть публичный ключ.
Критическое свойство заключается в том, что это умножение является односторонней функцией. Имея приватный ключ, вычислить публичный ключ можно за долю секунды. Имея только публичный ключ, вычислить приватный ключ требует решения проблемы дискретного логарифма на эллиптической кривой, для которой не существует известного эффективного решения. Эта асимметрия является всей основой безопасности криптовалют.
Публичный ключ против адреса кошелька
Распространённое заблуждение состоит в том, что адрес кошелька и публичный ключ — это одно и то же. Это не так. Адрес выводится из публичного ключа с помощью одного или нескольких раундов хеширования — процесса, который укорачивает вывод и добавляет дополнительный уровень безопасности.
В Биткоине процесс выглядит следующим образом. 512-битный несжатый публичный ключ (или 257-битный сжатый публичный ключ) пропускается через SHA-256, затем через RIPEMD-160, что даёт 160-битный хеш. Добавляется байт версии, добавляется контрольная сумма, и результат кодируется в формате Base58Check. Конечный результат — знакомый адрес Биткоина, начинающийся с 1, 3 или bc1.
В Эфириуме процесс проще. 512-битный публичный ключ пропускается через Keccak-256 (вариант SHA-3), и последние 20 байт (160 бит) хеша становятся адресом. Добавляется префикс «0x» и необязательная контрольная сумма EIP-55 для получения знакомого адреса Эфириума.
Причина хеширования открытого ключа в адрес частично практическая (более короткие строки легче передавать), а частично защитная. Если квантовые компьютеры когда-либо станут способны взломать криптографию на эллиптических кривых, им понадобится открытый ключ, а не адрес, чтобы получить закрытый ключ. Адреса, которые никогда не использовались для отправки транзакций, никогда не раскрывали свой открытый ключ в блокчейне, что добавляет теоретический уровень квантовой устойчивости.
Как цифровые подписи подтверждают право собственности
Когда вы отправляете криптовалюту, вы не перемещаете монеты из одного места в другое. Вы создаете сообщение, которое гласит: «Я авторизую перевод суммы X с моего адреса этому получателю», и подписываете это сообщение своим закрытым ключом. Подпись доказывает, что человек, создавший сообщение, контролирует закрытый ключ, связанный с адресом отправителя, не раскрывая сам закрытый ключ.
Процесс проверки использует открытый ключ. Любой, кто запускает узел в сети, может взять сообщение транзакции, цифровую подпись и открытый ключ отправителя и выполнить математическую проверку, которая подтверждает, что подпись была создана соответствующим закрытым ключом. Если проверка проходит, транзакция действительна. Если она не проходит, транзакция отклоняется.
Вот почему потеря закрытого ключа катастрофична. Нет закрытого ключа — нет возможности создавать действительные подписи, а значит, нет возможности авторизовать транзакции с этого адреса. Средства остаются в блокчейне, видны всем, но навсегда недоступны. Не существует механизма восстановления «забыл пароль», потому что нет центрального органа, который хранит резервную копию.
Цепочка генерации ключей
В современных кошельках отдельные закрытые ключи не генерируются независимо. Вместо этого единый мастер-сид производит все ключи в кошельке через детерминированный процесс, определенный BIP-32 (иерархические детерминированные кошельки) и BIP-39 (мнемонические сид-фразы).
Процесс начинается с энтропии, источника случайности. Программное обеспечение кошелька или аппаратное устройство генерирует случайное число, обычно 128 или 256 бит. Эта энтропия кодируется как мнемоническая фраза из 12 или 24 слов, взятых из стандартизированного списка из 2048 слов. Мнемоническая фраза в сочетании с необязательной парольной фразой пропускается через функцию деривации ключа (PBKDF2) для получения 512-битного мастер-сида.
Из мастер-сида выводится иерархическое дерево ключевых пар. Каждая ветвь дерева может генерировать миллиарды уникальных закрытых ключей и соответствующих им открытых ключей и адресов. Вот почему одна сид-фраза может восстановить весь кошелек со всеми его адресами: сид детерминированно регенерирует каждую ключевую пару в иерархии.
Последствие для безопасности заключается в том, что сид-фраза является корнем всех ключей. Любой, кто получит сид-фразу, может регенерировать каждый закрытый ключ, каждый открытый ключ и каждый адрес, который кошелек когда-либо использовал или будет использовать. Защита сид-фразы эквивалентна одновременной защите каждой ключевой пары в кошельке.
Сжатые и несжатые открытые ключи
Раннее программное обеспечение Bitcoin использовало несжатые открытые ключи, которые включают обе координаты x и y точки на эллиптической кривой. Несжатый открытый ключ составляет 65 байт: 1-байтовый префикс (0x04), за которым следуют 32 байта для координаты x и 32 байта для координаты y.
Поскольку уравнение эллиптической кривой означает, что для любой заданной координаты x существуют только два возможных значения y (одно четное, одно нечетное), достаточно хранить только координату x и один бит, указывающий, является ли y четным или нечетным. Это дает сжатый открытый ключ размером 33 байта: 1-байтовый префикс (0x02 для четного y, 0x03 для нечетного y), за которым следуют 32 байта для координаты x.
Сжатые ключи экономят место в транзакциях, что снижает комиссии. С 2012 года большинство программного обеспечения Bitcoin по умолчанию использует сжатые открытые ключи. Ethereum использует несжатые открытые ключи внутри, но удаляет байт префикса при выводе адреса, используя только 64-байтовые значения x и y.
Различие важно для совместимости. Сжатый и несжатый открытые ключи, полученные из одного и того же закрытого ключа, дают разные адреса в Bitcoin. Импорт закрытого ключа в кошелек, использующий другой формат сжатия, чем исходный кошелек, приведет к генерации другого адреса, что может вызвать путаницу, если средства были отправлены на адрес другого формата.
Реальные сбои безопасности ключей
Теория, лежащая в основе криптографии с открытым ключом, обоснована, но сбои реализации привели к значительным потерям.
В июле 2026 года исследователи обнаружили, что аппаратный кошелек Coldcard в течение пяти лет генерировал слабые закрытые ключи. Флаг сборки в прошивке указывал устройству пропустить выделенный чип аппаратного генератора случайных чисел, что приводило к предсказуемой энтропии. Злоумышленник реверс-инжинирингом выявил эту уязвимость и начал опустошать кошельки 30 июля, выведя около 116 миллионов долларов в биткоинах до того, как уязвимость была публично раскрыта.
Урок заключается в том, что безопасность ключевой пары полностью зависит от качества случайности, используемой для генерации закрытого ключа. Теоретически невзламываемый 256-битный ключ бесполезен, если генератор случайных чисел неисправен, смещен или предсказуем. Именно поэтому авторитетные аппаратные кошельки используют выделенные генераторы истинных случайных чисел и позволяют пользователям добавлять собственную энтропию (например, броски игральных костей) в качестве дополнительной защиты.
Другие исторические инциденты включают уязвимость Android SecureRandom в 2013 году, которая привела к генерации дублирующихся случайных чисел в нескольких биткоин-кошельках, что позволило злоумышленникам вычислять закрытые ключи из подписей транзакций. Генератор ванити-адресов Profanity был взломан в сентябре 2022 года, когда исследователи обнаружили, что его генерация ключей использует 32-битное зерно, сокращая эффективное ключевое пространство с 2 в степени 256 до 2 в степени 32, что составляет примерно 4 миллиарда возможностей, которые можно перебрать за считанные минуты.
Публичные ключи и смарт-контракты
На платформах смарт-контрактов, таких как Ethereum, криптография с открытым ключом служит двойной цели. Она защищает внешние аккаунты (EOA), стандартные пользовательские кошельки, управляемые закрытыми ключами, и аутентифицирует сообщения, подписанные этими аккаунтами при взаимодействии со смарт-контрактами.
Когда пользователь вызывает функцию смарт-контракта, транзакция включает цифровую подпись, созданную закрытым ключом пользователя. Виртуальная машина Ethereum проверяет эту подпись на соответствие открытому ключу отправителя перед выполнением функции. Так смарт-контракт узнает, что лицо, вызывающее «перевести 100 USDC на адрес X», действительно является владельцем переводимых токенов.
Смарт-контрактные кошельки (кошельки с абстракцией аккаунта, представленные ERC-4337) могут модифицировать эту модель. Вместо использования только одного закрытого ключа, смарт-контрактный кошелек может требовать несколько подписей, биометрическую аутентификацию, социальное восстановление или лимиты расходов, обеспечиваемые кодом. Открытый ключ остается частью системы, но правила, определяющие действительную авторизацию, становятся программируемыми.
Кастодиальное и некастодиальное управление ключами
На централизованной бирже биржа хранит закрытые ключи, и пользователи получают доступ к своим средствам через традиционную аутентификацию (имя пользователя, пароль, двухфакторные коды). Пользователь никогда не видит открытый или закрытый ключ. Биржа подписывает транзакции от имени пользователя.
При самостоятельном хранении пользователь владеет закрытым ключом (или сид-фразой, которая его генерирует) и несет полную ответственность за его безопасность. Открытый ключ и адрес создаются локально, и ни одна третья сторона не имеет доступа к возможности подписи.
Компромисс очевиден. Кастодиальные решения удобны, но вводят контрагентский риск: если биржа взломана, неплатежеспособна или замораживает вывод средств, средства пользователя находятся под угрозой. Самостоятельное хранение устраняет контрагентский риск, но вводит операционный риск: если пользователь потеряет сид-фразу, неправильно ее хранит или станет жертвой фишинга, средства будут потеряны навсегда.
Мультиподписные схемы разделяют разницу, распределяя управление ключами между несколькими сторонами или устройствами. Мультиподпись 2-из-3 требует любых двух из трех закрытых ключей для подписания транзакции, поэтому потеря одного ключа не приводит к постоянной потере, а компрометация одного ключа не дает злоумышленнику контроль.
Что не рассматривается в этой статье
В этой статье не рассматриваются постквантовые криптографические схемы, такие как решетчатые подписи, которые исследуются в качестве замены криптографии на эллиптических кривых в случае, если станут возможны крупномасштабные квантовые компьютеры. В ней не рассматривается математика эллиптических кривых за пределами концептуального уровня. В ней не рассматриваются конкретные руководства по настройке кошельков, так как они различаются в зависимости от продукта и часто меняются.
Практические проверки для защиты ваших ключей
Никогда не делитесь своим закрытым ключом или сид-фразой. Ни один легитимный сервис, агент поддержки или раздача не попросят их. Любой запрос этих учетных данных является мошенничеством без исключений.
Проверяйте формат адреса перед отправкой. Вредоносное ПО для буфера обмена может заменить скопированный адрес на адрес злоумышленника. Всегда визуально подтверждайте первые и последние несколько символов адреса после вставки.
Используйте аппаратные кошельки для значительных сумм. Аппаратные кошельки генерируют и хранят закрытые ключи на выделенном чипе, который никогда не раскрывает их подключенному к интернету устройству. Изучите послужной список производителя в отношении генерации энтропии перед покупкой.
Добавляйте собственную энтропию, когда это возможно. Некоторые аппаратные кошельки позволяют пользователям дополнять генератор случайных чисел устройства вручную введенной случайностью, например, подбрасыванием монеты или бросанием костей. Это снижает риск неисправного аппаратного генератора случайных чисел.
Храните резервные копии сид-фразы в нескольких надежных местах. Одна копия, хранящаяся в одном месте, уязвима для огня, наводнения или кражи. Металлические резервные копии сид-фразы лучше противостоят воздействию окружающей среды, чем бумажные.
Что такое открытый ключ в криптовалюте?
Открытый ключ — это большое число, полученное из закрытого ключа с помощью умножения на эллиптической кривой. Он служит криптографической идентификацией, которая проверяет подписи транзакций, не раскрывая закрытый ключ. Любой может видеть открытый ключ, и его раскрытие не ставит под угрозу безопасность средств.
Является ли открытый ключ тем же самым, что и адрес кошелька?
Нет. Адрес кошелька получается из открытого ключа с помощью одного или нескольких раундов криптографического хеширования. Адрес короче и его легче передавать. В биткоине один и тот же закрытый ключ может создавать разные адреса в зависимости от того, используются ли сжатые или несжатые открытые ключи.
Может ли кто-то украсть мою криптовалюту, если знает мой открытый ключ?
Нет. Открытый ключ предназначен для распространения. Вычисление закрытого ключа из открытого требует решения задачи дискретного логарифма на эллиптической кривой, для которой не существует известного эффективного решения при современных вычислительных технологиях.
Что произойдет, если я потеряю свой закрытый ключ?
Средства, связанные с этим ключом, станут навсегда недоступными. Механизма восстановления не существует, потому что в сетях криптовалют нет центрального органа, хранящего резервные копии. Вот почему резервные копии сид-фразы критически важны для кошельков с самостоятельным хранением.
В чем разница между открытым ключом и закрытым ключом?
Закрытый ключ — это случайно сгенерированное секретное число, используемое для подписи транзакций. Открытый ключ получается из закрытого ключа и используется для проверки подписей. Закрытый ключ должен оставаться секретным; открытый ключ можно свободно распространять.
Как сид-фраза связана с открытыми и закрытыми ключами?
Сид-фраза (12 или 24 слова) кодирует мастер-энтропию, из которой детерминированно выводятся все закрытые ключи в кошельке. Каждый закрытый ключ создает соответствующий открытый ключ и адрес. Защита сид-фразы защищает все пары ключей, которые кошелек когда-либо сгенерирует.
Какую эллиптическую кривую используют биткоин и Ethereum?
И биткоин, и Ethereum используют эллиптическую кривую secp256k1. Она создает 256-битные закрытые ключи и 512-битные несжатые открытые ключи (или 257-битные сжатые открытые ключи). Кривая была выбрана за ее эффективность и хорошо изученные свойства безопасности.
Могут ли квантовые компьютеры взломать криптографию с открытым ключом?
Теоретически достаточно мощный квантовый компьютер, работающий по алгоритму Шора, мог бы вывести закрытый ключ из открытого. Однако такого квантового компьютера не существует по состоянию на 2026 год. Адреса, которые никогда не использовались для отправки транзакций, не раскрывали свой открытый ключ в блокчейне, что добавляет уровень защиты. Постквантовые схемы подписи исследуются в качестве будущей замены.






