Публичные ключи и приватные ключи: что это и как они работают
Без приватных и публичных ключей не получится переводить и получать криптовалюту. Они также нужны для обеспечения конфиденциальности и защиты цифровых активов. Их можно использовать из любого устройства и любого криптокошелька, без привязки к месту.
Что такое публичные и приватные ключи
Для работы с криптовалютой используются специальные программы-кошельки. Чтобы переводить и обменивать цифровые деньги, нужно иметь два вида ключей шифрования:
приватный (закрытый);
публичный (открытый).
Оба ключа привязываются к программному кошельку и могут быть импортированы в другой кошелек по желанию пользователя.
Сами монеты имеют форму данных о неизрасходованной транзакции и хранятся в распределенном реестре – блокчейне. Именно для получения доступа к этому реестру и нужны ключи. Без них перевести криптовалюту другому пользователю не получится. То есть основная функция публичного и приватного ключа сводится к обеспечению безопасных транзакций.
Открытый ключ является адресом (счетом), на который пересылаются цифровые деньги. Его могут видеть другие пользователи, поэтому он и называется публичным. При помощи открытого ключа выполняется процесс шифрования – создания транзакции.
Но перевод не будет одобрен администраторами сети, если в нем отсутствует цифровая подпись. Для создания такой подписи используется приватный ключ. Без него пользователь не сможет отправлять криптовалюту на другие кошельки. По этой причине его важно хранить в надежном месте. Желательно на устройстве, которое не подключено к интернету.
Если закрытый ключ шифрования будет утерян, владелец кошелька не сможет получить доступ к своим средствам. Даже если кто-то отправит ему цифровые деньги, у него не получится их использовать.
Также приватный ключ важно защищать и по причине высокой активности мошенников. Если злоумышленники узнают его, они смогут перевести себе все цифровые деньги, которые хранятся на кошельке. Но не имея закрытого ключа мошенник не сможет получить доступ к криптовалютным средствам пользователя, даже если перехватит его трафик.
Как выглядят закрытые и открытые ключи
Каждый из ключей имеет вид уникального набора символов, включающего буквы и цифры. Для примера можно взять ключи шифрования блокчейна bitcoin. Он работает на основе алгоритма шифрования SHA-256, генерирующего 256-битное число. Для более удобной работы с такими числами была создана комбинация, состоящая из 64 символов. Это и есть закрытый ключ.
В сети биткоина используются и другие форматы создания приватных ключей:
Приватный ключ Биткоин (в формате WIF): 51 символ base58, начинается с «5»: 5JPeWYZx922hXi49Lg2RIPWLIqcmDGS9YegMNgANvx8cJa6kNK8
Короткий (сжатый WIF): 52 символа base58, начинается с «К» или «L»: KykxZQLSNPYVtYCsoqFGFnEqpRar997zihJgvfrPo8LapFrAtaea
В НЕХ формате (64 символа [0-9А-F]): 4BBFF74CA25A2A00409DCB24EC0418E9A41F9B3B56216A183E0E9731F4589DC6
В Base64 формате (44 символа): S7/3TKJaKgBAncsk7AQY6aQfmztWIWoY Pg6XMFRYncY=
В большей части криптовалютных кошельков, работающих с ВТС, используется WIF-формат. Для обычных транзакций достаточно сжатого ключа, состоящего из 52 символов. В кошельках для хранения Ethereum чаще всего используется код из 64 символов.
Публичный ключ для работы с транзакциями биткоина тоже может иметь разное количество символов:
Адрес Биткоин кошелька: 1DcEeFRGc4mfRLXWiVZySpmmXk7SsVLfMG
Короткий адрес: 1BSUkuwtdM7gkdy6W4Q954gNKWBgy4A19Q
Публичный ключ (130 символов [0-9А-F]): 04D7AS1212E4EEFE40C72B201E74AA3S57DEFD940ACESC3E1C76B75S77CD45FF9626065170497984F81C23BC8CBEEE64DBD84C9FE113F4A78930A0DA7FA296B3F6D
Публичный ключ (короткий, 66 символов [0-9А-F]): 03D7A51212E4EEFE40C72B201E74AA3557DEFD940ACESC3E107687577CD45FF962
Самый распространенный вариант – это короткий адрес. Он может начинаться с единицы или тройки.
Методы шифрования в криптовалюте
Криптография – это наука о методах сохранения целостности данных и конфиденциальности, она появилась задолго до создания первой криптовалюты. Достижение целей криптографии включает в себя использование разных алгоритмов защиты информации.
Симметричное шифрование
Является самым популярным и простым способом кодирования данных транзакции. Сообщения шифруются и расшифровываются при помощи одного ключа. То есть выполняются симметричные действия.
Получателю сообщения передается ключ, при помощи которого он может раскодировать данные.
Асимметричное шифрование
При таком методе кодирования данных используются 2 ключа:
открытый — нужен для запуска операции;
закрытый – для расшифровки сообщения.
Приватный ключ позволяет ставить электронную подпись в транзакции, подтверждая тем самым ее подлинность. Когда валидаторы видят поступление транзакции с электронной подписью, они определяют эту операцию как действие законного владельца цифровых активов.
Логика здесь простая: закрытый ключ есть только у того, кто владеет средствами на отдельном кошельке. Значит, кроме этого пользователя электронную подпись поставить никто не может, ведь для этого необходимо наличие ключа.
Чтобы избежать потери приватного ключа, нужно записать секретную комбинацию символов в нескольких блокнотах, которые будут храниться в надежном месте, или сохранить ее на специальном устройстве. В этом случае даже при сбое системы или поломке электронных хранилищ пользователь не потеряет доступ к своим запасам криптовалюты.
Хеширование
Так называется еще один метод кодирования счетов пользователей, обеспечивающий надежное шифрование транзакций.
Суть метода сводится к преобразованию любой информации в уникальный набор символов. Он применяется для кодирования больших объемов данных. Расшифровать информацию можно при помощи специального хэш-значения или цифрового отпечатка.
Принцип работы
Публичный ключ используется как для обеспечения конфиденциальности, так и для идентификации пользователя в системе.
Схема применения имеет следующий вид:
Пользователь, которому нужно перевести деньги, дает свой публичный ключ.
Отправитель использует полученный набор символов для шифрования транзакции – ее запуска в безопасном режиме.
Выполняется перевод криптовалюты на указанный адрес криптовалютного кошелька.
Получив перевод, адресат использует приватный ключ для расшифровки транзакции. Секретный набор символов открывает доступ к записи в блокчейне, в которой содержится информация о смене владельца определенного количества криптосредств.
Для более наглядного примера можно представить следующую ситуацию:
Пользователь А хочет отправить 5 биткоинов пользователю Б.
Пользователь Б предоставляет публичный ключ пользователю А.
При помощи публичного ключа пользователь А создает транзакцию и шифрует ее при помощи приватного ключа.
Пользователь Б видит, что ему на кошелек поступили 5 ВТС. Чтобы получить доступ к этим деньгам, он использует приватный ключ своего кошелька, то есть расшифровывает транзакцию, и теперь может пользоваться монетами.
Без приватного ключа авторизовать перевод невозможно, поэтому доступ к полученным цифровым деньгам есть только у владельца секретного набора символов.
Отличия приватного и публичного ключей
Каждый ключ – это набор символов, который используется для проведения транзакции. Но их функции и характеристики имеют отличия.
Уровень доступа
Публичный ключ не является секретным, он доступен всем. Если сторонние пользователи узнают открытый набор символов криптовалютного кошелька, они не смогут установить его владельца. То есть ключ хоть и публичный, но содержит в себе минимум данных.
Приватный ключ должен быть доступен только владельцу кошелька. И его нельзя никому разглашать. Другими словами, тот, кому принадлежит приватный ключ, является владельцем средств на криптовалютном счету.
Процесс шифрования
Если публичный ключ шифрует сообщение, то приватный, наоборот, расшифровывает.
Эти два набора символов работают в паре друг с другом:
Без открытого ключа отправитель не сможет запустить транзакцию.
Без приватного ключа получатель не сможет авторизировать (расшифровать) перевод.
Только использование двух ключей при работе с транзакциями позволяет обеспечить высокий уровень защиты средств.
Изменение приватных ключей (свипинг)
Когда пользователь переходит на новый кошелек, он может перевести все средства со своего старого счета. Для проведения такой транзакции потребуется приватный ключ. Как только средства будут переведены, прежний закрытый набор символов перестает быть нужным. В новом кошельке генерируется его собственный закрытый ключ.
Такая зачистка получила название sweeping – подметание. Этот процесс напоминает перенос драгоценностей из одного сейфа в другой. При этом старый сейф утилизируется за ненадобностью.
Выполнение свипинга может быть полезно в следующих ситуациях:
Появился риск взлома. Например, на ПК установлен десктопный кошелек, и на этом же компьютере была запущена подозрительная программа. Чтобы избежать кражи закрытого ключа, стоит перевести все средства на другой кошелек.
Появилась необходимость ликвидации старого кошелька. При выходе более удобного приложения можно перевести на него средства, отказавшись от устаревшего варианта.
Ключ был потерян, но пользователь помнит мнемоническую фразу. Речь идет о специальном наборе слов, введя которые можно восстановить доступ к счетам. Эти слова формируются в процессе регистрации кошелька. Переводить все средства нужно по той причине, что утерянный закрытый ключ может быть кем-то найден. Теоретически в самый неожиданный момент криптовалюту могут украсть.
Если приходится пользоваться закрытым ключом, полученным от другого человека. Когда секретную комбинацию символов знает 2 пользователя, всегда есть риск кражи средств. Лучше сразу перевести монеты на другой кошелек, закрытый ключ которого не будет известен третьим лицам.
При работе с криптовалютой нужно всегда отслеживать текущий уровень защиты кошелька.
Импортирование ключей
Помимо свипинга, можно выполнить импорт приватных ключей. В этом случае в новый кошелек переносятся не сами монеты, а именно комбинации символов – закрытый ключ.
Импорт нужен, если пользователь регистрируется в новом приложении и не хочет отказываться от старого кошелька. Для транзакций в каждом из них будет использоваться один приватный ключ. Таким образом будет создано 2 работающих кошелька с одной комбинацией символов для расшифровки транзакций и создания цифровой подписи.
Например, у пользователя может быть биткоин счет, который его устраивает. Но ему также нужен мультивалютный кошелек, чтобы работать с разными блокчейнами и криптовалютами. Тогда пользователь может установить еще один кошелек и скопировать в него закрытый ключ своего десктопного кошелька.
При импорте важно уделить внимание защите приватного ключа на новом ПО.
Как правильно хранить закрытые ключи
Выбирая способ хранения, нужно ориентироваться на ключевую задачу: оставить как можно меньше возможностей для доступа к кошельку через сеть. Только после выполнения этого условия есть смысл обращать внимание на функционал кошелька.
Злоумышленники могут украсть криптовалюту, получив доступ к содержимому жесткого диска на ПК, а также взломав аккаунт на облачном сервисе или онлайн-платформе. Чтобы такого не случилось, нужно использовать самые надежные варианты защиты.
К ним относятся 3 способа хранения приватных ключей:
Аппаратные кошельки. Эти устройства считаются более безопасными, чем десктопные кошельки, мобильные приложения и онлайн-сервисы. Они имеют вид флешки и содержат механизмы защиты данных. Для осуществления перевода аппаратный кошелек подключается к ПК. С него отправляется транзакция и там же подписывается. После зашифрованное сообщение передается в сеть. Современные аппаратные кошельки устроены так, что даже при взломе ПК мошенники не смогут получить доступ к закрытому ключу подключенного к компьютеру кошелька.
Компьютер или смартфон. Для хранения значительной суммы в криптовалюте есть смысл использовать отдельное устройство. В целях безопасности оно должно быть постоянно отключено от сети, и его можно включать только для проведения транзакций.
Бумажные носители. Это может быть блокнот или ламинированный листок с записанным закрытым ключом. Можно сделать несколько копий, чтобы при потере одной из них сохранить доступ к цифровым деньгам.
При использовании криптокошельков нужно позаботиться о создании предельно надежного хранилища закрытого ключа.
Некоторые кошельки сами генерируют закрытый ключ, который потом нужно просто запомнить. Есть специальные сервисы, позволяющие создать собственный секретный набор случайных чисел и букв. Также они дают возможность придумать и seed-фразу, при помощи которой восстанавливается доступ к кошельку.