# Web3 小型应用程序:解读 MetaMask SnapsMetaMask Snaps 是一个具有长远理想的项目。抛开其理想化的外衣,它更像是 Web3 世界的小程序,或者可以称之为 dApplet。对于开发者,尤其是中国的开发者来说,这个概念并不陌生。近年来,"生态打造"、"超级App"等互联网术语频繁出现,大型科技公司试图将互联网环境变得更加封闭,以便从服务提供者转变为标准制定者。如今,这种趋势似乎也开始向 Web3 领域蔓延。尽管 Snaps 已经存在将近一年,从概念提出至少已有 4 年,但普通用户对它的了解仍然很少。即使是一些每天都使用 MetaMask 的加密货币爱好者,也可能不知道 MetaMask Snaps 是什么。不过,当解释为"类似小程序"时,开发者们通常会露出会心的微笑。这种情况让人想起微信小程序刚推出时的境况。由于功能入口不明显,使用量最初很低。直到将入口改为在首页下拉显示小程序列表后,使用量才开始大幅增长。MetaMask 如果想打造生态,如何吸引用户进入生态系统可能会成为一个亟待解决的重要问题。小程序自诞生以来就在互联网行业引发争议。前端工程师普遍认为它只是互联网巨头为垄断流量、封闭生态而创造的商业工具,对技术发展贡献有限。Web3 的 Snaps 能为社区带来多少贡献还有待观察。浏览 MetaMask 提供的文档,越发感觉未来的 Snap 开发者将面临诸多限制。自 MetaMask 开启 Snaps 公共测试版以来已近一年,然而其官网列出的可用 Snaps 数量并不多,截至 2024 年 6 月,仅有 68 个。值得注意的是,早在 2020 年左右,官方就已提出 Snaps 的概念,Web3 公司与开发人员其实已有相当长时间来了解它。目前还未见到专职开发 Snaps 的人员,但 Web2 中的小程序开发者不少。对小程序的普遍看法是开发体验较差。小程序开发仍使用前端生态,但是阉割版的,平台出于各种原因对开发者能做的事情进行限制。各平台的技术能力和文档质量参差不齐,导致开发者需要在各种平台踩过各种奇怪的坑后,才能被认为是"有经验"的。在 Web3 领域,出于安全等因素考虑,Snaps 可能面临类似情况。它在隔离的安全上下文中运行,使用"安全 ECMAScript",实际上是对 JavaScript API 做了一些限制,例如无法访问 DOM、Node.js、浏览器插件 API 等。由于安全考虑,基本的 Snaps 功能有限。大部分功能需要先获得相应权限,所以 Snaps 在安装时需要向用户申请相关权限。可用权限包括生命周期、交易、签名、CRON 等。相比繁荣的 Web3 生态,目前可用的 Snaps 数量较少,MetaMask 对它们进行了分类。## Snaps 类型根据 MetaMask 官网的分类,大致可分为 4 种类型:### 账户管理这类 Snaps 主要通过 MPC 技术提高私钥的安全性。传统的私钥保存方式可能存在以下问题:1. 忘记助记词存放位置,可能导致资产无法找回。2. 存储助记词的设备遭遇木马病毒,可能导致黑客盗窃助记词。MPC 技术可以自动将私钥拆分为多份,分别存储在不同位置,只在需要进行交易签名时重新组合,同时不会生成完整的私钥,最大限度保护私钥安全。目前只有 3 个账户管理类的 Snaps:Capsule、Silent Shard 和 Safeheron。这类 Snaps 的吸引力尚不明确,从安装量来看并不高。### 互操作性这类 Snaps 主要提供对非 EVM 网络的兼容,包括 Solana、Cosmos、Near、Sui 等。目前这类 Snaps 数量最多,占整个生态的一半以上。### 通知和聊天这类 Snaps 在当前可选的聊天应用众多的情况下,愿意通过链来发送消息的用户可能较少。### 安全这类 Snaps 的需求较大,特别是在 MetaMask 自身对钓鱼交易的警告不够充分的情况下。交易作为加密货币和区块链领域最常见的操作,具有高风险和高敏感特点。通过 Snaps 提供的交易洞察相关功能,开发者可以向用户展示更丰富的交易信息,提供交易分析和见解,最大限度避免用户资产损失。从 Snaps 官网数据来看,安全型 Snaps 是除多链支持外需求最大的,目前占总数的两成。MetaMask Snaps 提供了「endowment:transaction-insight」和「endowment:signature-insight」权限来满足相关需求,Snap 申请相关权限后,可以在用户发起交易或签名时读取原始交易或签名的有效负载。Snap 可以对其进行分析,然后向用户显示更多更丰富的安全性说明。## 展望MetaMask 希望通过 Snaps 将自己的领域扩张到其他链平台,但最终能走多远还难以预测。参考 Web2 领域的小程序经验,简陋的小程序服务通常无法与 App 相比,新功能跟进也常常落后,许多小程序会将用户引导至自己的 App。随着小程序的爆发式增长,更多 App 也开始推出自己的小程序平台,各家努力加固自己的护城河,整个 Web 世界变得越来越"中心化"。Web3 领域的资本也可能会采取类似策略。如果 Snaps 发展良好,可能会有更多钱包跟随。这种情况下,Web3 开发者可能需要针对各个钱包的"Snaps"开发相应版本,这可能会给他们带来不小的挑战。未来可能会出现各种"Snaps-like"平台,平台差异巨大,对各平台的兼容成为开发者的日常工作。最终可能会出现 Snaps Standard,同时会有各种 "SIP" 供人们参与讨论,社区呈现繁荣景象。对于 MetaMask 目前的大部分用户来说,Snaps 还不是一个特别必要的功能。MetaMask 接下来可能需要在如何更有效推广方面做更多工作。
MetaMask Snaps探析:Web3小程序的未来与挑战
Web3 小型应用程序:解读 MetaMask Snaps
MetaMask Snaps 是一个具有长远理想的项目。抛开其理想化的外衣,它更像是 Web3 世界的小程序,或者可以称之为 dApplet。
对于开发者,尤其是中国的开发者来说,这个概念并不陌生。近年来,"生态打造"、"超级App"等互联网术语频繁出现,大型科技公司试图将互联网环境变得更加封闭,以便从服务提供者转变为标准制定者。
如今,这种趋势似乎也开始向 Web3 领域蔓延。
尽管 Snaps 已经存在将近一年,从概念提出至少已有 4 年,但普通用户对它的了解仍然很少。即使是一些每天都使用 MetaMask 的加密货币爱好者,也可能不知道 MetaMask Snaps 是什么。不过,当解释为"类似小程序"时,开发者们通常会露出会心的微笑。
这种情况让人想起微信小程序刚推出时的境况。由于功能入口不明显,使用量最初很低。直到将入口改为在首页下拉显示小程序列表后,使用量才开始大幅增长。MetaMask 如果想打造生态,如何吸引用户进入生态系统可能会成为一个亟待解决的重要问题。
小程序自诞生以来就在互联网行业引发争议。前端工程师普遍认为它只是互联网巨头为垄断流量、封闭生态而创造的商业工具,对技术发展贡献有限。Web3 的 Snaps 能为社区带来多少贡献还有待观察。浏览 MetaMask 提供的文档,越发感觉未来的 Snap 开发者将面临诸多限制。
自 MetaMask 开启 Snaps 公共测试版以来已近一年,然而其官网列出的可用 Snaps 数量并不多,截至 2024 年 6 月,仅有 68 个。值得注意的是,早在 2020 年左右,官方就已提出 Snaps 的概念,Web3 公司与开发人员其实已有相当长时间来了解它。
目前还未见到专职开发 Snaps 的人员,但 Web2 中的小程序开发者不少。对小程序的普遍看法是开发体验较差。小程序开发仍使用前端生态,但是阉割版的,平台出于各种原因对开发者能做的事情进行限制。各平台的技术能力和文档质量参差不齐,导致开发者需要在各种平台踩过各种奇怪的坑后,才能被认为是"有经验"的。
在 Web3 领域,出于安全等因素考虑,Snaps 可能面临类似情况。它在隔离的安全上下文中运行,使用"安全 ECMAScript",实际上是对 JavaScript API 做了一些限制,例如无法访问 DOM、Node.js、浏览器插件 API 等。
由于安全考虑,基本的 Snaps 功能有限。大部分功能需要先获得相应权限,所以 Snaps 在安装时需要向用户申请相关权限。可用权限包括生命周期、交易、签名、CRON 等。
相比繁荣的 Web3 生态,目前可用的 Snaps 数量较少,MetaMask 对它们进行了分类。
Snaps 类型
根据 MetaMask 官网的分类,大致可分为 4 种类型:
账户管理
这类 Snaps 主要通过 MPC 技术提高私钥的安全性。
传统的私钥保存方式可能存在以下问题:
MPC 技术可以自动将私钥拆分为多份,分别存储在不同位置,只在需要进行交易签名时重新组合,同时不会生成完整的私钥,最大限度保护私钥安全。
目前只有 3 个账户管理类的 Snaps:Capsule、Silent Shard 和 Safeheron。
这类 Snaps 的吸引力尚不明确,从安装量来看并不高。
互操作性
这类 Snaps 主要提供对非 EVM 网络的兼容,包括 Solana、Cosmos、Near、Sui 等。目前这类 Snaps 数量最多,占整个生态的一半以上。
通知和聊天
这类 Snaps 在当前可选的聊天应用众多的情况下,愿意通过链来发送消息的用户可能较少。
安全
这类 Snaps 的需求较大,特别是在 MetaMask 自身对钓鱼交易的警告不够充分的情况下。交易作为加密货币和区块链领域最常见的操作,具有高风险和高敏感特点。通过 Snaps 提供的交易洞察相关功能,开发者可以向用户展示更丰富的交易信息,提供交易分析和见解,最大限度避免用户资产损失。
从 Snaps 官网数据来看,安全型 Snaps 是除多链支持外需求最大的,目前占总数的两成。
MetaMask Snaps 提供了「endowment:transaction-insight」和「endowment:signature-insight」权限来满足相关需求,Snap 申请相关权限后,可以在用户发起交易或签名时读取原始交易或签名的有效负载。Snap 可以对其进行分析,然后向用户显示更多更丰富的安全性说明。
展望
MetaMask 希望通过 Snaps 将自己的领域扩张到其他链平台,但最终能走多远还难以预测。参考 Web2 领域的小程序经验,简陋的小程序服务通常无法与 App 相比,新功能跟进也常常落后,许多小程序会将用户引导至自己的 App。
随着小程序的爆发式增长,更多 App 也开始推出自己的小程序平台,各家努力加固自己的护城河,整个 Web 世界变得越来越"中心化"。
Web3 领域的资本也可能会采取类似策略。如果 Snaps 发展良好,可能会有更多钱包跟随。这种情况下,Web3 开发者可能需要针对各个钱包的"Snaps"开发相应版本,这可能会给他们带来不小的挑战。
未来可能会出现各种"Snaps-like"平台,平台差异巨大,对各平台的兼容成为开发者的日常工作。最终可能会出现 Snaps Standard,同时会有各种 "SIP" 供人们参与讨论,社区呈现繁荣景象。
对于 MetaMask 目前的大部分用户来说,Snaps 还不是一个特别必要的功能。MetaMask 接下来可能需要在如何更有效推广方面做更多工作。