Bankless 對話 MetaMask 聯創:為什麼 MetaMask Snap 如此重要?
來源:Bankless
編譯 \& 整理:深潮 TechFlow
最近MetaMask 在 Permissionless II 上發布了 MetaMask Snaps。用戶使用該功能,可以實現與比特幣和非EVM區塊鏈的互操作等功能。
當行業領先的錢包開始擴展生態,集成更多鏈上的代幣和功能,這會是加密貨幣的"Chrome 擴展"時刻嗎?是吸引加密貨幣下一個十億用戶的方式嗎?
在本期節目中,MetaMask的聯創 Dan 對新功能Snap進行了深入的介紹,並對其未來的發展和可能的影響進行了展望。
主持人:Ryan, Bankless
主講人:Dan Finlay,MetaMask 創始人
播客源 :Bankless
原標題:《Why MetaMask Snaps is a Big Deal with Co-Founder, Dan FinIay》
節目 :鏈接
播出日期:9月16日
MetaMask Snaps的運行原理
Dan 介紹說 MetaMask Snaps 就像是為 MetaMask 錢包設計的插件,其中一個重要功能就是增強交易的安全性。通過Snaps,用戶可以安裝交易安全提供商,這些提供商可以模擬交易,預測交易的結果,從而幫助用戶避免可能的風險,如網絡釣魚攻擊。
Dan 解釋了Snaps的功能,強調它們為MetaMask提供了擴展API的能力。目前,有三種主要方式可以使用Snaps擴展錢包:
1) 交易安全:Snaps 可以幫助用戶確保交易的安全性,預測交易的結果,從而避免風險。
2) 添加集成:Snaps 允許外部開發者為 MetaMask 構建功能插件並為其協議增加支持。當用戶登錄一個網站時,該網站可以與用戶的某個Snap互動,而不僅僅是與MetaMask提供的API互動。例如,Snaps可以為用戶提供簽名和顯示確認的功能。
3) 通知:Snaps還提供了通知功能。例如,有一個名為Push的Snap,允許Dapps在獲得用戶的許可後通知用戶相關的信息。
主持人提到,儘管這是Snaps的Beta版本,但已經有超過30種不同的Snaps供人們使用和下載。
Dan詳細解釋了如何使用Snaps。當Dapps想要與特定的區塊鏈或協議進行互動時,它們可以要求用戶安裝相應的Snap,從而獲得更加豐富和無縫的體驗。
Dan 特別提到了交易洞察功能,該功能允許用戶在確認交易之前預覽和理解他們即將進行的交易的細節。這讓用戶能夠深入了解交易的內容,用戶可以更好地識別這些潛在的惡意交易,並避免受到損失。
在增加錢包安全性方面,Dan 提到了"蜘蛛網模型"。在這個模型中,不是只依賴於一個單一的安全策略,而是使用多個策略和工具來增強安全性,通過多層的保護和策略,為用戶提供更加全面和強大的安全防護。即使某一策略失敗或被繞過,其他策略仍然可以為用戶提供保護。
MetaMask Snaps 的功能與目的
Dan重點介紹了MetaMask目前用戶可用的功能和目的,具體包括:可以兼容的鏈、實現兼容的方式。
在兼容鏈的方面,MetaMask已經做出了顯著的擴展和進步。Dan強調,為了使更多的人能夠安全、輕鬆地使用加密貨幣,他們提供了一系列的安全工具,旨在降低新用戶進入加密貨幣領域的門檻。通過最新的Snaps發布,MetaMask不僅增強了其功能,還擴展了對多鏈的支持,從而超越了僅支持Ethereum的範圍。
他進一步解釋,當MetaMask考慮添加新功能或與新的區塊鏈網絡互動時,他們始終將用戶的資金和數據的安全性放在首位。安全性是MetaMask團隊在開發和發布新功能時始終考慮的核心要素,他們的目標是確保用戶在使用MetaMask時始終感到安全和自信。
關於實現兼容的方式,Dan提到,開發者不必為每個應用都製作一個Snap。Snaps的目的是擴展錢包的API功能,使其更加豐富。開發者可以查看現有的Snap菜單,這是一個不斷增長的功能集,允許開發者與用戶進行更豐富的互動。APIs設計得非常簡單,對於之前使用過Ethereum提供者編寫Dapp的開發者來說應該非常熟悉。
對於那些希望其應用的某個組件能夠伴隨用戶並在其他網站上使用的開發者,尤其是希望使交易更易於閱讀的開發者,製作Snap是一個很好的選擇。
當被問及Snaps是否是MetaMask團隊擴展其開發能力的策略時,Dan確認這是他們的策略。這種方法使他們能夠更迅速地開發和推出用戶所需的功能。Dan提到,為了充分利用區塊鏈的多樣性,錢包需要具備靈活性。他們的長期目標是使Snaps完全開放,無需許可。
Dan分享了未來Snaps的一些設想,例如通過鏈接引導用戶,該鏈接包含推薦的鏈、Gas補貼和權限等信息。他還提到,未來的Snaps將能夠在彼此之間,甚至在錢包之外共享權限。Dan的願景是,Snaps將使MetaMask更加隱蔽,同時仍然允許用戶創建可擴展且安全的合約。
Snaps 開發之旅 \& 安全性
Dan 介紹了MetaMask Snaps的開發過程。Dan提到,他們大約五年前就有了錢包應該具有可擴展性的想法。在第一年,這個想法聽起來很瘋狂,但到年底,他們已經建立了一個原型,並開始相信這個功能是可行的。他們的團隊最初是在其他工作的同時嘗試開發Snaps的,但後來決定全力以赴。這是他們第一次為一個特定的功能設立了一個專門的團隊。
Dan多次強調了安全性的重要性。他明確表示,儘管MetaMask希望引入新功能和擴展性,但他們絕對不會犧牲用戶的安全,這是他們在開發過程中的首要考慮因素。
Dan提到了如何安全地與陌生人、計算機和新軟件互動的問題。他解釋說,為了解決這些問題,他們實際上構建了一個操作系統內核並將其集成到MetaMask中,這個內核允許他們運行第三方代碼,但在運行時對其進行嚴格的限制。
MetaMask 使用了兩層的隔離機制來確保第三方代碼的安全運行。首先,他們使用了一個iframe,然後使用了一個基於JavaScript語言級別特性的隔離區域。這兩層隔離確保了第三方代碼只能在嚴格定義的邊界內運行,不能訪問或修改MetaMask的核心功能或用戶的敏感數據。
通過這種方式,即使用戶安裝了一個惡意的Snap或第三方擴展,它也不能超出其被授權的範圍進行操作,從而保護了用戶的安全。
儘管MetaMask已經實現了這些安全措施,但Dan表示他們的目標是使系統更加無需許可,同時確保安全性。他們希望能夠創建一個分佈式的操作系統內核,專門用於處理基於密碼學的去中心化協議,同時確保用戶的安全。
當主持人詢問為什麼Snaps的開發需要這麼長時間時,Dan解釋說,他們面臨的不僅僅是開發一個新功能,而是解決一個真正的技術挑戰。
Dan強調,他們正在處理的核心問題實際上是一個複雜的大問題。為了解決這個問題,他們需要進行深入的研究和大量的開發工作。這不僅僅是編寫代碼,還涉及到密碼學、安全性和去中心化技術的深入研究。
Dan比較了MetaMask的設計與硬件錢包的固件層次。他提到,與Ledger團隊描述如何隔離私鑰的方式相似,MetaMask也採用了類似的方法來確保用戶私鑰的安全性。
深潮注 :"固件層次"是指硬件錢包中用於存儲和執行基本操作的軟件層,通常負責如何安全地存儲、管理和使用私鑰。
主持人詢問安裝Snap是否會帶來安全風險。Dan解釋說,為了最小化風險,他們採用了兩個主要的安全策略。首先,所有的Snaps都經過了審計。其次,每個Snap都有一組權限列表,這些權限明確了Snap可以訪問的功能。
Dan提到,他們希望逐步去中心化審計過程,直到它變成一個基於信任的網絡或DAO。對於那些需要簽名功能的Snaps,它們只能訪問與其相關的密鑰,而不是用戶的所有密鑰。
許多Snaps需要網絡權限,因為它們不能在本地運行。但如果一個Snap只需要訪問交易數據並不需要網絡權限,那麼用戶的數據實際上是私有的,因為它不能發送到外部伺服器。
主持人詢問,如果安裝了一個不需要密鑰簽名的Snap,例如一個模擬交易的Snap,那麼這會帶來什麼風險?Dan解釋,這種Snap需要訪問交易數據來進行模擬,但它不會訪問用戶的私鑰。
MetaMask 的未來計劃
主持人提到了帳戶抽象和智能合約錢包的趨勢,並詢問MetaMask是否有計劃進入這個領域。
Dan 解釋說,MetaMask團隊長期以來的立場是,計劃為帳戶創建一個插件系統。MetaMask不是自己開發這些新型的智能合約帳戶,他們會提供一個平台,允許其他開發者或團隊為MetaMask創建這些帳戶插件。這種方法可以鼓勵創新,並允許多種不同的智能合約帳戶解決方案在MetaMask上得到實現。
儘管帳戶抽象和智能合約錢包是一個有趣和有潛力的領域,但MetaMask團隊目前的核心焦點是創建一個安全的可擴展內核。這個內核是MetaMask的核心組件,允許它運行第三方代碼,如Snaps,同時確保用戶的安全。
由於這個核心焦點,Dan認為MetaMask可能不會自己製作最佳的合約帳戶。相反,他們更傾向於提供一個平台,讓社區和其他開發者來創造這些解決方案。