MetaMask 的 snap 平台可能會迎來一波類似於小程序的創業潮
作者:黃世亮,閃電HSL
MetaMask 作為幣圈用戶量第一大的錢包,一直以來是只支持 EVM 兼容鏈。
就在上週,metamask終於將beta版本很久了的snap平台正式推出了。
訪問https://snaps.metamask.io可以看到具體的產品。
簡單描述,snaps就是metamask將錢包業務延伸到了非EVM兼容鏈,更準確的說,只要是私鑰是符合HD錢包(分層確定性錢包)標準的鏈,那都可以使用snaps平台開發管理該鏈的錢包。
HD錢包,即分層確定性錢包,現在幾乎是所有區塊鏈的私鑰最底層的標準。理解HD錢包要理解透兩個概念。
一是助記詞。
助記詞就是我們備份錢包時抄下的那12、18或24個單詞。助記詞本質上是一個隨機數,隨機從一個2048個單詞庫中選擇出12、18或24個單詞。
這個隨機選擇單詞的過程是由一個很複雜的算法完成,這個算法形成的助記詞的熵是非常強的,想通過爆力碰撞出已有的助記詞的概率是無限趨低於零的。即我們通過這種算法得出的助記詞就是全宇宙唯一的,不會和其他人產生的碰成一樣。
這個助記詞也常被稱為種子(seed)。
助記詞不是用來直接管理幣,即用來構建交易並簽名的私鑰。真正能用於簽名交易的那是私鑰,私鑰是由seed派生出來的。
二是派生路徑。
我們有了助記詞後,在metamask裡就可以生成n多個地址。每一個地址都是有種子通過某個算法計算出來的。
這個算法和計算過程,可以簡單的理解成為下面這個函數
f(seed, derivationpath) -> (privatekey, public_key)
Derivation_path就是派生路徑的意思。
通過將助記詞seed和派生路徑當成參數,代入算法,就可以計算出具體的私鑰和地址。
派生路徑本質上是一個字符串,長這樣'm/44'/0'/0'/0'。
其中m代表是的種子seed
44'指的是BIP44標準,通常還有別的標準,但BIP44是最常用。
第二個數字代表了不同的加密貨幣,即不同的鏈,0就是比特幣的派生路徑,以太坊是60,萊特幣是2
最後那個零所占的數字位,代表的是地址索引,如果兩個派生路徑前面的都相同,最後一個分別是0和1,就對應在錢包(如metamask)上你生成的第一個地址和第二個地址。
另外還有幾個概念對錢包支持幣也很重要,地址格式、交易數據結構。
MetaMask 一直只支持EVM兼容鏈的幣,所有EVM兼容鏈都可以採用相同的密鑰派生路徑,並且這些EVM兼容鏈的地址格式和交易數據結構都和以太坊完全一樣,所以非常方便使用metamask來統一管理。
但非EVM兼容鏈,如BTC、sui這些鏈,它們採用的助記詞標準是和以太坊一樣的,但派生路徑不同,地址格式也不一樣,交易數據結構也不一樣。
這樣使用MetaMask就很難管理。
snap就是為了解決這些不同,而設計出來的平台。
snap允許第三方開發者來解決派生路徑不同、地址格式不同、交易數據結構不同,從而導致metamask無法管理這些幣的問題。
snap管理幣的方式是,metamask生成並保管助記詞,第三方開發者開發一個前端頁面包含了派生路徑,並調用metamask來生成該幣的地址,並將地址格式展示在這個前端頁面上。
交易數據結構也由前端頁面來構造。
最終的交易簽名,由前端頁面調用metamask管理的助記詞派生出來的私鑰來完成簽名。
使用派生路徑生成的私鑰和地址,是無法逆向去計算出助記詞的,所以snap平台上的第三方開發出來的前端頁面錢包是無法獲得用記在metamask存的助記詞的。
為什麼我感覺snaps會迎來一小波創業潮呢?
除了 MetaMask 提供了幣圈最大的用戶流量外,以及用戶信任基礎外。更重要的是,snap平台還讓開發者擁有了一個錢包的前端頁面,可以用來做很多業務。
並且,因為有snaps.metamask.io這種機制,開發者可以自證無法挪用用戶的資產,所有資產的使用都需要用戶使用metamask來簽名才能完成。
很多幣圈的業務邏輯就可以遷移到snap上來。