Основой экосистемы Web3 является кошелек - приложение или расширение для браузера, позволяющее пользователям подтверждать свою веб-идентификацию и разрешать транзакции. Но использование кошелька всегда было сопряжено с крутой кривой обучения. Новые пользователи должны научиться записывать свои начальные слова и хранить их в безопасном месте, создавать надежный пароль для шифрования файла keystore, точно копировать адреса при отправке средств и многое другое, чему, возможно, никогда не придется учиться при использовании приложений Web2.

Если новый пользователь хочет сделать процесс регистрации более доступным, один из вариантов - воспользоваться услугами провайдера кастодиального кошелька, например, централизованной биржи. Но опытные пользователи криптовалют почти всегда предостерегут их от этого по веской причине. Мир был свидетелем того, как централизованные биржи, такие как Mt. Gox, QuadrigaX и FTX, обанкротились из-за взломов или откровенного мошенничества, в результате чего некоторые клиенты потеряли все свои средства из-за использования кастодиального кошелька.

В связи с этим риском многие пользователи криптовалют по-прежнему рассматривают некастодиальный кошелек, подкрепленный набором начальных слов, как единственный надежный способ защиты своей Web3-идентификации.

Но всегда ли пользователям приходится выбирать между безопасностью и удобством? Или есть способ совместить безопасность некастодиального кошелька с удобством биржи?

Несколько компаний Web3 пытаются создать кошельки, которые просты в использовании, но в то же время не требуют от пользователя полностью доверять централизованному хранителю. Такие компании, как Magic, Dfns, Kresus, Web3Auth, Immutable и другие, считают, что кошелек может быть таким же простым в использовании, как электронный почтовый ящик, и при этом достаточно надежным, чтобы ему можно было доверить защиту личности и средств пользователя. Эти компании используют различные типы инфраструктуры новых кошельков, чтобы воплотить эту идею в жизнь.

Вот краткий обзор нескольких решений, используемых разработчиками кошельков:

Магия

Одной из новых систем является комплект разработчика программного обеспечения Magic (SDK), выпускаемый компанией Magic Labs. Это комплект разработчика и инфраструктура кошелька, которая позволяет разработчикам создавать бессемянные кошельки для пользователей.

Вместо того чтобы хранить закрытый ключ на устройстве пользователя, его зашифрованная копия хранится на аппаратном модуле безопасности (HSM) Amazon Web Services. Шифрование выполняется с помощью мастер-ключа, который не может покинуть HSM. Все подписи выполняются внутри HSM, что предотвращает передачу ключа пользователя в Интернет.

Волшебные кошельки не используют пароли. Вместо этого, когда пользователи впервые регистрируются в волшебном кошельке, они сообщают свой адрес электронной почты ретранслятору Magic. Затем ретранслятор отправляет пользователю по электронной почте токен одноразового использования. Этот токен будет работать только при использовании устройством, отправившим запрос, и только в течение ограниченного времени.

Токен используется для аутентификации в Amazon Web Services, когда пользователь нажимает на ссылку в письме. Затем на устройстве пользователя генерируются закрытый и открытый ключи учетной записи блокчейн-кошелька, которые отправляются в HSM. В Magic Labs утверждают, что не могут видеть сгенерированный закрытый ключ, поскольку он никогда не попадает на их серверы.

Когда пользователи перестают использовать свои кошельки и закрывают браузеры, они могут снова открыть свои кошельки, повторив этот процесс. Они снова отправляют свой адрес электронной почты в Magic и получают новый токен одноразового использования. На этот раз, после аутентификации, они вновь получают доступ к своему кошельку.

Компания Magic Labs создала демонстрационный ролик, показывающий, как работает эта система. Судя по всему, она позволяет любому человеку создать кошелек без загрузки расширения для браузера или копирования начальных слов. Она также позволяет пользователям закрыть браузер и вернуться к своим кошелькам позже, снова войдя в ту же учетную запись Web3.

В настоящее время демонстрация работает только в таких тестовых сетях, как Goerli, Sepolia и Mumbai.

Кошельки на основе магии

Было выпущено или находится в разработке несколько различных кошельков, использующих Magic. Одним из ярких примеров является кошелек Kresus - мобильное приложение, которое позволяет пользователям хранить и держать биткоин (BTC), эфир (ETH), Solana (SOL), Polygon (MATIC) и токены из этих сетей. Он также позволяет пользователям отправлять криптовалюту, используя доменные имена .kresus вместо криптоадресов.

