Web3 小程序?MetaMask Snaps 解讀
Web3 小程序?MetaMask Snaps 解讀
MetaMask Snaps
MetaMask Snaps(https://metamask.io/snaps/) 是一個有很長遠理想的項目。不過,拋去它所披着的“理想”的外衣,筆者更愿意稱它爲 Web3 世界的小程序。或者給它取一個花哨點的名字:dApplet。
作爲开發者,特別是中國國內的开發者,應該對它的概念並不陌生。我們近些年常會聽到“生態打造”、“超級App”之類的互聯網黑話,商業巨頭們總是想要將互聯網打造的越來越封閉,以便讓自己從服務提供者的角色轉變爲標准制定者的角色。
現在,這股風潮似乎也开始慢慢向 Web3 領域飄蕩了。
到今天(2024 年 6 月),雖然 Snaps 已經出現了快要一年時間了,從概念提出更是至少 4 年了,但是普通用戶對它的了解卻幾乎沒有。筆者身邊有一些非常關注加密貨幣市場的朋友,每天打开 MetaMask 就像喫飯睡覺一般自然,卻仍然連 MetaMask Snaps 是什么都不知道。不過,在筆者向他們解釋“就像小程序那樣”之後,臉上也總是會立馬出現一抹難以言喻的微笑(他們都是开發者,大部分是前端开發者)。
這場景莫名讓人聯想到微信小程序剛出來時的境況,由於功能入口不明顯,使用量很是低微。後來將入口改到在首頁下拉出現小程序列表後,使用量才开始大幅增長。MetaMask 既然想打造生態,那么如何吸引用戶進入生態大門,恐怕會成爲一個亟待解決的重要問題。
小程序從出現开始,在互聯網行業就爭議不斷。前端工程師普遍對它的出現嗤之以鼻,認爲它就只是互聯網巨頭爲了壟斷流量、封鎖生態的商業工具,對於技術發展並沒有太多貢獻。Web3 的 Snaps 不知又能對社區有多少貢獻呢?瀏覽 MetaMask 提供的文檔,愈來愈覺得未來的 Snap 开發者將會飽嘗帶着鐐銬跳舞的艱辛。
從 MetaMask 开啓 Snaps 的公共測試版到目前已有將近一年的時間,然而其官網列出的可用的 Snaps 數量其實還不是很多,截止 2024 年 6 月,滿打滿算也只有 68 個。要知道,在正式公測之前,早在 2020 年左右,官方就已經提出了 Snaps 的概念,Web3 公司與开發人員其實已經有相當長一段時間來對它進行充分的了解。
一些 Snaps
筆者還沒有見過專職开發 Snaps 的开發人員,不過身邊 Web2 中的小程序开發者還是有不少的,對小程序的普遍看法就是开發體驗比較差。小程序开發使用的依然是前端生態,但卻是閹割版的,廠商因爲各種各樣的原因對开發者實際能做的事情進行限制。並且各廠商的技術能力、提供的文檔質量參差不齊,導致开發者要在各種平台踩過各種奇奇怪怪的坑之後,才能被人稱贊一句“有經驗”。
再回到 Web3,出於安全等因素考慮,Snaps 極有可能面臨着相似的狀況,它不得不在一個隔離的安全上下文中運行,所使用的是“安全 ECMAScript”,實際上是對 JavaScript API 做了一些限制,例如無法訪問 DOM、Node.js、瀏覽器插件 API 等。
由於可理解的安全考量,一個最基本的 Snaps 其實做不了太多事情。它的大部分功能都需要先具有相應的權限,所以 Snaps 在安裝時就需要向用戶申請相關的權限。可用的權限包括生命周期、交易、籤名、CRON 等: https://docs.metamask.io/snaps/reference/permissions/#eth_accounts
所以,相比於繁榮的 Web3 生態,目前可用的 Snaps 少的可憐,MetaMask 將它們做了一些分類。
Snaps 類型
按照 MetaMask 官網的分類,大致能分爲 4 種類型:
账戶管理(Account Management)
這類 Snaps 主要通過 MPC(Multi-Party Computation,多方計算, https://blog.usecapsule.com/what-is-mpc/)技術,提高私鑰的安全性。
想想我們平時是怎樣保護私鑰的呢?大概很多人會將助記詞保存在某個地方,筆者猜普遍是自己的電腦或者手機上,哈哈。當然,如果你非常富有,錢包中的資金非常多,那么你確實可能會使用保密性更強的方式,例如使用硬件錢包。但是大多數人,說真的,僅僅是將他們的助記詞粘貼在某個自己很方便就能找到的地方,以避免自己完全忘記。
這種保存方式可能會造成一些問題:
如果你忘記把助記詞放在哪裏了,那么你大概率是要和自己錢包中的資產說再見了。
如果你保存助記詞的設備遭遇木馬病毒,則很難防止黑客盜竊你的助記詞。有些用戶可能爲了提高安全性,將自己的助記詞拆分,然後分別存放。這也許能增加一些安全性,卻無疑也增加了自己的管理難度與遺忘的風險。
而 MPC 技術,則可以自動將你的私鑰拆分爲多份,分別放到不同的地方存儲,只在當需要使用私鑰進行交易籤名時,再將它們拼接起來生成完整的私鑰,同時這個過程中並不會生成完整的私鑰,最大限度保護私鑰免遭泄漏。
到目前(2024 年 6 月)爲止,還只有 3 個账戶管理類的 Snaps,分別是 Capsule, Silent Shard 和 Safeheron。
Capsule 使用了設備的 PassKey、恢復密碼和 2FA 共同維護同一份密鑰,同時如果丟失了某一個,則可以通過另外兩個來恢復。
Silent Shard 和 Safeheron 是通過使用多台設備安裝它們的 App 的方式來實現這一點。
很難說這類 Snaps 能吸引多少 Web3 用戶,從 Snaps 網站上顯示的數據來看,這類型的 Snaps 確實很少,安裝量也並不高。
它們使用起來並不復雜,這裏不再贅述。安裝完成後,你的 MetaMask 錢包中多出一個地址:
互操作性(Interoperability)
這類 Snaps 主要提供了對非 EVM 網絡的兼容,我們能看到許多熟悉的鏈,包括 Solana、Cosmos、Near、Sui 等等。目前這類是最多的,它們佔據了整個 Snaps 生態的一半以上。
豐富的多鏈 Snaps
通知和聊天(Communication)
筆者個人更喜歡這類型的 Snaps,不過在當下,可選的聊天應用那么多,愿意通過鏈來發送消息的用戶顯然還是少數。那么很遺憾也只能繼續“战未來”了。
安全(Security)
這類的需求想來還是比較大的,特別是,MetaMask 自身在用戶遇到釣魚交易時的警告做的其實並不夠。交易作爲加密貨幣和區塊鏈領域最常見的操作,本身具有高風險和高敏感的特點,通過 Snaps 提供的交易洞察相關功能,开發者可以對用戶展示更豐富的交易信息,提供對交易的分析和見解,最大限度避免用戶的資產損失。
筆者身邊就有朋友曾遇到過被釣魚網站轉走账戶余額,而 MetaMask 從連接錢包到轉账成功,全程毫無警告的情況,無奈之下只能換用其他錢包。而且筆者當時對 Snaps 也並不了解,只是給他推薦了 ZAN 的 KYT(https://zan.top/home/know-your-transaction?chInfo=ch_WZ) 服務來保護他的交易。希望這類安全型 Snaps 能夠彌補 MetaMask 自身的不足。實際上,從 Snaps 官網顯示的數據來看,安全型 Snaps 也確實是除了多鏈支持外需求最大的,目前佔據了總數的兩成。
MetaMask Snaps 提供了「 endowment:transaction-insight 」和「 endowment:signature-insight 」權限來滿足相關需求,Snap 申請相關權限後,可以在用戶發起交易或籤名時,可以讀取到原始交易或籤名的有效負載。Snap 可以對其進行分析,然後向用戶顯示更多更豐富的安全性說明。
想法
MetaMask 想要通過 Snaps 將自己的領域擴張到其他鏈平台,但是最終究竟能走到多遠,恐怕很難如其所愿。拿 Web2 領域的小程序來說,雖然很多 App 提供了小程序版本,但是往往,簡陋的小程序所提供的服務遠無法與 App 相比,對新功能的跟進也經常落後,甚至許多小程序會將用戶直接往自己的 App 引導。而到小程序爆發式增長後,更多 App 也都想來分一杯羹,又紛紛推出了自己的小程序平台,各家努力加固着自己的護城河,整個 Web 世界越來越“中心化”。
Web3 領域的資本也並不會比 Web2 的更高明,如果後面 Snaps 發展良好,那勢必會有更多錢包跟隨。如果真的到了這種地步,Web3 領域的开發者需要針對各個錢包的“Snaps”开發相應的版本,屆時恐怕會讓他們焦頭爛額一段時間。只是,倘若各廠商都來打造自己的“Snaps”生態,又幾乎等於全部沒有自己獨有的生態。咦,這似乎倒是也暗合它們“去中心化”的標籤了。
我們也許能稍微預測一下,未來可能會有各種“Snaps-like”出現,平台差異巨大,此時對各平台的兼容成了开發者們的日常工作,最終到了不可忍受的地步。於是 Snaps Standard 在衆多开發者的期待中誕生了,同時會有各種 “SIP” 供人們參與討論,社區一片繁榮景象……
抱歉筆者個人似乎有些對 MetaMask Snaps 太沒有信心了點。無論怎么說,它至少是由一群有激情的开發者所構建的、想要解決實際問題的產品,而不是由一群金融專家發起的騙局。
只是,對於 MetaMask 眼下的大部分用戶來說,Snaps 確實還不算是一個特別必須的功能,MetaMask 接下來恐怕需要在如何更有效的推廣方面做更多工作。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:Web3 小程序?MetaMask Snaps 解讀
地址:https://www.fastusing.com/article/33673.html