Принципы работы публичных и приватных ключей
В новой статье для начинающих трейдеров рассказали о принципах работы публичных и приватных ключей.
Ключевые моменты
- Цель публичных и приватных ключей — доказать, что проведенная транзакция действительно была подписана владельцем средств, а не была подделана.
- Чтобы считаться полноценным владельцем криптовалюты, у Вас должен быть «приватный ключ» от адреса в блокчейне.
- «Приватный ключ» открывает доступ к криптовалютному адресу и позволяет распоряжаться его содержимым. Поскольку он предоставляет доступ к вашим криптовалютам, соответственно его следует держать в секрете.
- С каждым приватным ключом может быть связан один или несколько публичных ключей.
- Публичный ключ можно восстановить, если вы владеете приватным ключом. Однако наоборот эта схема не работает: восстановить приватный ключ с помощью одного лишь публичного ключа не удастся.
Публичные и приватные ключи (они же открытые и закрытые ключи) — это неотъемлемый компонент криптовалют, построенных на блокчейн-сетях. Они относятся к более широкой области криптографии, известной как "криптосистема с открытым ключом" (Public Key Cryptography, PKC) или асимметричное шифрование.
Цель PKC — обеспечить простой переход из одного состояния в другое, сделав обратный процесс практически невозможным. При этом можно продемонстрировать наличие секрета, не раскрывая его. Впоследствии продукт становится односторонней математической функцией. Это делает его идеальным вариантом для проверки подлинности чего-либо (например, транзакции), поскольку подделать его невозможно. PKC опирается на модель с двумя ключами: открытым и закрытым. Часто открытый ключ изображается в виде замка, а закрытый — в виде ключа для доступа к нему.
Криптосистема с открытым ключом (Public Key Cryptography, PKC)
Система PKC построена на математическом примитиве функции с потайным входом «Trapdoor Function». Это математическая задача, которую легко вычислить в одном направлении и почти невозможно в обратном.
Решение этой задачи потребует от компьютеров огромного количества времени (тысячи лет), чтобы получить правильный ответ. В контексте PKC такие математические трюки как факторизация целых чисел являются односторонними функциями с потайным входом (trapdoor functions). Они делают невозможным обратное проектирование (т. е. подделку) криптографических подписей, поскольку это потребует от компьютера решения практически неразрешимых математических задач.
Концепция открытых и закрытых ключей
Общая цель PKC — обеспечить защищенную конфиденциальную связь с использованием цифровых подписей в открытом канале, где могут присутствовать потенциально злонамеренные лица, осуществляющие слежение. В контексте криптовалют целью является доказательство того, что проведенная транзакция действительно была подписана владельцем средств и не была подделана. Все это осуществляется через публичную блокчейн-сеть между равными участниками.
Чтобы вы могли считаться полноценным владельцем криптовалют, у Вас должны быть приватные ключи от адреса в блокчейне. «Приватный ключ» открывает доступ к криптовалютному адресу и позволяет распоряжаться его содержимым. Поскольку приватный ключ предоставляет доступ к Вашим криптовалютам, он должен оставаться приватным — прямо как указано в его названии.
Помимо приватного ключа также существует публичный ключ. Они соединены между собой с помощью криптографической связи. Если у вас есть приватный ключ, то можно будет восстановить публичный ключ. Однако наоборот эта схема не работает: восстановить приватный ключ с помощью одного лишь публичного ключа не удастся.
Публичный и приватный ключи можно сравнить с адресом электронной почты и паролем от него.
Теоретически Алиса может создать миллиарды публичных ключей (адресов) на основе своего приватного ключа. Этот ключ у нее только один и выполняет функцию ее пароля, который знает только она — ее секрет. Как только Алиса создает адрес с публичным ключом, этот адрес становится общедоступным для всех пользователей сети. По этому адресу они могут отправлять криптовалюту. Только Алиса может получить доступ к отправленным на этот адрес криптовалютам, поскольку у нее есть соответствующий ключ к общедоступному адресу.
Как происходит транзакция
Приватный ключ Алисы — это ее цифровая подпись. С ее помощью она может доказать, что именно она провела транзакцию или отправила сообщение.
Например, если Алиса захочет отправить Никите сообщение по публичному каналу, за которым тайно следит Виктор, она может зашифровать сообщение своим приватным ключом и затем отправить его. С отправляемым Никите по его публичному ключу сообщением Алиса также создает специальное значение. Оно называется хеш-выходом. Никита может расшифровать и прочитать сообщение, используя хеш, сообщение и свой приватный ключ.
Виктор не сможет прочитать сообщение, поскольку у него есть только публичный ключ Алисы и его собственная пара из приватного и публичного ключей. В этом и заключается гениальность применения функций Trapdoor (односторонних функций с потайным входом) в действии. Виктор не сможет расшифровать сообщение или приватный ключ Алисы, поскольку они созданы с использованием функции Trapdoor.
В сети Bitcoin транзакции представляют собой серию операций пользователей по отправке и получению btc по публичным адресам. Операции проходят в виде входов и выходов в рамках модели транзакций UTXO сети Bitcoin. Алиса может опубликовать свой публичный ключ в интернете. Тогда люди смогут отправлять btc на этот адрес, зная, что Алиса является владельцем приватного ключа к этим средствам.
В более широком смысле, ноды (те, кто запустил и поддерживает узлы в сети Bitcoin) автоматически проверяют и подтверждают транзакции в сети. Таким образом они убеждаются в отсутствии попыток фальсификации, используя основные правила консенсуса и криптографические доказательства того, что пары публичных/приватных ключей действительны (технология "доказательства выполнения работы"). В результате подделать транзакции в использующих PKC криптовалютах, таких как Bitcoin, практически невозможно, за исключением "атаки 51%". Они защищены предположениями математических доказательств.
Атака 51%
Атака 51% — это атака на блокчейн, где один субъект или организация захватывает наибольшую часть хешрейта, что может привести к нарушениям работы сети. В такой ситуации у злоумышленника будет достаточно мощности майнинга, чтобы намеренно исключать транзакции или изменять их порядок, а также отменять собственные транзакции, провоцируя проблему двойного расходования.
Успешная атака большинства позволяет злоумышленникам предотвращать подтверждение транзакций (отказывать в обслуживании транзакции) или процесс майнинга для конкретных лиц, что приводит к явлению под названием монополия майнинга.
С другой стороны, атака большинства не позволяет злоумышленнику отменять транзакции других пользователей или предотвращать создание и трансляцию транзакций. Также считается невозможным изменять размер награды за блок, создавать монеты из ничего или красть монеты других пользователей.
Чтобы атака прошла успешно атакующий должен убедить сеть в том, что его цепочка блоков является истинной. Иными словами, это позволит изменить историю транзакций и вернуть ранее отправленные биткоины с адресов получателей на адрес отправителя (атакующего).
Для того, чтобы провести подобную атаку необходимо завладеть пятьдесят одним процентом от общего количества мощностей работающих майнеров.
Ранее уже успешно проводились подобные атаки на такие криптовалюты, как: BTG, ETC, GRIN и другие.
С уважением,
команда GAP capital
Статья подготовлена сообществом GAP capital.
Если Вам понравилась статья и Вы хотите видеть больше подобного контента - подписывайтесь на наш telegram-канал GAP capital, в котором мы делимся своим техническим взглядом на криптовалютный рынок, акцентируя внимание на психологическую составляющую торговли.
👥 Партнерские ссылки
📰 Telegram-канал
📈 Закрытый клуб
👨🏻💻 TradingView
📝 Teletype
💵 Донаты