July 31, 2023

Кошельки должны быть невидимыми

Перевод

Это вольный перевод: https://mirror.xyz/sylve.eth/A8VnNvBVbc0aXmW2FlG58ysI8oZUnH0HGwwjIsQGHUk

Введение

Ранее уже рассказывал об абстракции счетов, а сегодня хочу поговорить о лучшем из возможных кошельков: о том, о котором вы не знаете. [Прим. Menaskop: как по мне - это как раз худший из всех вариантов].

Современные рассуждения о массовом внедрении Web 3.0 сводятся к тому, что "нам нужен лучший UX". Половина этих рассуждений связана с производительностью: блокчейн медленный / дорогой / расточительный [Прим. Menaskop: почему это не так - см. здесь], а половина - с основным средством взаимодействия с блокчейном: кошельками.

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

Моё противоположное мнение - всё это не имеет значения. Да, это самый красивый кошелек. Да, вы решили очень специфические проблемы, которые сегодня мучают кошельки. Но вы не решите проблему UX кошелька и не привлечёте 7 млрд. человек, сделав кошельки более удобными, вы решите проблему UX кошелька, сделав кошельки невидимыми.

Люди не хотят пользоваться кошельками

Давайте посмотрим на текущий лучший в своём классе опыт для Web 3.0 dApp: Sorare. Чтобы начать играть на Sorare, необходимо создать учётную запись. После ввода одного имени пользователя/пароля - входите в приложение и можете начать торговать (с разной степенью успешности).

Что происходит в фоновом режиме: Sorare развёртывает для вас кошелёк на StarkEx, но вы об этом не знаете. Он не представляется публично - он полностью абстрагирован. Они хранят для вас ключ, но шифруют его паролем, который знаете только вы (хотя - это грубое упрощение).

То же самое касается Torus/Web3auth/Plaid и других сервисов "кошелька как услуги".

Очень печально то, что этот кошелёк обычно нельзя использовать повторно в других местах. Пользователи получают кошельки для конкретных приложений. Таким образом, вы выигрываете с точки зрения внедрения и полностью упускаете смысл Web 3.0 (вы изолировали их в приложении).

Почему мы не разворачиваем неспецифичные для приложения кошельки? Потому что это сложно.

Без абстракции учётной записи (абстракции аккаунта), снижения комиссии крайне сложно раздать пользователю кошелёк и ожидать, что он не совершит ошибок.

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

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

Возьмем, к примеру, Gmail. Это фантастическое программное обеспечение. Люди хотят пользоваться Gmail. Оказывается, чтобы пользоваться Gmail, нужно создать учётную запись Google. Хотят ли люди иметь учетную запись Google? Нет. Они хотят пользоваться Gmail. Вы входите в Gmail, создаёте учетную запись и начинаете работать. Затем вы обнаруживаете, что вам нужен текстовый редактор, электронная таблица, и (волшебство) ваша учётная запись Google работает в Google Docs и Google Sheets! Ура!

А теперь представьте, что вы начинаете рассказывать людям о том, что им нужно создать учётные записи Google. И это единственное, что вы рекламируете. Аккаунты. Лучший пользовательский интерфейс аккаунта. Простой вход в систему. Вход в систему с помощью моей учетной записи. Отличный вход в систему. Вау. Много логинов. Так много приложений с моими учётными записями.

Это то, что пытаются продать компании с "лучшим UX кошелька": люди будут использовать нас, потому что мы более удобны и мы лучший кошелёк в мире. Мне на это наплевать. Мне плевать на мой аккаунт Google. Меня волнуют приложения.

Именно это мы и делаем в Web 3.0: мы начали верить, что людям действительно нужны кошельки. Но кошельки должны стать аккаунтом Google: невидимым и вездесущим.

Кошельки во всемирной паутине

