MetaMask Snaps est la feuille de route pour faire de MetaMask le wallet le plus extensible au monde. En tant que développeur, vous pouvez intégrer vos fonctionnalités et vos API à MetaMask de manières totalement inédites. Les développeurs Web3 sont au cœur de cette croissance, et cette série a pour objectif de mettre en lumière les MetaMask Snaps innovants qui sont développés aujourd'hui.
ZK Nullifier Snap
Dépôt du Snap : https://github.com/piotr-roslaniec/ethbogota-2022
Pourquoi l'avez-vous développé ?
Nous souhaitons permettre l'émergence d'une nouvelle génération d'applications pseudonymes nécessitant une notion d'unicité, comme les ZK airdrops, les forums de discussion ZK et le vote ZK. Pour ce faire, nous avons besoin d'une intégration étroite avec un wallet, en commençant par un MetaMask Snap.
Pouvez-vous nous présenter l'implémentation technique ?
Nous avons développé un script snap générique qui nous permet d'exécuter du WASM arbitraire à l'intérieur du snap. Nous avons ensuite ajouté des liaisons WASM au code de signature Rust existant, et l'avons connecté à l'appel MetaMask Snaps vers la clé privée. Nous produisons ensuite tous les signaux appropriés que l'utilisateur doit saisir dans un ZK-SNARK pour vérifier le déterminisme de la signature.
Pour en savoir plus sur la façon dont cela nous permet de créer des identifiants uniques et anonymes efficaces, ou des nullifiers anonymes, consultez notre article de blog complet ici.
Quelles sont les prochaines étapes si vous deviez implémenter cela ?
Nous souhaitons l'intégrer de bout en bout avec les preuves ZK nécessaires, qui sont actuellement en cours d'écriture en Circom, et bientôt dans un langage basé sur PLONK. Nous espérons également que des applications comme heyanon et stealthdrop l'intégreront dès sa sortie, et que davantage de personnes l'utiliseront !
Nous souhaitons également rédiger un ERC pour standardiser ce que nous avons découvert, afin que des wallets comme MetaMask et Ledger puissent l'intégrer dans leurs bibliothèques principales.
Pouvez-vous nous parler un peu de vous et de votre équipe ?
yush_g explore la prochaine génération d'identité ZK avec Personae Labs et a contribué à la rédaction de l'article original, tandis que Piotr est un ingénieur de talent passionné par les nouvelles primitives de wallet et les avancées de pointe en matière de zero knowledge.
Quand avez-vous découvert MetaMask Snaps pour la première fois et quelle a été votre expérience ?
Piotr a découvert MetaMask Snaps lors de la Devcon d'Osaka et travaille avec depuis lors. Aayush a été initié à MetaMask Snaps lors de cette Devcon par Piotr.
Qu'est-ce qui différencie MetaMask Snaps des autres wallets ?
L'exécution de WASM arbitraire dans un wallet est encore assez naissante, et nous sommes enthousiastes à l'idée de pouvoir l'expérimenter.
Parlez-nous de votre expérience et de celle de votre équipe dans le développement de MetaMask Snaps avec MetaMask.
Le développement est assez fluide et efficace. Il subsiste quelques difficultés liées au déploiement, car les utilisateurs doivent désactiver leur MetaMask habituel pour pouvoir utiliser MetaMask Snaps.
Que représente MetaMask Snaps pour vous ?
MetaMask Snaps est une nouvelle primitive de wallet intéressante, et il est très appréciable de pouvoir prototyper rapidement de nouvelles idées cryptographiques.
Quelles opportunités voyez-vous avec MetaMask Snaps et les possibilités qu'il ouvre pour l'écosystème Web3 ?
Nous pensons que la capacité à déployer sa propre cryptographie est puissante : par exemple, notre projet, qui déploie des signatures déterministes vérifiables sur Ethereum, permettra des choses comme la possibilité de voter de manière unique au sein de n'importe quel ensemble d'anonymat imaginable, des airdrops anonymes vers des comptes non liés, ou des fils de discussion où vous pouvez publier de manière répétée sous le même pseudonyme anonyme.
Avez-vous des conseils à partager avec les développeurs souhaitant essayer MetaMask Snaps ?
Nous avons conçu notre snap pour exécuter du WASM arbitraire afin de pouvoir simplement intégrer notre code Rust existant — nous vous recommandons de consulter notre code si vous souhaitez faire de même !
Développer avec MetaMask Snaps
Pour démarrer avec MetaMask Snaps :
Consultez la documentation développeur
Installez MetaMask Flask
Consultez un guide MetaMask Snaps
Restez connecté avec nous sur Twitter, GitHub discussions et Discord
Gardez un œil sur notre équipe lors du prochain hackathon près de chez vous ! Bonne construction ⚒️
Avertissement : Les MetaMask Snaps sont généralement développés par des tiers autres que Consensys Software. L'utilisation de MetaMask Snaps développés par des tiers se fait à votre propre discrétion et à vos propres risques, et implique votre accord selon lequel vous serez seul responsable de toute perte ou tout dommage résultant de ces activités. Consensys ne fournit aucune garantie expresse ou implicite, qu'elle soit orale ou écrite, concernant les MetaMask Snaps développés par des tiers, et décline toute responsabilité à leur égard. L'utilisation de logiciels liés à la blockchain comporte des risques, que vous assumez pleinement lors de l'utilisation de MetaMask Snaps.