Kresus был выпущен в Apple App Store 11 мая. Команда сообщила Cointelegraph, что версия для Android появится позже в 2023 году.

Неизменяемый паспорт - еще один пример. Это интерфейс прикладного программирования (API), созданный разработчиком Web3-игр Immutable. Когда игры-участники интегрируют свои сайты с Passport, это позволяет игрокам создавать кошельки непосредственно на сайте игры.

Компания Immutable сообщила Cointelegraph, что кошельки Passport подключаются к сети Immutable X, протоколу второго уровня Ethereum, что позволяет игрокам хранить все свои игровые коллекционные предметы Immutable на одном счете, независимо от того, в какой игре они изначально зарегистрировались.

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

Проблемы безопасности при использовании Magic

Magic SDK содержит один известный недостаток безопасности, который разработчики приняли меры для его устранения. Поскольку для аутентификации пользователя используются токены электронной почты, злоумышленник может получить доступ к HSM пользователя, взломав его учетную запись электронной почты и запросив аутентификацию с собственного устройства. Получив доступ к HSM, злоумышленник может санкционировать любые транзакции со счета пользователя.

По этой причине компании Immutable Passport и Kresus планируют использовать двухфакторную аутентификацию (2FA) в качестве дополнительного уровня безопасности на случай, если учетная запись электронной почты пользователя будет скомпрометирована.

Кошельки на основе Magic не имеют паролей, поэтому их невозможно взломать обычным способом кражи и взлома хэша пароля.

Web3Auth

Еще одна новая инфраструктура кошельков, которую часто используют разработчики, - Web3Auth.

Web3Auth - это сеть управления ключами, которая полагается на многосторонние вычисления (MPC) для обеспечения возможности восстановления закрытых ключей. Когда пользователи регистрируют учетную запись с помощью Web3Auth, они, как обычно, генерируют закрытый ключ. Затем этот ключ делится на три "доли".

Первый ресурс хранится на устройстве пользователя, второй - в сети Web3Auth через поставщика логина, а третий - резервный ресурс, который должен храниться на отдельном устройстве или в автономном режиме. По желанию пользователя третий ресурс может быть создан из вопросов безопасности.

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

Провайдер также не может цензурировать транзакции. Если провайдер отказывается предоставить пользователю второй ресурс после правильной аутентификации, пользователь может сгенерировать свой закрытый ключ, используя комбинацию ресурса, хранящегося на его устройстве, и резервного ресурса.

В Web3Auth ресурс провайдера входа дополнительно разделяется на девять различных шардов и распределяется по сети узлов хранения, причем для восстановления ресурса провайдера требуется пять шардов. Это не позволяет поставщику логина хранить свои ресурсы в собственной инфраструктуре.

Кошельки Web3Auth

Web3Auth был интегрирован в несколько розничных кошельков, включая Binance Wallet и закрытую бета-версию Trust Wallet. В расширенной версии Binance Wallet пользователи могут создавать учетные записи кошелька, используя свои логины Google. В версии Trust Wallet в качестве поставщиков логинов можно использовать Google, Apple, Discord и Telegram, говорится в официальном видеоролике с Twitter-аккаунта Web3Auth.

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

В беседе с Cointelegraph генеральный директор Web3Auth Чжэнь Юй Йонг заявил, что переход к использованию нескольких ключевых долей в Web3 похож на эволюцию 2FA на сайтах Web2:

"Имена пользователей и пароли в начале 2000-х или в конце 1990-х было невероятно легко потерять. Тогда мы думали, что финансовые приложения никогда не будут созданы в Интернете".

"С именами пользователей и паролями мы в конечном итоге перешли к двухфакторной аутентификации", - продолжает Йонг. "Я думаю, что это тот же переход, который мы пытаемся осуществить здесь [...] Вместо того, чтобы использовать один фактор, мы разделяем его на несколько различных факторов [...] и делаем это так, чтобы это были все ваши точки доступа, так что все это по-прежнему самодостаточно".

Dfns

Dfns, произносится как "защита", является сетью управления ключами MPC, которая позволяет учреждениям, разработчикам и конечным пользователям создавать беспарольные и бессеменные кошельки. Закрытый ключ каждого блокчейна хранится в виде нескольких осколков, распределенных между узлами сети Dfns.

