В этой статье мы объясним, почему она является ключевым инструментом, чтобы подтвердить, что именно вы владеете адресом в блокчейне.
Криптоподпись – это форма цифрового существования
В мире централизации человек привычно пользуется паспортами, фотографиями, логинами, QR-кодами, когда ему требуется удостоверить свою личность. Вселенная блокчейна совершенно иная. В ней нет места доверию. Здесь работает только верификация. Вместо имени – адрес. И подпись приватным ключом является единственным доказательством того, что он принадлежит конкретному пользователю.
Цифровая подпись – это не селфи с документом в руке, а математическое действие, говорящее за своего владельца. Если вы не можете подписать, значит, не владеете, а если не владеете, значит, и не существуете. По крайней мере – с точки зрения блокчейна.
Вы можете отказаться от подписи, ведь вас никто не принуждает. Однако система, которая основана на проверке, воспринимает подобный отказ, как безмолвие, а безмолвие в этой структуре эквивалентно отсутствию.
Зачем нужна и что собой представляет криптографическая подпись?
Криптоподпись доказывает, что именно вы выступаете владельцем приват-ключа от определенного адреса. Вы просто подписываете сообщение, без совершения транзакции и раскрытия самого защитного кода. Участие в этой математической операции принимают:
- секрет, который известен только вам – приватный ключ;
- текст, строчка, структура – сообщение;
- подпись, которая проверяется – результат.
Подпись не раскрывает ваш ключ сама по себе. Однако у любого желающего имеется возможность удостовериться в ее валидности – убедиться, что она была создана тем человеком, который действительно является хозяином конкретного адреса. Электронный автограф намного безопаснее и строже, нежели его эквивалент на бумажном документе в реальном мире. Причем его совершенно невозможно сфальсифицировать. Он необходим, чтобы заменить доверие, которое часто подрывается, проверкой, результаты которой нельзя подделать.
Ни у платформы, ни у смарт-контракта нет возможности рассекретить вашу персону, но они знают, что только вы могли подписать то либо иное действие в сети. Вы не регистрируетесь, не предъявляете удостоверение личности, а просто доказываете, что имеете полное право распоряжаться этим адресом. Системе для этого достаточно вашей криптоподписи.
От приват-ключа к доказательству: принципы работы цифрового автографа
Процедура цифроподписи базируется на криптографии с открытым кодом. Это – математическая система, где подразумевается, что каждый участник сети располагает двумя ключами. Один из них – публичный. Его могут видеть все пользователи. Именно на его основе адрес и строится. Другой – приватный. Доступ к нему имеется только у владельца.
Когда вы используете приват-ключ, чтобы подписать сообщение, автоматически создается уникальный цифровой след. После этого система или другие пользователи могут взять вашу подпись, сообщение или ваш публичный адрес и проверить, а на самом ли деле автограф сгенерировал человек, владеющий соответствующим приватным ключом.
Тут важно понимание того, что:
- Ни у кого, кроме вас, нет доступа к вашей индивидуальной шифровке.
- Подпись подходить только конкретному сообщению.
- Если послание будет изменено, она станет недействительной.
В результате система одновременно становится:
- безопасной, поскольку, не владея приватным ключом, подпись подделать невозможно;
- проверяемой, так как в ее подлинности убедиться может буквально любой участник сети;
- самодостаточной, поскольку для ее подтверждения не требуются никакие дополнительные документы.
Ваша способность подписать выступает неопровержимым доказательством. Блокчейну больше ничего объяснять не нужно.
Где в пространстве интернета третьего поколения находит применение криптографическая подпись?
Криптоподпись – это не абстракция. Сегодня она приобрела качества повседневного механизма. Пользователь сталкивается с ней каждый раз, когда ему требуется доказать, что это он, а не кто-то другой.
Вход без пароля в децентрализованные приложения
Вы открываете децентрализованное приложение. У вас не запрашивают логин, а отправляют сообщение, которое необходимо завизировать. Своей подписью вы подтверждаете, что адрес ваш, и вы разрешаете использовать его при взаимодействии с интерфейсом. Например, «Sign in with Ethereum».
Участие в голосованиях, предложениях и децентрализованных автономных организациях
Для DAO не интересен ваш никнейм. Ей важен только адрес пользователя. Если вы желаете проголосовать или выступить с предложением, вы должны подписаться, удостоверив, что:
- вы являетесь реальным участником;
- ваши токены наделяют вас правом голоса;
- вы являетесь хозяином адреса, от имени которого отдается голос.
Получение айрдропов и невзаимозаменяемых токенов
Нередко, когда раздача ведется по приглашению или белым спискам, пользователей просят подписать сообщение. Это доказывает их право на получение. Если вы этого не сделаете, всплывет уведомление «Address not verified. Access denied».
Верификация в сообществах
Все чаще боты Дискорда и Телеграма требуют:
- подключения криптокошелька;
- подписания произвольного сообщения;
- получения роли/доступа/прав на основании цифроподписи.
В Web3-комьюнити, в которых, от того, кто вы в сети, напрямую зависит и ваша роль, это приобретает особую значимость.
Авторизация в децентрализованных службах и протоколах
Здесь подписи используются для авторизации, привязки учетных записей, постинга. Автограф заменяет пароль, приватный ключ – регистрацию.
Как и чем подписывать? О форматах, рисках и протоколах
Вы знаете, что, чтобы доказать право собственности на адрес, сообщения нужно подписывать приват-ключом. Но существуют разные способы это делать. Причем в плане безопасности они далеко не одинаковы. Вам необходимо отдавать себе отчет, с какими рисками сопряжена данная процедура, и понимать, что именно вы подписываете.
На примере Эфириума мы предлагаем рассмотреть, как можно завизировать сообщение. В этой инфраструктуре присутствуют три основных метода подписания:
Безопасный базовый вариант – personal_sign
Способ отличается относительной безопасностью и в системе широко распространен. Прежде чем оно будет подписано, к вашему сообщению присовокупляется специальная приставка Ethereum Signed Message.
Это значит, что подпись:
- может применяться исключительно для проверки владения адресом;
- не может использоваться в качестве настоящей транзакции или распоряжения.
С его помощью можно входить в децентрализованные приложения через криптокошельки, проходить верификацию в Телеграм-ботах, участвовать в децентрализованных автономных организациях и Lens-протоколах.
Устаревший и рискованный вариант – eth_sign
Несмотря на гибкость, потому что при использовании данного метода сообщение подписывается в сыром виде – без префиксов и пояснений, рисков становится больше. Опасность состоит в том, что криптозлоумышленники могут подсунуть вам послание, которое будет замаскировано под простой текст, а по факту под ним скрывается разрешение на списание цифромонет или транзакцию.
Сегодня этот способ применяет очень нечасто. В современных кошельках при его использовании пользователю сразу приходит предупреждение.
Прозрачная структурированная подпись – EIP-712
Метод является современным стандартом, позволяющим визировать сложные сообщения с понятными структурами.
Вместо текста вы видите:
- какие данные подписываются;
- как сгруппирована информация;
- что непосредственно будет использовано.
В результате у криптоподписи становится больше читабельности и прозрачности. Данный способ находит применение в серьезных децентрализованных приложениях, мультиподписях, в протоколах голосования и децентрализованного финансирования.
Об основных рисках
Фишинговая подмена сообщения
Вас просят подписать для подтверждения входа, однако внутри запрятана мошенническая команда, которая запустит транзакцию или спишет токены с вашего счета. Избежать последствий можно:
- используя только EIP-712 и personal_sign, если понимаете, что подписываете;
- не подписывая ничего в децентрализованных приложениях с сомнительной репутацией;
- не принимая от неизвестных источников приглашений оставить автограф ради бонуса.
EIP-712-сообщения, которые выглядят слишком сложными и непонятными
Смысл за технической терминологией можно спрятать даже в новом стандарте. Форматы некоторых проектов состоят из 10-20 полей. С первого взгляда прочитать их сложно. Поэтому:
- подписывайте только в тех проектах, которые заслуживают вашего доверия.
- изучайте состав сообщения, особенно если вопрос касается взаимодействия со смарт-контрактами.
Подпись сберегается, чтобы впоследствии фигурировать в качестве доказательства
Ваш автограф может быть заархивирован и использован позднее. Например, если понадобится продемонстрировать, что вы соглашались с правилами, голосовали, входили в децентрализованный софт, совершали действие. В принципе, это не плохо. Но важно понимание того, что ваша цифроподпись выступает в роли юридически значимого подтверждения.
Кто вы, если не можете подписать?
У пользователя может быть адрес, транзакционная история, криптобаланс, репутация в децентрализованной автономной организации, ENS-имя. Однако если у него нет возможности подписать сообщение, значит, то, что ему принадлежало, больше не его. Единственное доказательство взаимосвязи личности и адреса в блокчейне – это подпись.
Вы не сможете оставить свой цифровой автограф, если:
- вы потеряли приватный ключ;
- вы пользуетесь скомпрометированным криптокошельком и не хотите подвергать себя риску;
- вы утратили контроль над адресом, например, он перенесен в мультиподпись или кошелек со смарт-контрактом;
- вы просто не желаете принимать участие.
Блокчейн не станет запрашивать, по какой причине вы не подписываете. Нет подписи – нет связи, нет связи, значит, нет и идентичности.
На практике это будет означать:
- невозможность подтвердить владение для айрдропа;
- невозможность войти в децентрализованное приложение или присоединиться к сообществу;
- невозможность доказать свою идентичность.
Ваш адрес продолжает существовать, но в отрыве от вашей персоны. С технической стороны вопроса: вы становитесь невидимым для системы. Пока вы имеете возможность подписывать, вы остаетесь в игре.
Что важно знать о криптоподписи?
- Подпись приват-ключом – единственный механизм, доказывающий, что вы владеете адресом в действительности.
- Этот инструмент используется всегда, когда необходимо подтверждение цифровой идентичности пользователя
- Есть несколько методов цифроподписи. Важно понимать, каким из них вы пользуетесь и под чем именно ее оставляете.
- Криптографический автограф является подтверждением ваших прав, возможности доступа, а в некоторых случаях и репутации.
- Утратив способность подписывать, вы лишаетесь и возможности удостоверить свою цифровую личность.
Зная эти принципы, вы:
- не попадетесь в фишинговые ловушки;
- не потеряет контроль над своими криптоактивами;
- сможете уверенней взаимодействовать с приложениями интернета третьего поколения.
Криптоподпись – инструмент, работающий на вас. Но он будет приносить пользу и оставаться эффективным только при условии, что вы понимаете, как он устроен и функционирует.
Как подписать сообщение посредством криптокошелька Metamask?
Если вы не смогли во всем разобраться, ни в коем случае ничего не визируйте!
- Войдите на ресурс или в децентрализованное приложение, запрашивающее автограф.
- Подключите свой криптокошелек, воспользовавшись «Connect Wallet», предварительно его установив и разблокировав.
- Внимательно прочтите сообщение, когда запрос на подпись появится. В окне Metamask вы увидите его текст или структуру.
- Если все понятно, жмите кнопку «Sign». Metamask воспользуется вашим приватным ключом и создаст цифроподпись, которая не потребляет газ и не отправляет транзакцию.
- Она будет отослана на нужную площадку и получит подтверждение.
- Поскольку вы доказали факт владения адресом, в зависимости от контекста, система пропустит вас внутрь, выдаст токены, засчитает голос и так далее.