Возьмём, к примеру, dApp, briq. В настоящее время мы просим пользователей иметь кошелёк, чтобы войти в систему и начать играть. Это обязательное условие, и это отстой. Я бы хотел, чтобы мои бабушка и дедушка пользовались briq, но кошельки слишком сложны. Поэтому они не пользуются briq, и мне грустно.

Теперь представьте себе следующий процесс: вы заходите на briq, выбираете имя пользователя/пароль для регистрации и начинаете играть. Вы счастливы. Теперь вы заходите на другой dApp, используете те же имя пользователя/пароль и (волшебство) входите в систему, используя тот же кошелек.

Именно это смогут обеспечить веб-кошельки, подобные кошельку Argent.

https://youtu.be/vUkSu5M8MkE

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

Это настоящий сдвиг в сознании, потому что до сих пор мы думали, что людям нужны кошельки, и поэтому привыкли создавать приложения и плагины для удовлетворения этой потребности. Но веб-кошелек полностью переворачивает сценарий: кошелька (как приложения) не существует, а существует кошелёк (объект блокчейна). Это возможно только с помощью "умных" кошельков.

WebAuthn - это всё

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

К счастью, для этого существует стандарт. Лучший способ привлечь к блокчейну 7 млрд. человек - развернуть для них кошелеёк с помощью WebAuthn. Именно так поступили компании Opclave, Cometh и Cartridge.

WebAuthn - набор API, который позволяет веб-приложениям упростить и обезопасить аутентификацию пользователей, используя не имя пользователя/пароль, а зарегистрированные устройства.

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

Рассмотрим реальный пример аутентификации с помощью Cartridge-Webauthn для компании briq. Пользователи сканируют QR-код, выбирают имя пользователя, проходят биометрическую аутентификацию и вуаля. Они получают набор briq на кошелек, который Cartridge развернул для них, а ключ надежно хранится в защищенном анклаве смартфона.

https://twitter.com/briqNFT/status/1629037762874671106

CoinTelegraph опробовал эту систему во время сессии StarkWare:

  • Журнал опробовал процесс регистрации новичков на сессии StarkWare в Тель-Авиве (Израиль), где игровой кошелек Cartridge раздавал ограниченные серии NFT briq.
  • Весь процесс занимает менее 30 секунд и является абсолютно интуитивным. Пользователи сканируют QR-код, выбирают имя пользователя, а затем создают ключ доступа с помощью сканера отпечатков пальцев телефона.

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

Некастодиальный Cartridge Controller фактически представляет собой веб-кошелек, взаимодействующий со Starknet. Вместо закрытых ключей он использует "Passkeys" для Android или Apple, которые основаны на стандарте WebAuthn - инициативе по стандартизации аутентификации пользователей в веб-приложениях с использованием криптографии с открытым ключом.

Чтобы снова найти свой кошелёк, пользователю достаточно зайти на сайт cartridge.gg и снова войти в систему, используя тот же смартфон. Всё очень просто.

WebAuthn всё ещё довольно дорог для ончейн-запуска, а защищённое хранение на устройствах Apple требует использования кривой secp256r1, что является проблемой для EVMs... Но я не слишком беспокоюсь, что мы сможем решить эту проблему достаточно скоро.

Прогрессивное раскрытие информации о кошельках: меньше значит больше

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

При нажатии на кнопку "подключиться" на briq открывался виджет веб-кошелька, который показывал мой баланс ETH, 20 различных NFT, которыми владею, и всю историю транзакций.

Пришлось объяснять, что пользователям всё это в данном контексте безразлично.

На briq не нужно столько информации. Единственное, что будет интересовать пользователя в briq DApp, - это активы и информация, связанные с briq. Когда вы находитесь в Google Sheet, вам не нужно знать, что кто-то отредактировал один из ваших Google Doc.

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

Я считаю это прогрессивным раскрытием кошелька. Не надо вываливать на пользователя все функции, надо контекстно и пунктуально показывать ему то, что актуально, раскрывать возможности кошелька понемногу. [Прим. Menaskop: на самом деле надо - если мы хотим изменить мир, а не просто сделать его снова таким же].

