October 30, 2025

Как криптография улучшает Web3 UX

В этом посте кратко излагаю свои мысли по поводу улучшений UX в Web3, почему это важно и, конечно, привожу примеры проектов/протоколов, которые позволяют достичь Web2-like UX в Web3

Важность хорошего UX в Web3

Мне нравится, что последние несколько лет в Web3 начали больше внимания уделять UX. Я думаю это связанно с тем, что:

  1. Мир блокчейнов и децентрализованных систем в целом стал более зрелым: раньше Web3 проекты конкурировали между собой внутри одного общего пузыря; у фаундеров не было мотивации делать продукты лучше, чем в Web2
  2. Развитие современной прикладной криптографии открыло новые возможности: zk-криптография сделала Web2 данные переносимыми и верифицируемыми. Как пример: я могу доказать на блокчейне, что имею доступ к определенному Google-аккаунту, не раскрывая пароль, и, конечно же, "trustless", т.е. без доверия третьей стороне

Понятно, что блокчейны, децентрализация, криптография очень ценны, но понять эту ценность среднестатистическому интернет пользователю достаточно трудно. Обычному пользователю легче завести аккаунт на CEX и использовать его как кошелек, потому что это более интуитивно, чем разбираться с сид-фразами - придумать как их хранить, чтобы в случае чего доступ к "аккаунту" не потерять, ну и чтобы тебя не взломали. И это все, в принципе, не понимая, зачем это нужно, если "храню на ByBit и никаких проблем нет".

Я думал о том как эту ситуацию можно исправить. Один вариант - это обучать людей. Рассказывать про те самые ценности криптографии и децентрализации. Это хорошо, но долго, сложно и не масштабируемо.
Другой подход - это стать реалистом и понять, что в большинстве случаев люди просто приходят за удобством. Это не отменяет тот факт, что мы пользуемся сложными системами, не понимая, как они устроены внутри. И в этом нет ничего плохого, мы и не должны разбираться во всем.

А вот целью разработчиков должно быть, как раз-таки, предоставление этого привычного UX Web2, не жертвуя при этом ценностями Web3. Сегодня это вполне достижимо. Более того, часто можно сделать даже лучше, чем в Web2.

Примеры проектов / протоколов

ZK Email

ZK Email - это проект, появившийся в 2023 году, который является одним из самых популярных Trustless Data Provenance протоколов в Web3.

Data Provenance - это способ переноса данных, находящихся за скоупом блокчейнов (Web2 данные) в Web3. Trustless здесь значит, что мы можем сделать это без доверия третьей стороне; данные переносятся самим пользователем, с гарантией целостности и корректности.

С помощью ZK Email можно верифицируемо перенести содержимое email-письма на блокчейн. Для чего это нужно? На самом деле применений довольно много, приведу несколько примеров:

  • Доказательство владения Web2 аккаунтом: Вы можете отправить себе письмо с восстановлением пароля от вашего аккаунта. Факт наличия у вас этого письма и вашего доступа к этому письму доказывает владение аккаунтом - Proof of Twitter
  • Трастлесс P2P обмен фиата на криптовалюту: Смарт-контракт выступает арбитром/escrow. Продавец создает заявку на продажу 100 USDT и прикладывает ID своего PayPal аккаунта и сумму N, которую он хочет получить; 100 USDT переводятся в Escrow. Покупатель активирует заявку и затем переводит требуемую сумму N на PayPal ID продавца. PayPal отправляет чек перевода на почту, который можно перенести на смарт-контракт. Смарт-контракт проверяет корректность перевода и отправляет 100 USDT покупателю - zkp2p.xyz
  • Email Wallet - Некастодиальный смарт кошелек, в котором управление происходит через почту: Вы отправляете письмо релееру (отдельный сервер, отправляющий транзакции за вас) с Subject типа "SEND 1 ETH to alisa@gmail.com" (либо на EOA). Наличие данного письма у релеера доказывает факт вашего намерения перевести 1 ETH указанному получателю. Фактически на блокчейне для вашей почты создается реальный смарт-контрактный кошелек с помощью CREATE2. Интересная фича, что с помощью такого инструмента вы можете отправлять токены напрямую на почту человека/организации, даже если у них нет EOA - Email Wallet

