Содержание
Когда в жизни приходится подтверждать личность, мы предъявляем паспорт или ставим подпись в документе. Но в блокчейне все легко копируется, поэтому для защиты персональных данных используется криптография.
В материале расскажем о том, какие инструменты позволяют подтверждать личность при использовании блокчейна. Вы узнаете как при совершении транзакций удается проверять данные и оставлять их в тайне.
- P2P: где используются одноранговые сети
- Шифрование в блокчейне: на пальцах
- Блокчейн — цепочка блоков транзакций. Разбираем определение по словам
- Шифрование в блокчейне: зачем нужна цифровая подпись
- Принцип работы блокчейна: кто создает блоки
- Для каких целей и задач подходит блокчейн
Вспоминаем основные понятия
- Блокчейн — цепочка блоков транзакций.
- Транзакция — запись об изменении состояния активов.
- Односторонние функции — тип математических функций, который легко шифрует информацию без возможности расшифровки.
- Хеш-функции — тип односторонних функций, который превращает информацию произвольного размера в шифр определенной длины.
- Сообщение — любая входная информация.
- Хеш — результат работы хеш-функции.
- SHA-256 — хеш-функция, используемая в блокчейне биткоина.
Симметричное и асимметричное шифрование
Рассказать секрет так, чтобы о нем никто не узнал, проще всего лично. Когда такой возможности нет, используют шифрование. Существует два криптографических метода: симметричный и асимметричный. Описание методов понадобится для понимания работы публичных и приватных ключей в блокчейне.
До изобретения интернета все известные методы шифрования были симметричными. Это значит, что ключ для шифрования и расшифровки информации использовался один и тот же. Все как с обычными дверными замками: один ключ открывает и закрывает дверь.
При таком подходе всегда остается вероятность того, что к сообщению получат доступ третьи лица. Нет смысла отправлять зашифрованное сообщение, если получатель не сможет его расшифровать. А отправлять ключ для расшифровки небезопасно, так как курьер может оказаться злоумышленником или подвергнуться нападению. В этом главная проблема — невозможно безопасно передать получателю ключ для расшифровки.
В 70-ых годах были придуманы асимметричные методы. С помощью них шифрование и расшифровка информации производится двумя разными ключами. Похоже на то, что дверь закрывают одним ключом, а открывают другим.
Получатель раздает ключи шифрования всем, кто желает отправлять ему сообщения. По-другому ключи называются публичными, так как их может увидеть или узнать любой. А ключ для расшифровки он оставляет у себя. Еще его называют приватным, так как его знает только получатель.
Асимметричное шифрование с помощью парных ключей решает проблему безопасности симметричных шифров. Ключ для расшифровки больше не нужно отправлять и подвергать опасности, он уже есть у каждого получателя. Любой отправитель может зашифровать информацию так, что расшифровать ее сможет только получатель.
Асимметричное шифрование делает интернет безопасным. Каждый пользователь использует приватные и публичные ключи, когда отправляет сообщение в мессенджере, совершает онлайн-покупку или посещает сайт, адрес которого начинается с «https». Благодаря этому, никто не может прочитать сообщения, увидеть пароли или скопировать данные банковской карты.
При использовании приватных и публичных ключей вытекают два важных элемента блокчейна: адрес и цифровая подпись. С помощью них удается пользоваться блокчейном, не раскрывая свою личность. Рассмотрим каждое из этих понятий подробнее.
Публичный ключ и адрес в блокчейне
С помощью публичных ключей создаются адреса пользователей блокчейна. Это данные, которые указывают на получателя транзакции. В жизни для этой цели мы используем номер телефона, адрес дома или счет в банке. Особенность адресов в блокчейне в том, что они могут постоянно меняться. Рассмотрим их использование на примере блокчейна Биткоина.
Прежде чем купить биткоины, необходимо создать кошелек, на котором они будут храниться. Кошельком называют программу, с помощью которой можно получить как приватные, так и публичные ключи от блокчейна. Для биткоинов есть много таких программ: Bitcoin Core, Electrum, Samurai Wallet.
При открытии кошелька будут математически сгенерированы пары ключей. Публичные ключи состоят из 66-ти знаков, поэтому их неудобно указывать при получении средств. Для удобства с помощью математических преобразований из них создаются адреса. Каждый адрес представляет собой более короткую последовательность из цифр и букв, либо QR-код.
Наличие сразу нескольких пар публичных и приватных ключей делает использование кошелька безопасным. Можно каждый раз получать и отправлять биткоины с помощью разных адресов. В таком случае, отследить кому принадлежат эти адреса будет почти невозможно.
Если вы хотите получить биткоины, то любой из адресов нужно сообщить отправителю. Когда биткоины придут, воспользоваться ими можно будет с помощью приватного ключа.
Приватный ключ и цифровая подпись в блокчейне
С помощью приватного ключа создается электронная цифровая подпись в блокчейне. Это способ подтвердить свое право совершать транзакции в блокчейне. В жизни для этой цели мы предъявляем паспорт, ставим подпись или вводим ПИН-код. Особенность цифровой подписи в блокчейне в том, что она дает возможность подтвердить личность, но при этом не раскрывать свои данные. Рассмотрим ее использование на примере блокчейна Биткоина.
Адрес в блокчейне принадлежит тому, кто знает от него приватный ключ. Чтобы доказать, что он у вас есть и при этом не раскрыть его никому, используют цифровую подпись.
Цифровая подпись — это хеш, созданный на основе приватного ключа и самих подписываемых данных. То есть это набор символов, который получен с помощью шифрования. В Биткоине для создания такого хеша используют Алгоритм Цифровой Подписи Эллиптической Кривой (ECDSA).
Рассмотрим как создается и подписывается транзакция в блкочейне:
- Информация об отправлении шифруются с помощью SHA-256.
- Алгоритм ECDSA получает на вход приватный ключ и хеш подписываемых данных.
- В результате работы алгоритма ECDSA и создается цифровая подпись.
- В транзакцию записывается зашифрованная информация об отправлении и цифровая подпись.
Теперь, когда в транзакции есть подпись, другие пользователи блокчейна должны подтвердить ее. Подтверждение необходимо, чтобы убедиться, что злоумышленник не пытается украсть биткоины со счета. Для этого подпись расшифровывается с помощью публичного ключа. Если расшифрованная информация совпадает с хешем, то транзакция признается достоверной.
Цифровая подпись транзакции по сути является шифрованием с использованием приватного ключа. А проверка подписи это расшифровка с использованием публичного ключа. Это похоже на конструктор, который разбирается по одной инструкции, а собирается по другой. Если вам удалось его собрать по инструкции сборки, значит у того, кто его разбирал, была инструкция по разборке. Если удалось правильно расшифровать подпись, значит тот, кто ее создал действительно владеет приватным ключом.
Таким образом, достоверной транзакция будет признана только в том случае, если оба ключа составляют одну пару. Такая система проверки цифровой подписи гарантирует, что только лицо, у которого есть оба ключа сможет распоряжаться биткоинами.
Заключение
Пользователи блокчейна взаимодействуют друг с другом используя асимметричное шифрование. Оно заключается в использовании двух ключей. Публичный ключ нужен, чтобы пользователя можно было найти в сети и отправить ему зашифрованное сообщение. Приватный ключ нужен, чтобы расшифровать полученное сообщение.
Кроме того, с помощью приватных и публичных ключей подтверждается личность пользователей блокчейна. Криптографические алгоритмы позволяют создавать и проверять цифровые подписи.