MetaMask Snaps 是将 MetaMask 打造成全球最具扩展性钱包的发展路线图。作为开发者,您可以通过全新的方式将您的功能和 API 带入 MetaMask。Web3 开发者是这一增长的核心,本系列旨在展示当今正在构建的创新 MetaMask Snaps。
ZK Nullifier Snap
Snap 代码库:https://github.com/piotr-roslaniec/ethbogota-2022
您为什么要构建它?
我们希望为下一代需要唯一性的匿名应用提供支持,例如 ZK 空投、ZK 留言板和 ZK 投票。为此,我们需要深度的钱包集成,从 MetaMask Snap 开始。
能否带我们了解一下技术实现过程?
我们构建了一个通用的 snap 脚本,允许我们在 snap 内执行任意 WASM。随后,我们为现有的 Rust 签名代码添加了 WASM 绑定,并将其与 MetaMask Snaps 对私钥的调用进行了对接。最终,我们输出所有必要的信号,供用户输入 ZK-SNARK,以验证签名的确定性。
如需深入了解为何这一方案能够帮助我们创建有效的唯一匿名标识符或匿名 nullifier,请查阅我们的完整博客文章。
如果您要实现这一方案,下一步计划是什么?
我们希望将其与必要的 ZK 证明进行端到端集成,这些证明目前正在用 Circom 编写,不久后还将采用基于 PLONK 的语言。我们也期待 heyanon 和 stealthdrop 等应用在发布后能够集成它,并希望有更多人使用!
我们还计划撰写一份 ERC 标准,以规范我们的发现,使 MetaMask 和 Ledger 等钱包能够将其集成到核心库中。
能介绍一下您自己和您的团队吗?
yush_g 正在与 Personae Labs 共同探索下一代 ZK 身份技术,并参与撰写了原始论文;Piotr 是一位技术精湛的工程师,对新型钱包原语和前沿零知识技术充满热情。
您是什么时候第一次接触 MetaMask Snaps 的,体验如何?
Piotr 最初是在大阪 Devcon 上了解到 MetaMask Snaps 的,此后一直在使用它。Aayush 则是在本届 Devcon 上由 Piotr 引荐,才首次接触到 MetaMask Snaps。
MetaMask Snaps 与其他钱包有何不同?
在钱包内运行任意 WASM 目前仍处于相当早期的阶段,我们很高兴能有机会尝试。
请谈谈您和团队使用 MetaMask 构建 MetaMask Snaps 的体验?
开发过程相当顺畅高效。部署方面仍存在一些困难,因为用户必须禁用常规 MetaMask 才能使用 MetaMask Snaps。
MetaMask Snaps 对您意味着什么?
MetaMask Snaps 是一种有趣的新型钱包原语,非常适合快速验证新的密码学想法。
您认为 MetaMask Snaps 为 Web3 领域带来了哪些机遇和可能性?
我们认为自定义密码学的能力非常强大:例如,我们的项目在以太坊上部署了可验证的确定性签名,这将解锁诸多可能性——比如在任意您能想象的匿名集合中进行唯一投票、向未关联账户进行匿名空投,或者在同一匿名名称下反复发帖的讨论串。
对于有意尝试 MetaMask Snaps 的开发者,您有什么建议?
我们将 snap 设计为可运行任意 WASM,这样就能直接接入我们现有的 Rust 代码——如果您也有类似需求,推荐参考我们的代码!
使用 MetaMask Snaps 进行构建
开始使用 MetaMask Snaps:
查阅开发者文档
安装 MetaMask Flask
查看 MetaMask Snaps 指南
通过 Twitter、GitHub 讨论区 和 Discord 与我们保持联系
请留意我们团队在您附近举办的下一场黑客松!祝 BUIDL 愉快 ⚒️
免责声明:MetaMask Snaps 通常由 Consensys Software 以外的第三方开发。使用第三方开发的 MetaMask Snaps 须由您自行决定并承担风险,且您同意对因此类活动造成的任何损失或损害承担全部责任。Consensys 对第三方开发的 MetaMask Snaps 不作任何明示或暗示的保证,并对第三方开发的 MetaMask Snaps 免除一切责任。使用区块链相关软件存在风险,使用 MetaMask Snaps 即表示您完全接受并承担上述风险。