"Секрет" ZK Email заключается в том, что каждое email-письмо подписано приватным ключом Mail провайдера (протокол DKIM). То есть email провайдер выступает гарантом корректности текста письма (например, что письмо действительно пришло от того, кто указан в поле `From`), а также и гарантом целостности, т.к. при изменении текста письма подпись не пройдет проверку.
Для обеспечения приватности с помощью zk можно скрыть необходимые поля в тексте письма.

Рад быть одним из первых контрибьюторов в ZK Email, в частности в Email Wallet.

ZK JWT

Протокол, работающий аналогично ZK Email, но вместо переноса верифицируемого email-письма вы переносите верифицируемую JWT (она тоже подписана issuer'ом, например Google).

Позволяет вам "логиниться" напрямую с вашим Web2-аккаунтом, используя привычный Oauth2 протокол и сразу же неявно получать некастодиальный смарт-кошелек, привязанный к вашему Web2-ID.

UX аналогичен Privy, при этом вам не надо полагаться на Hardware Security Modules (TEE) и на доп. сторону (даже если это MPC).

ZK TLS

Прежде чем рассказать о ZK TLS, упомяну главный минус ZK Email - не любую информацию подобным способом можно перенести на блокчейн, т.к. не все сервисы отправляют email-письма. Помимо этого, если сервис решит удалить какие-то ключевые поля из текста письма или даже просто изменить формат, это может сломать логику протокола: так, раннее упомянутый zkp2p.xyz использовал Venmo как платежную систему и верифицировал отправленные ими чеки. По неопределенной причине Venmo удалил поле timestamp из текста. Это сделало невозможным верификацию чеков он-чейн.

Сейчас команда zkp2p использует протокол ZK TLS, про который я расскажу далее.

Идея ZK TLS появилась еще в начале 2010-ых; суть ее заключается в том, что информация, которая передается от сервера к клиенту шифруется симметричным ключом, сгенерированным в процессе TLS Handshake. Если встроить в этот процесс третью сторону в виде прокси либо как MPC-сеть, которая будет участвовать в TLS Handshake на стороне клиента (вместе с клиентом), то такая сторона сможет выступать гарантом корректности перенесенных данных.

Минус данного подхода заключается в том, что здесь появляются точки централизации.

Плюсом является то, что с помощью ZK TLS можно перенести любую информацию из Web2 в Web3, при этом сохраняя приватность, где это нужно.

Несколько проектов, позволяющих интегрировать ZK TLS:

ZK Passport

Еще одна интересная идея, которая позволяет вам доказать владение вашим паспортом - это ZK Passport.
Существует несколько проектов, реализующих данную идею, и наиболее популярные - это:

Сделать это можно благодаря чипу в биометрических паспортах, в который вшита пара ключей (соответственно есть приватный ключ, которым можно подписывать данные). Государства, в свою очередь, подписывают публичный ключ вашего паспорта своим приватным (публичный ключ государств можно найти в реестре ICAO).

С помощью ZK Passport, например, можно доказать он-чейн, что вам > 18 лет и что вы являетесь гражданином России без раскрытия других данных (имя, пол, серия паспорта и др.).

vOPRF-ID

vOPRF-ID - проект, автором которого являюсь я, позволяет создавать анонимные децентрализованные системы с Web2-ID. То есть, комбинируя vOPRF-ID c протоколами перечисленными выше мы также можем продолжать использовать Web3 с помощью наших Web2-ID, но еще и сохраняя приватность.

Достаточно сложно описать коротко данный протокол, поэтому приложу здесь ссылку на свой же блог-пост, в котором подробнее раскрываю идею.

Например, можно создать платформу для проведения анонимных эирдропов полностью он-чейн с удобным UX: хост эирдропа отправляет токены на смарт-контракт, загружает список Github-аккаунтов контрибьюторов и дает доступ к получению эирдропа данным аккаунтам. Получатель запрашивает эирдроп, не раскрывая при этом свой аккаунт, а только прикладывает zk-пруф, что его аккаунт - это один из аккаунтов из общего списка.

vOPRF-ID нужен здесь для генерации так называемых nullifier'ов, которые нужны для предотвращения попыток многократного получения дропа.

Также хочу отметить

  • Porto.sh - проект команды Ithaca / Paradigm / Tempo. Позволяет легко интегрировать passkeys + крипто-платежи в ваш проект
  • Privy - возможно наиболее популярный Web3-логин, использующий Web2 аккаунты

Спасибо за внимание ✌️

Пишите комментарии, задавайте вопросы! Буду рад обсудить с вами этот пост в моем телеграм канале: @rasulschannel