Перейти к содержимому

Snaps в MetaMask Stable и наши дальнейшие планы

Узнайте об истории Snaps, что это значит для нас в MetaMask, и о следующем шаге к совместному будущему.

7 мин чтения
Snaps в MetaMask Stable и наши дальнейшие планы

Сегодня мы запустили первую версию MetaMask Snaps в публичном дистрибутиве MetaMask. Это стало результатом многолетнего упорного труда и оригинальных исследований замечательной команды, и я рад рассказать вам, что это такое, как это появилось и куда движется.

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

Всё это время мы пытались создать интерфейс для Ethereum — тьюринг-полного компьютера, — но этот интерфейс разрабатывала одна-единственная команда! Очевидно, что идеальный кошелёк для такой открытой машины, как Ethereum, должен быть столь же гибким, как она сама, и сегодня мы делаем важный шаг в этом направлении.

MetaMask Snaps — это новая система в кошельке, которая позволяет пользователю по собственному желанию подключать дополнительные расширения во время работы. Мы запускаемся с набором API и партнёрами, которые их используют, — это позволяет нашему кошельку внезапно поддерживать новые блокчейны, новых провайдеров безопасности транзакций и разнообразные системы уведомлений (включая чат-Snap!). Мы считаем, что это откроет множество новых возможностей с точки зрения масштабируемости и безопасности, но это лишь начало.

История Snaps: как мы сюда пришли?

Самое важное в истории Snaps для меня — то, что теперь в основе нашего кошелька есть система, которая позволяет нам сделать шаг назад и с уважением пригласить сообщество предлагать собственные решения самых сложных проблем. У меня есть масштабные идеи и взгляды на то, каким может быть будущее безопасности транзакций, но это не повод считать их единственными, заслуживающими проверки. Мы помогаем открыть новую парадигму распределённых вычислений, и здесь немало вопросов, требующих творческих решений. Поэтому я по-прежнему убеждён, что снижение барьеров и стоимости экспериментов может стать важным ускорителем в поиске хороших ответов на сложные вопросы. Речь идёт не об ускорении технологий ради самих технологий, а об ускорении процесса поиска улучшений в том, как мы делаем вещи.

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

Наш путь к Snaps провёл нас через захватывающие страницы истории вычислений и позволил завести замечательных друзей. Невозможно переоценить значимость нашего партнёрства с Agoric в этом начинании: они разработали API для изоляции JavaScript, предложили его комитету по стандартам JS TC-39, реализовали рабочий shim этого API, доступный уже сегодня, и сотрудничали с нами в совершенствовании этой системы, LavaMoat и нашего подхода к безопасным вычислениям в целом. Наша система Snaps использует Agoric Compartment shim, дополнительно изолированный внутри iframe. Вы можете посмотреть мой разговор с Марком Миллером, главным учёным Agoric, здесь. Отчёт нашей purple team по аудиту Compartment shim можно прочитать здесь.

Мы прошли этот путь в особенно непростое время для WebExtension: сам Google предложил масштабную переработку принципов работы расширений, подобных MetaMask, и на какое-то время это нависло над всем проектом как возможный смертельный удар (или по меньшей мере как изменение, вынуждающее нас покинуть платформу расширений). К счастью, во многом благодаря исключительно умным и внимательным специалистам по развитию бизнеса как в Consensys, так и в Google, нам удалось найти компромиссы в том, как менялась платформа расширений, — компромиссы, которые позволили MetaMask реализовать амбициозные цели, не жертвуя идеалами безопасности ни одной из компаний.

Эти изменения всё равно потребовали огромного вклада со всей команды Consensys, чтобы помочь нам справиться. Одно дело — продвигать масштабную инициативу в активно используемом продукте с критически важной безопасностью, как MetaMask, и совсем другое — делать это одновременно с миграцией всей кодовой базы на то, что по сути являлось новой платформой. Этот подвиг свидетельствует о тесном взаимодействии нескольких команд MetaMask, разделивших бремя работы, чтобы открыть путь к куда более захватывающим задачам на другой стороне, и я глубоко благодарен каждой из них.

