MetaMask Snaps — это дорожная карта, которая сделает MetaMask самым расширяемым кошельком в мире. Как разработчик, вы можете добавлять свои функции и API в MetaMask совершенно новыми способами. Web3-разработчики — основа этого роста, и данная серия материалов призвана продемонстрировать новаторские MetaMask Snaps, создаваемые сегодня.
ZK Nullifier Snap
Snap Repo: https://github.com/piotr-roslaniec/ethbogota-2022
Почему вы его создали?
Мы хотим открыть путь новому поколению псевдонимных приложений, требующих уникальности, — таких как ZK-аирдропы, ZK-форумы и ZK-голосования. Для этого нам необходима тесная интеграция с кошельком, начиная с MetaMask Snap.
Можете рассказать о технической реализации?
Мы создали универсальный скрипт snap, позволяющий выполнять произвольный WASM внутри snap. Затем мы добавили WASM-биндинги к существующему коду подписи на Rust и подключили его к вызову приватного ключа через MetaMask Snaps. После этого мы выводим все необходимые сигналы для ввода пользователем в ZK-SNARK с целью верификации детерминизма подписи.
Чтобы узнать подробнее о том, как это позволяет создавать эффективные уникальные анонимные идентификаторы или анонимные нуллификаторы, ознакомьтесь с нашей полной публикацией в блоге.
Каковы следующие шаги при реализации этого проекта?
Мы хотим выполнить сквозную интеграцию с необходимыми ZK-доказательствами, которые в настоящее время пишутся на Circom, а в ближайшем будущем — на языке на основе PLONK. Мы также рассчитываем, что такие приложения, как heyanon и stealthdrop, интегрируют его после релиза, и надеемся, что им воспользуется больше людей!
Кроме того, мы хотим написать ERC для стандартизации наших наработок, чтобы кошельки вроде MetaMask и Ledger могли интегрировать их в свои основные библиотеки.
Расскажите немного о себе и своей команде?
yush_g исследует ZK-идентификацию нового поколения совместно с Personae Labs и участвовал в написании оригинальной статьи, а Пётр — талантливый инженер, увлечённый новыми примитивами кошельков и передовыми достижениями в области zero knowledge.
Когда вы впервые познакомились с MetaMask Snaps и каким был этот опыт?
Пётр впервые узнал о MetaMask Snaps на Devcon в Осаке и работает с ними с тех пор. Аайуш познакомился с MetaMask Snaps на этом Devcon благодаря Пётру.
Чем MetaMask Snaps отличается от других кошельков?
Произвольный WASM внутри кошелька — это пока ещё совсем новая область, и мы рады возможности попробовать его в деле.
Расскажите, каково это — создавать MetaMask Snaps вместе с MetaMask для вас и вашей команды?
Разработка проходит достаточно гладко и эффективно. Пока ещё есть определённые сложности с развёртыванием, поскольку пользователям приходится отключать обычный MetaMask, чтобы использовать MetaMask Snaps.
Что MetaMask Snaps значит для вас?
MetaMask Snaps — это интересный новый примитив кошелька, отлично подходящий для быстрого прототипирования новых криптографических идей.
Какие возможности вы видите в MetaMask Snaps и что это открывает для пространства Web3?
Мы считаем, что возможность использовать собственную криптографию — это мощный инструмент: например, наш проект, который развёртывает верифицируемо детерминированные подписи в Ethereum, откроет такие возможности, как уникальное голосование в любом анонимном множестве, которое только можно представить, анонимные аирдропы на несвязанные аккаунты или треды, где можно регулярно публиковать сообщения под одним и тем же анонимным именем.
Есть ли советы, которыми вы хотели бы поделиться с разработчиками, желающими попробовать MetaMask Snaps?
Мы разработали наш snap для запуска произвольного WASM, чтобы просто подключить существующий код на Rust — рекомендуем изучить наш код, если вас интересует то же самое!
Создание с MetaMask Snaps
Чтобы начать работу с MetaMask Snaps:
Ознакомьтесь с документацией для разработчиков
Установите MetaMask Flask
Изучите руководство по MetaMask Snaps
Оставайтесь на связи с нами в Twitter, обсуждениях на GitHub и Discord
Следите за нашей командой на следующем хакатоне рядом с вами! Удачного BUIDLing'а ⚒️
Отказ от ответственности: MetaMask Snaps, как правило, разрабатываются третьими сторонами, не являющимися Consensys Software. Использование MetaMask Snaps, разработанных третьими сторонами, осуществляется по вашему собственному усмотрению и на ваш страх и риск, и вы соглашаетесь с тем, что несёте единоличную ответственность за любые убытки или ущерб, возникшие в результате такой деятельности. Consensys не даёт никаких явных или подразумеваемых гарантий, устных или письменных, в отношении MetaMask Snaps, разработанных третьими сторонами, и отказывается от какой-либо ответственности за них. Использование программного обеспечения, связанного с блокчейном, сопряжено с рисками, которые вы полностью принимаете на себя при использовании MetaMask Snaps.