Рассмотрим гипотетический поток пользователей:

  • Алиса создаёт на briq веб-кошелек на базе WebAuthn, используя свой iPhone. Возможно, она даже не знает, что у нее есть кошелек, ей просто понравились наборы briq, и она захотела купить один из них. Мы решаем проспонсировать её первые 10 транзакций на briq, поскольку она купила NFT с помощью своей кредитной карты.
  • Алиса проверяет свой профиль на briq и решает продать одну из своих собственных разработок. Она заходит на Mintsquare, торговую площадку Starknet NFT, сканирует QR-код и выставляет свой NFT на продажу.
  • NFT нашел покупателя! Внезапно кошелек Алисы наполняется свежими ETH. Ей стало интересно узнать больше об этих волшебных интернет-деньгах. Она также получает по электронной почте уведомление о том, что ее баланс теперь превышает 50 долларов и ей следует добавить еще несколько опций безопасности, таких как социальное восстановление и контроль скорости.
  • Алиса может использовать широкий спектр сайтов, таких как Zapper для DeFi и Showtime для NFT, чтобы увидеть все о своем кошельке и добавить или отменить опции безопасности, такие как deadman switch, сессионные ключи и т.д.
  • Создавая и продавая всё новые и новые вещи, Алиса обнаруживает, что у неё скопился приличный кусок ETH, и решает начать конвертировать его в фиат. Она разрешает протоколу off-ramp продавать часть своих ETH каждый день и отправлять деньги на свой банковский счет.
  • Спустя полгода Алиса полностью овладела знаниями о криптовалюте: она использует приложение для смартфона, чтобы отслеживать свой портфель, и даже купила аппаратный кошелек, чтобы улучшить свою систему безопасности. Теперь она решает вложить оставшуюся часть ETH в обеспечение безопасности Ethereum и внести свой вклад в мировой компьютер.

В этом примере Алиса начала с простого NFT и дошла до ставки ETH. Ей не пришлось скачивать приложение или расширение для браузера. Мы не показывали ей все возможности ее кошелька в первый день, она открывала свои суперспособности со временем, когда это было уместно. Что очень важно, она всегда контролировала ситуацию: у нее был ключ на смартфоне, работающий по принципу passeys от Apple, и со временем она добавляла дополнительные средства контроля безопасности. Ей никогда не приходилось уступать свою автономность третьим лицам, она всегда могла провести транзакцию или отозвать полномочия. [Прим. Menaskop - почему это не так, легко понять, зная, как именно пользователи относятся к своим паролям].

Нельзя помогать людям научиться плавать, бросая их в бассейн и обвиняя, когда они тонут. Вы даёте им поплавки, заставляете их чувствовать себя комфортно в мелком конце бассейна и с легкостью заходите в глубокий конец. [Прим. Menaskop: вот только, во-первых, не все могут ходить в бассейн; во-вторых, те, кто приучаются плавать лишь в комфортных условиях, в итоге тонут в банальной горной реке или даже море].

Чувак, где мой кошелек?

С невидимыми кошельками происходят забавные вещи:

Вы не знаете, где ваш кошелёк именно: при использовании бумажника Cartridge вы знаете, что у вас есть бумажник, но не знаете, где он находится. У вас есть только ключи, и они похожи на ключи от автомобиля: вы можете открыть машину, но можете забыть, где припарковались.

Если пользователь Cartridge забывает о сайте cartridge.gg, это всё равно, что вы забываете, где припарковали свой автомобиль. Важно указать пользователям, куда они могут вернуться, например, на сайт приборной панели. С Metamask такой проблемы не возникает, поскольку лисенок всегда находится в правом верхнем углу браузера.

