Публичные и приватные ключи: как они устроены в криптовалютах?

| КЛЮЧЕВЫЕ МОМЕНТЫ |
| — Цель публичных и приватных ключей — доказать, что проведённая транзакция действительно была подписана владельцем средств, а не была подделана. — Когда вы владеете криптовалютами, это значит ,что на самом деле вы владеете «приватным ключом». Он даёт право его владельцу расходовать связанные с ним криптовалюты. Поскольку он предоставляет доступ к вашим криптовалютам, соответственно его следует держать в секрете (и безопасности). — Публичный ключ можно восстановить, если вы владеете приватным ключом. Однако наоборот эта схема не работает: восстановить приватный ключ из одного лишь публичного ключа не удастся. |
Если вы интересуетесь криптовалютой, возможно, вам будет интересно узнать, как вообще устроен ваш криптокошелёк. И вы в этом не одиноки, ведь это далеко не самая простая технология.
Конечно, у криптокошелька есть множество сторон: лежащая в основе технология блокчейн, которая позволяет ему работать, устройство, которое вы используете для инициации транзакции, и то, как это устройство взаимодействует с сетью. Но если вы хотите досконально разобраться в том, как устроены криптокошельки, возможно, сначала стоит узнать, как они связаны с блокчейном.
Вы наверняка уже знаете, что ваш криптокошелёк для работы использует публичные и приватные ключи. Но знаете ли вы, что публичные и приватные ключи существовали задолго до появления криптовалюты? Всё это благодаря концепции криптографии под названием криптосистема с открытым ключом (Public Key Cryptography, PKC) или асимметричное шифрование.
Но что именно всё это значит?
Происхождение публичных и приватных ключей
Общая цель PKC — обеспечить защищённую конфиденциальную связь с использованием цифровых подписей в открытом канале, где потенциально могут присутствовать злоумышленники, осуществляющие слежение.
Благодаря этому PKC позволяет переходить из одного состояния в другое, делая обратный процесс практически невозможным. Этот процесс доказывает, что у вас есть доступ к секрету, не раскрывая его третьей стороне. Чтобы успешно это сделать, PKC использует важную математическую концепцию под названием «односторонняя функция с потайным входом» (Trapdoor function, TDF). Проще говоря, односторонние функции с потайным входом — это математические задачи, которые легко вычислить в одном направлении, но практически невозможно сделать это в обратном направлении. По сути, это идеальный способ подтверждения подлинности, так как односторонняя функция с потайным входом означает, что еë невозможно подделать.
Решение этой задачи потребует от компьютеров огромного количества времени (тысячи лет), чтобы получить правильный ответ. В контексте PKC такие математические трюки, как факторизация целых чисел, являются односторонними функциями с потайным входом, которые делают реверс-инжиниринг (т. е. подделку) криптографических подписей невозможным. Для этого компьютеру потребуется решить практически нерешаемую математическую задачу.
Для обеспечения вашей безопасности PKC использует двухключевую модель с публичным и приватным ключами. Именно эти два важных компонента работают сообща, чтобы сохранить вашу важную информацию в безопасности. Но при чëм здесь криптовалюта?
Публичные и приватные ключи в криптовалюте
Собственно, приватные и публичные ключи необходимы и для надёжной работы публичных блокчейнов. В контексте криптовалют криптография на основе публичных ключей (PKC) используется для доказательства того, что транзакция была подписана владельцем средств, а не мошенником или злоумышленником.
Как же это вписывается в технологию блокчейна, о которой вы уже знаете? И что же на самом деле влечëт за собой «подписание» транзакции? Для начала давайте вспомним, как работают публичные и приватные ключи в криптокошельках.
Публичные и приватные ключи в криптокошельках
Как правило, каждый криптокошелёк использует приватный и публичный ключ. Проще говоря, вы можете делиться своим публичным ключом с кем угодно. И наоборот: ваш приватный ключ — это пароль, который откроет кому угодно доступ к средствам на этом публичном адресе.
Однако на самом деле всë немного сложнее.
Что такое приватные ключи?
Приватные ключи лежат в основе каждого счёта в блокчейне и необходимы даже для простейших действий. Для начала: когда люди говорят, что они «владеют» криптовалютами, на самом деле они владеют приватным ключом от криптокошелька (адреса), в котором хранятся эти активы. Для ясности: криптовалюты всегда хранятся в блокчейн-сети, а не в самом криптокошельке. Вместо этого вы владеете приватным ключом, который позволяет получить доступ к счёту.
«Приватный ключ» открывает доступ к криптовалютному адресу и позволяет распоряжаться его содержимым. Однако если кто-то завладеет им, он также получит доступ и к вашему счёту. Вот почему — как следует из названия — он должен оставаться в безопасности и вдали от посторонних глаз. Для вашего счёта существует только один приватный ключ, и он работает как личный пароль, который должны знать только вы.
Ваш приватный ключ не просто даёт доступ к средствам — он определяет всю основу работы вашего криптокошелька и то, как вы взаимодействуете с другими счетами. Большинство криптокошельков на самом деле используют ваш приватный ключ для создания публичного ключа.
Что такое публичные ключи?
Публичные ключи видны всем пользователям сети, а иногда даже за её пределами. По сути, публичные ключи выполняют роль номера счëта (как в банке). Они делают каждый криптокошелёк однозначно идентифицируемым для участников сети. Как и приватный ключ, публичный ключ состоит из длинной последовательности чисел. Он создаётся с помощью приватного ключа, но так происходит не всегда. Он также позволяет вам создать то, с чем вы, скорее всего, уже немного знакомы, — блокчейн-адрес. Обычно ваш адрес в блокчейне — это просто хешированная версия этого публичного ключа.
Что такое блокчейн-адрес?
Ваш блокчейн-адрес — это код, которым вы можете делиться с другими, чтобы получать криптовалюты. Как правило, он извлекается из вашего публичного ключа. Когда вы отправляете криптовалюту кому-то другому, получатель увидит именно этот адрес. Для Ethereum это длинное шестнадцатеричное число, которое начинается с 0x. Что касается Биткойна, вы уже могли заметить, что ваш Биткойн-кошелёк генерирует новый адрес при каждом переводе. Оба этих метода подходят, и стоит уточнить, что делиться этим блокчейн-адресом абсолютно безопасно.
Публичные и приватные ключи: как они устроены?
Теперь вы знаете, что такое приватные и публичные ключи; но как именно они работают? Каждый из них выполняет свою роль, но оба одинаково важны при проведении транзакций или подписании разрешений. При этом то, как взаимодействуют ваши публичные и приватные ключи, полностью зависит от того, что именно вы пытаетесь сделать со своим криптокошельком.
Хотя PKC поддерживает шифрование и подписание, криптосети используют только последнее. Подписание позволяет верифицировать подлинность транзакции, гарантируя, что еë не подделали и не взломали. Давайте посмотрим, как устроена эта функция.
Подписание транзакции вашим приватным ключом
Допустим, вы хотите отправить 1 ETH вашему другу Олегу через сеть Ethereum. В этом случае вам нужно узнать блокчейн-адрес Олега. Как и у вас, у Олега также есть набор публичных и приватных ключей, и только его приватный ключ отвечает за адрес соответствующего публичного ключа.
При попытке отправить любую сумму в Эфириуме вам необходимо будет инициировать запрос на транзакцию. В этом запросе вы указываете сумму, которую хотите отправить, и куда еë нужно отправить — в данном случае мы хотим отправить 1 ETH на счёт Олега. После этого ваш криптокошелёк использует ваш приватный ключ для подписания транзакции. Подпись подобна цифровому отпечатку пальца; она доказывает блокчейну, что вы намерены выполнить план, изложенный в прикреплённом сообщении. Это также подтверждает, что вы именно тот, за кого себя выдаёте. Ваша подпись создаëтся вашим приватным ключом и содержит детали транзакции, которые в конечном итоге становятся частью еë данных.
Как только вы подпишете транзакцию, она транслируется в сеть. Это означает, что каждая нода (майнер или валидатор) в сети может проверить её. В этом примере валидаторы Эфириума подтверждают, что подпись соответствует вашему публичному ключу. Это гарантирует, что вы — именно тот, за кого себя выдаёте, и действительно владеете средствами, которые пытаетесь потратить. Они также проверяют, что адрес Олега действительно существует в сети и что транзакция в целом корректна. Если условия соблюдены, транзакция будет подтверждена. 1 эфир исчезнет с вашего счёта и поступит на счёт Олега.
Как владелец своего приватного ключа, только вы можете подписать транзакцию для перемещения ваших средств. Пока вы держите свой приватный ключ в секрете, никто не сможет переместить ваши средства в блокчейне. Да — даже если вы делитесь своим публичным ключом, адресом и подписями всех своих транзакций, ваши средства остаются в безопасности. В этом и заключается гениальность применения функций Trapdoor (односторонних функций с потайным входом) в действии.
Приватные и публичный ключ: основа вашего криптокошелька
Конечно, публичные и приватные ключи — это только начало понимания того, как устроен ваш криптокошелёк. Хотя они обеспечивают основу для однорангового обмена ценностью, криптокошельки эволюционировали и теперь способны на гораздо большее. Сегодня существует бесчисленное множество видов криптокошельков, и каждый из них использует эту технологию немного по-разному.
Хотите узнать больше о своём криптокошельке? Читайте дальше, чтобы узнать, как работают современные криптокошельки, позволяя вам управлять множеством счетов в рамках единого интерфейса.