Система Snaps включает одни из самых красивых дизайнерских решений, которыми когда-либо был одарён кошелёк MetaMask (и некоторые связанные изменения дизайна скоро появятся и в других частях кошелька!). Процесс, при котором сайт предлагает Snap пользователю, пользователь безопасно оценивает связанные риски, а расширяемая система пользовательского интерфейса, которую мы сделали доступной для Snaps при подтверждениях (и которая продолжает совершенствоваться), — всё это результат невероятно глубоких дискуссий о безопасном дизайне, пользовательских исследований и множества вспышек вдохновения. Мы создали систему разрешений мирового класса и продолжаем развивать её в ещё более интересных направлениях.

В ближайшее время среди моих любимых запланированных API — новые типы аккаунтов (привет, 4337), активы, определяемые Snap (активы Snap пока не отображаются в основном списке токенов… но это временно), и виджеты главного экрана, которые будут использовать расширяемый UI-фреймворк, который мы создаём и который вы можете впервые оценить в кастомных подтверждениях, доступных в Snaps уже сегодня.

У нас есть страница с полностью проверенными Snaps, готовыми к использованию прямо сейчас, и я рекомендую попробовать их. В долгосрочной перспективе я ожидаю, что самые интересные Snaps окажутся теми, что разрушат наши прежние представления о том, для чего эта система вообще предназначена. Хочу отдельно отметить Archis за демонстрацию Snap, использующего LLM для инструктирования кошелька при совершении сделки. На фоне бума ИИ сейчас как никогда подходящее время, чтобы открыть кошелёк для смелых экспериментов.

Новая глава: в поисках лучшего интернета

Наличие системы управления безопасной расширяемостью — это действительно новое начало. Каждый из API, с которыми мы запускаемся сегодня, может стать основой для Snap, многократно умножающего полезность MetaMask, но, пожалуй, ещё важнее то, что с этим фундаментом мы можем всё чаще смотреть на любую часть кошелька, где, по нашему мнению, пользователи заслуживают большего контроля или где разработчики могут проявить больше творчества, — и открывать метод API, впуская это творчество, чтобы оно увлекало продукт в новые направления. Это не просто выпуск новой функции — это продукт, принимающий принципиально более открытую и совместную позицию по отношению к внешнему миру. Одной из главных болей в процессе создания MetaMask за почти восемь лет моей работы здесь было постоянное осознание океана творческих идей, которые оставались за пределами нашего бэклога из-за неизменных обязательств перед основами безопасности и совместимости. Snaps — это скромное признание того, что мы не можем справиться со всем в одиночку. Путь к открытию лучшего интернета потребует множества творческих вкладов. Вдобавок я и сам не успевал воплощать свои идеи так быстро, как они появлялись! Snaps — это негласно эгоистичная функция: теперь вы сможете расширять самый популярный кошелёк с меньшей бюрократией, чем мог себе позволить основатель самого популярного кошелька в мире ещё на прошлой неделе.

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

Не сомневайтесь: долгосрочная цель — вычисления без разрешений. Одним из поворотных моментов в моём пути в web3 стало отклонение хорошего приложения компанией Apple по произвольным причинам. Сегодня кажется, что компьютеры — это либо безопасные огороженные сады, либо полностью небезопасные, но открытые системы, и я верю, что мы заложили основы для создания пространства, которое не является ни тем, ни другим, — и именно на это пространство посередине направлены наши усилия. Безопасные вычисления под контролем пользователя уже на пути, и мы приглашаем вас помочь нам их определить.

Если вы разработчик и хотите поэкспериментировать с этой платформой, рекомендую установить Flask — наш дистрибутив MetaMask, ориентированный на разработчиков. С его помощью вы можете установить любой Snap (даже тот, который мы не проверяли) и начать создавать собственный.

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

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

Оцените перевод

Автор статьи:

  • Dan Finlay

    Дэн Финли занимается развитием MetaMask с 2016 года. За это время он выработал страсть и видение будущего безопасных распределённых вычислений без разрешений и воплощает это видение в жизнь через MetaMask. Warpcast: https://warpcast.com/danfinlay

    Читать все статьи