Вы не знаете всего о своём кошельке: если кошелек отображает только контекстную информацию, вы можете не знать, что с ним что-то случилось. Вы можете даже не знать, что получили airdrop, потому что вы можете не знать, что у вас есть кошелёк.

Уведомления по электронной почте или на смартфоне кажутся логичным решением.

Люди Web 3.0 теряются, люди Web 2.0 радуются: выходцам из Web 3.0 очень трудно понять, что им не нужно иметь приложение/плагин для кошелька, что их кошелек находится в эфире. Они быстро устают и думают, что вы занимаетесь какими-то махинациями. Люди из Web 2.0 очень довольны, здесь нет ничего нового: счета всегда работали таким образом. Я считаю, что здесь важно не идти на поводу у Web 3.0-шников и сказать им, что они привыкнут. [Прим. Menaskop: а я считаю, что подобных “чуваков” надо отослать далеко и сразу, т.к. на этом Web 3.0 завершит развитие, оставшись навсегда Web 2.5].

Возможности NFT Checkout

Как лучше всего использовать перечисленные выше возможности? Одна подсказка.

В подавляющем большинстве случаев люди используют блокчейн для NFT, а не DeFi. Я считаю, что это отличная возможность.

У нас должен быть поток оформления заказа, где пользователь покупает NFT с помощью своей кредитной карты и зачисляет NFT на свой вновь созданный кошелек (на базе WebAuthn). Теперь у пользователя есть кошелек, и мы можем показать ему все те крутые штуки, которые у нас есть в стране Web 3.0.

Некоторые проблемы

Управление фиатом и криптовалютой: если в конечном итоге действие "купить" выполняется на смарт-контракте, то пользователи, платящие криптовалюту, могут общаться напрямую с контрактом и работать быстрее, чем пользователи, платящие фиат, которым нужен сервис on-ramp. Это может вызвать проблемы, например, с аукционами.

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

Кошелек без ETH: самое забавное в людях, впервые использующих NFT, - это их полное безразличие к криптовалютам, им просто всё равно. Это затрудняет выплату транзакционных комиссий. Решить эту проблему можно с помощью paymaster'ов, спонсорства транзакций и, возможно, ежемесячной платы за кошелёк, чтобы покрыть их комиссионные.

Подведём итоги

Пользователи должны иметь возможность создавать кошельки без приложения или расширения кошелька: вот почему WebAuthn так крут, ключ находится на вашем смартфоне, подкрепленный passskey.

Пользователи должны иметь возможность использовать свои кошельки, не держа в руках криптовалюты: вы также можете сделать какую-нибудь супермодную фичу с Paymaster или MEV на базе ERC-4337, или просто поручить основному приложению или кошельку спонсировать транзакции. Вы получаете 10 txs бесплатно, а затем - ежемесячную подписку.

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

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

Заключительные мысли

Больше всего защищаются от идеи невидимых кошельков приверженцы криптовалют. Они говорят: "Вы дате слишком много власти Apple!" или "Люди бросят свою независимость! Каждый должен иметь холодное хранилище!".

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

Это чем-то напоминает старые дебаты о конфиденциальности, в которых закоренелые шифровальщики настаивали на том, чтобы все использовали PGP и другие сложные криптографические штучки. И что же, людям на это наплевать, а принуждение не работает. Но это не значит, что мы не должны пытаться повысить уровень конфиденциальности: именно для этого существуют Signal и HTTPs. Конфиденциальность должна быть встроенной - невидимой. [Прим. Menaskop: чтобы она была встроенной - она должна быть: без PGP и развития шифропанк-индустрии ничего бы просто не было].

Посмотрите выступление Марка Миллера и Дина Триббла о том, почему технорадикализм не работает:

https://youtu.be/HDKQulqVCQg

Каждый может стать криптовалютой, но люди должны уметь делать первые шаги. А для этого кошельки должны быть невидимыми. [Прим. Menaskop: а люди - глупыми].

До!