Bankless Talks to MetaMask Co-Founder: Why is MetaMask Snap So Important?
Source: Bankless
Compiled & Organized by: Shenchao TechFlow
Recently, MetaMask launched MetaMask Snaps at Permissionless II. With this feature, users can achieve interoperability with Bitcoin and non-EVM blockchains.
As industry-leading wallets begin to expand their ecosystems, integrating more tokens and functionalities on-chain, could this be the "Chrome extension" moment for cryptocurrency? Is this the way to attract the next billion users to cryptocurrency?
In this episode, MetaMask co-founder Dan provides an in-depth introduction to the new Snap feature and discusses its future development and potential impact.
Host: Ryan, Bankless
Speaker: Dan Finlay, MetaMask Founder
Podcast Source: Bankless
Original Title: "Why MetaMask Snaps is a Big Deal with Co-Founder, Dan Finlay"
Episode: Link
Release Date: September 16
How MetaMask Snaps Works
Dan explained that MetaMask Snaps are like plugins designed for the MetaMask wallet, with one important feature being enhanced transaction security. Through Snaps, users can install transaction security providers that can simulate transactions, predict outcomes, and help users avoid potential risks such as phishing attacks.
Dan elaborated on the functionalities of Snaps, emphasizing that they provide MetaMask with the ability to extend its API. Currently, there are three main ways to use Snaps to enhance the wallet:
1) Transaction Security: Snaps can help users ensure the security of transactions and predict outcomes to avoid risks.
2) Adding Integrations: Snaps allow external developers to build functional plugins for MetaMask and add support for its protocols. When users log into a website, that site can interact with a user's specific Snap, not just the API provided by MetaMask. For example, Snaps can provide users with signing and confirmation display functionalities.
3) Notifications: Snaps also provide notification functionalities. For instance, there is a Snap called Push that allows Dapps to notify users of relevant information after obtaining their permission.
The host mentioned that although this is the Beta version of Snaps, there are already over 30 different Snaps available for people to use and download.
Dan detailed how to use Snaps. When Dapps want to interact with a specific blockchain or protocol, they can request users to install the corresponding Snap, thus providing a richer and more seamless experience.
Dan specifically mentioned the transaction insight feature, which allows users to preview and understand the details of the transaction they are about to confirm. This enables users to gain deeper insights into the transaction content, allowing them to better identify potential malicious transactions and avoid losses.
In terms of enhancing wallet security, Dan mentioned the "spider web model." In this model, rather than relying on a single security strategy, multiple strategies and tools are used to enhance security, providing users with more comprehensive and robust protection through layered defenses and strategies. Even if one strategy fails or is bypassed, other strategies can still protect the user.
Features and Purpose of MetaMask Snaps
Dan highlighted the features and purposes currently available to MetaMask users, specifically including compatible chains and ways to achieve compatibility.
Regarding compatible chains, MetaMask has made significant expansions and progress. Dan emphasized that to enable more people to use cryptocurrency safely and easily, they provide a range of security tools aimed at lowering the entry barrier for new users into the cryptocurrency space. With the latest Snaps release, MetaMask has not only enhanced its functionalities but also expanded its support for multiple chains, going beyond just Ethereum.
He further explained that when MetaMask considers adding new features or interacting with new blockchain networks, they always prioritize the security of users' funds and data. Security is a core element that the MetaMask team considers when developing and releasing new features, and their goal is to ensure that users always feel safe and confident while using MetaMask.
Regarding ways to achieve compatibility, Dan mentioned that developers do not need to create a Snap for every application. The purpose of Snaps is to extend the wallet's API functionalities, making it richer. Developers can view the existing Snap menu, which is a growing set of functionalities that allows developers to interact with users in more enriched ways. The APIs are designed to be very simple, and developers who have previously written Dapps using Ethereum providers should find them very familiar.
For developers who want a component of their application to accompany users and be used on other websites, especially those looking to make transactions easier to read, creating a Snap is a great option.
When asked if Snaps are part of the MetaMask team's strategy to expand their development capabilities, Dan confirmed that this is indeed their strategy. This approach allows them to develop and launch the functionalities users need more quickly. Dan mentioned that to fully leverage the diversity of blockchains, wallets need to be flexible. Their long-term goal is to make Snaps completely open and permissionless.
Dan shared some visions for future Snaps, such as guiding users through links that contain recommended chains, gas subsidies, and permissions. He also mentioned that future Snaps will be able to share permissions with each other and even outside the wallet. Dan's vision is that Snaps will make MetaMask more discreet while still allowing users to create scalable and secure contracts.
The Development Journey of Snaps & Security
Dan introduced the development process of MetaMask Snaps. He mentioned that they had the idea of scalability for wallets about five years ago. In the first year, the idea sounded crazy, but by the end of the year, they had built a prototype and started to believe that the feature was feasible. Their team initially tried to develop Snaps while working on other tasks but later decided to go all in. This was the first time they set up a dedicated team for a specific feature.
Dan emphasized the importance of security multiple times. He made it clear that while MetaMask wants to introduce new features and scalability, they will never compromise user security, which is their top priority during the development process.
Dan discussed the issues of interacting safely with strangers, computers, and new software. He explained that to address these issues, they actually built an operating system kernel and integrated it into MetaMask, which allows them to run third-party code but with strict limitations during execution.
MetaMask uses a two-layer isolation mechanism to ensure the safe execution of third-party code. First, they use an iframe, and then they use an isolation area based on JavaScript language-level features. These two layers of isolation ensure that third-party code can only run within strictly defined boundaries and cannot access or modify MetaMask's core functionalities or users' sensitive data.
In this way, even if a user installs a malicious Snap or third-party extension, it cannot operate beyond its authorized scope, thus protecting user security.
Although MetaMask has implemented these security measures, Dan stated that their goal is to make the system more permissionless while ensuring security. They hope to create a distributed operating system kernel specifically for handling cryptographic decentralized protocols while ensuring user safety.
When the host asked why the development of Snaps took so long, Dan explained that they faced not just the challenge of developing a new feature but also solving a real technical challenge.
Dan emphasized that the core issue they are dealing with is actually a complex big problem. To solve this problem, they need to conduct in-depth research and extensive development work. This involves not only writing code but also deep research into cryptography, security, and decentralized technologies.
Dan compared the design of MetaMask to the firmware level of hardware wallets. He mentioned that similar to how the Ledger team describes isolating private keys, MetaMask employs a similar approach to ensure the security of user private keys.
Senchao Note: "Firmware level" refers to the software layer in hardware wallets used to store and execute basic operations, typically responsible for how to securely store, manage, and use private keys.
The host asked if installing a Snap could pose security risks. Dan explained that to minimize risks, they have adopted two main security strategies. First, all Snaps undergo audits. Second, each Snap has a set of permission lists that clearly define the functionalities the Snap can access.
Dan mentioned that they hope to gradually decentralize the auditing process until it becomes a trust-based network or DAO. For those Snaps that require signing functionalities, they can only access the keys relevant to them, not all of the user's keys.
Many Snaps require network permissions because they cannot run locally. However, if a Snap only needs access to transaction data and does not require network permissions, then the user's data is actually private, as it cannot be sent to external servers.
The host asked what risks would arise if a Snap that does not require key signing, such as a Snap that simulates transactions, is installed. Dan explained that this type of Snap needs access to transaction data for simulation but will not access the user's private keys.
Future Plans for MetaMask
The host mentioned the trend of account abstraction and smart contract wallets and asked if MetaMask plans to enter this field.
Dan explained that the MetaMask team's long-standing position is to plan a plugin system for accounts. MetaMask is not developing these new types of smart contract accounts itself; instead, it will provide a platform that allows other developers or teams to create these account plugins for MetaMask. This approach can encourage innovation and allow various smart contract account solutions to be implemented on MetaMask.
While account abstraction and smart contract wallets are an interesting and promising area, the core focus of the MetaMask team at present is to create a secure and scalable core. This core is a critical component of MetaMask, allowing it to run third-party code like Snaps while ensuring user safety.
Due to this core focus, Dan believes that MetaMask may not create the best contract accounts itself. Instead, they prefer to provide a platform for the community and other developers to create these solutions.