Zelcore
Z
Zelcore TeamMulti-Asset Crypto Wallet & Web3 Ecosystem

Открытые и приватные ключи: почему это важно

6 мин чтения
Открытые и приватные ключи: почему это важно

Представьте, что вам нужно, чтобы человек на другом конце света отправил вам письмо с наличными. Вы могли бы отправить ему открытый навесной замок: он кладёт деньги в коробку, защёлкивает замок и отправляет его обратно. Ключ, который его открывает, есть только у вас. Навесные замки вы раздаёте свободно, а ключ бережёте как зеницу ока. Именно так, почти без исключений, работает каждая криптовалютная транзакция.

Простыми словами

В криптовалютах используется система под названием асимметричная криптография. Она «асимметрична», потому что две математически связанные пары ключей выполняют разные задачи. Ваш публичный ключ (и созданный на его основе адрес кошелька) — это замок, которым вы делитесь со всеми, кто хочет отправить вам средства. Приватный ключ — единственный ключ, который его открывает. Связь между ними основана на односторонней функции: по приватному ключу можно вычислить публичный, но проделать обратный путь и получить приватный ключ по публичному невозможно. Именно это математическое свойство обеспечивает безопасность системы.

Если вы поделитесь с кем-то адресом своего кошелька, этот человек сможет отправить вам криптовалюту — и не более того. Это не даст ему возможности перемещать ваши средства или получать к ним доступ.

Как создаются приватный и публичный ключи

Приватный ключ — это случайно сгенерированное 256-битное число. Его можно представить как астрономически большое случайное целое число, выбранное из настолько обширного диапазона, что вероятность того, что два человека когда-либо сгенерируют одинаковое число, ничтожно мала. Такая случайность иногда называется энтропией и служит основой безопасности.

На основе приватного ключа кошелёк вычисляет публичный с помощью раздела математики, который называется умножением на эллиптической кривой. Большинство блокчейнов использует кривую под названием secp256k1. Алгоритм называется ECDSA (алгоритм цифровой подписи на эллиптических кривых). Публичный ключ получают, умножая точку-генератор кривой secp256k1 на приватный ключ. Это односторонняя операция, которую практически невозможно обратить.

Вам не нужно разбираться в математике. Важно понять принцип: на входе приватный ключ, на выходе публичный — и никакого короткого пути в обратном направлении.

Как из публичного ключа получается адрес кошелька

Адрес кошелька — это не исходный публичный ключ. Это его сжатая хешированная версия. Хеш-функция — это односторонний алгоритм, который преобразует любые входные данные в результат фиксированной длины. Если изменить во входных данных хотя бы один символ, результат изменится полностью.

Например, адреса Bitcoin получают, применяя к публичному ключу сначала SHA-256, а затем RIPEMD-160, добавляя впереди байт версии, вычисляя четырёхбайтовую контрольную сумму с помощью двойного SHA-256 и кодируя всё в Base58Check — компактном формате, устойчивом к опечаткам. В результате получается знакомая строка, начинающаяся с 1, 3 или bc1.

Ethereum использует другой способ: адрес Ethereum — это последние 20 байт хеша публичного ключа Keccak-256 с префиксом 0x. Так получается узнаваемая строка из 42 символов.

Дополнительный этап хеширования важен для безопасности. Даже если в теоретическом будущем математика эллиптических кривых окажется скомпрометирована, злоумышленнику всё равно придётся решить отдельную задачу поиска прообраза хеша, прежде чем он сможет получить доступ к средствам. Благодаря такой многоуровневой защите адреса совсем не похожи на приватные ключи, хотя и получены из них математическим путём.

Что именно контролирует ваш приватный ключ

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

Практическая задача приватного ключа — создавать цифровую подпись. Когда вы подтверждаете транзакцию, кошелёк использует приватный ключ, чтобы создать уникальную подпись, которая доказывает, что вы одобрили именно этот перевод, не раскрывая сам ключ. Любой может проверить подпись с помощью публичного ключа, но создать её мог только обладатель приватного ключа. Так работает транзакция в блокчейне: подписанная вами инструкция отправляется в сеть, валидаторы проверяют подпись, и транзакция записывается в блокчейн.

Ваша сид-фраза (её также называют мнемонической фразой) — это резервная копия в удобном для чтения виде, с помощью которой можно восстановить приватный ключ. Если вы её потеряете, то навсегда лишитесь доступа к средствам. Сид-фразы заслуживают отдельного подробного разбора, но вкратце: храните сид-фразу в такой же тайне, как и сам приватный ключ.

Аппаратные кошельки обеспечивают дополнительную защиту ключей. Они хранят приватный ключ в специальном защищённом чипе, который никогда не передаёт его устройству с подключением к интернету, которым вы пользуетесь. Подпись создаётся внутри аппаратного кошелька, и ключ никогда не покидает устройство.

Чем можно делиться, а чем нельзя

Важно запомнить одно правило:

Распространённая мошенническая схема: фальшивые сотрудники службы поддержки утверждают, что им нужны приватный ключ или сид-фраза, чтобы «проверить» кошелёк или оформить возврат. Надёжные сервисы, в том числе Zelcore, никогда не запрашивают эту информацию. Тем, кто действительно хочет вам помочь, ваш приватный ключ не понадобится.

Ещё один полезный факт: один приватный ключ математически может соответствовать нескольким адресам в разных блокчейнах. Поэтому HD-кошельки (иерархические детерминированные кошельки), созданные на основе стандартов BIP-32 и BIP-44, могут управлять сотнями адресов в разных сетях с помощью одной сид-фразы — достаточно одной резервной копии.

Как кошелёк управляет ключами

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

Важно различать некастодиальное и кастодиальное хранение. Некастодиальный кошелёк, такой как Zelcore, означает, что ключи есть только у вас: программа кошелька не может получить доступ к вашим средствам, как и компания, которая её создала. Кастодиальная биржа хранит приватные ключи за вас. Это удобно, но значит, что вы доверяете свои средства третьей стороне. Сообщество не зря повторяет: «Не ваши ключи — не ваши монеты».

Понимание связи между ключами помогает осознать истинную важность сид-фразы. Она открывает не только одну учётную запись: благодаря деривации BIP-32/BIP-44 из неё можно восстановить целое дерево приватных ключей для каждой учётной записи в кошельке. Правильно создать резервную копию сид-фразы — самое важное, что вы можете сделать для безопасности.

Главное


Читайте также

Сид-фразы: главный ключ ко всем вашим аккаунтам

Сид-фразы: как они работают, как их хранить и что с их помощью нельзя восстановить

Полное руководство по сид-фразам: как BIP-39 кодирует их, как BIP-32/44 выводят каждый ключ в каждом блокчейне, как безопасно хранить сид-фразы, что с их помощью можно и нельзя восстановить и какие проблемы проявляются только при восстановлении.

12 мин чтения
Что такое блокчейн на самом деле?

Что такое блокчейн на самом деле?

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

5 мин чтения
Как на самом деле работают блоки и цепочки

Как на самом деле работают блоки и цепочки

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

5 мин чтения

Подпишитесь на рассылку

Раз в месяц — короткое письмо от нас. Никакого спама, только последние новости Zelcore.

Подпишитесь на рассылку