Для авторизации транзакции узлы Dfns должны совместно создать подпись, используя каждый шард.

В отличие от Web3Auth, Dfns не хранит часть закрытого ключа блокчейна на устройстве пользователя или в качестве резервной копии. Все шарды хранятся в самой сети.

Узлы Dfns используют протокол под названием "WebAuthn" для проверки того, что пользователь разрешил транзакцию. Этот протокол был создан Консорциумом Всемирной паутины для того, чтобы пользователи могли входить на сайты без пароля. В Dfns узлы запрограммированы на подписание транзакции своим шардом только в том случае, если конечный пользователь прошел аутентификацию по этому протоколу.

Когда пользователь регистрируется на сайте с помощью WebAuthn, сайт создает закрытый ключ на устройстве пользователя. Этот закрытый ключ не используется ни в одном блокчейне. Он существует только для того, чтобы пользователь мог войти на сайт.

При создании ключа пользователю предлагается защитить его пин-кодом или биометрическим замком. На ПК с Windows этот замок может быть создан через Windows Hello, который является частью операционной системы, или через отдельное устройство, такое как мобильный телефон или Yubikey. На мобильном устройстве замок создается с помощью встроенной системы безопасности устройства.

Пример запроса на регистрацию WebAuthn. Источник: WebAuthn.io
Пример запроса на регистрацию WebAuthn. Источник: WebAuthn.io

На сайте, где реализована регистрация WebAuthn, пользователю не требуется адрес электронной почты или пароль для регистрации. Вместо этого устройство использует собственную систему безопасности для идентификации пользователя.

Когда команда разработчиков кошелька создает кошелек с использованием Dfns, они могут передать этот метод аутентификации конечному пользователю. В этом случае кошелек считается некустодиальным, поскольку провайдер кошелька не имеет устройства пользователя, пин-кода или биометрических данных и поэтому не может авторизовать транзакции.

Конечный пользователь также может добавлять устройства в кошелек, если первое из них сломалось.

Разработчики кошельков могут создавать опекунские кошельки, используя также Dfns. В этом случае разработчик кошелька должен аутентифицироваться в сети с помощью WebAuthn. Они могут использовать любой метод для аутентификации пользователя, включая даже имена пользователей и пароли.

Кошельки, использующие Dfns

В беседе с Cointelegraph основатель Dfns Кларисса Хагеж заявила, что многие клиенты платформы - это учреждения и команды разработчиков на рынке business-to-business.

Однако в последнее время команда начала привлекать больше поставщиков кошельков для бизнеса и потребителей. Приложение для розничных криптосбережений SavingBlocks использует Dfns, и компания ведет переговоры с парой децентрализованных бирж, чтобы помочь создать кошельки и для их клиентов, сказала она.

Хагеж утверждает, что для массового принятия криптовалют пользователи даже не должны знать о существовании закрытого ключа блокчейна при совершении транзакций.

"Мы нацелены на сотни тысяч разработчиков, которые будут создавать сценарии использования, нацеленные на массовое внедрение блокчейна, на людей, которые не хотят знать, что у них есть закрытый ключ", - пояснила она. "У нас есть сеть серверов, которая управляет генерацией ключей [...], и важно не владение закрытым ключом или долей ключа, а владение доступом к API".

Будет ли новая технология кошельков принята массами?

Приведут ли эти новые технологии кошельков к массовому внедрению или даже будут приняты нынешними пользователями, пока неизвестно. Несмотря на свою простоту, они могут оказаться слишком сложными для пользователей, которые предпочитают хранить свои криптовалюты на бирже. С другой стороны, пользователи, которые верят в мантру "не ваши ключи, не ваша криптовалюта", могут с подозрением отнестись к тому, чтобы доверять сети MPC или аппаратному модулю безопасности, принадлежащему Amazon, авторизацию транзакций для них.

Тем не менее, некоторые пользователи могут решить, что преимущества MPC или магических связей слишком хороши, чтобы от них отказаться. Только время покажет.

Тем временем, эти новые технологии, вероятно, вызовут дискуссию о том, как обеспечить пользователям контроль над своими средствами или что на самом деле означает "самостоятельное хранение".

Источник