2

MetaMask 簽名出現紅色警告?

 2 years ago
source link: https://www.frank.hk/blog/metamask-sign/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

MetaMask 簽名出現紅色警告?

這次我們來說說關於 MetaMask 的簽名問題。

所謂簽名,就是用你保存在 MetaMask 中的 Private Key 去對某樣東西做簽署,從而認證「你就是你」,這和我們日常生活中簽署文件類似。

MetaMask 在不消耗 Gas Fee 的情況下(即簽名資料不上鏈),也是可以進行簽名認證的,這種簽名多用於網站登入,或者 Gasless MetaTransaction 等。例如 OpenSea 登入,會要求你對一段信息進行簽名認證,簽名後會得到一個 Hash,伺服器則可以根據這個 Hash 和你的 Public Key 即錢包地址去驗證這段 hash 是否由你簽署,從而完成「你就是你」的身分驗證。

目前 MataMask 提供的簽名方法大致有三種,不同的方式有不同的應用場景。

sign

Personal Sign

Personal Sign 可以用於簽署一段 UTF-8 編碼的文字,因此可以清楚顯示被簽名的內容,這種方式常見於網站登入。

eth_sign

ethsign 是早期的簽名方法,這個方法必須傳入一個 32 byte 的 message hash 以供簽名,message hash 可以是任何內容的 hash,因此,僅憑 message hash,簽名者不會知道自己正在簽署什麼內容,可能是一個交易資料,又或者其它任何內容,因此有潛在的被釣魚的風險,現在 MetaMask 已經開始對這類的簽名請求彈出紅色警告。

EIP712 Sign

EIP712 簽名是一種更安全的簽名標準,是根據 EIP712 標準為 signature 加入了如domain,contract address 等資訊,從而提高簽名的安全性。

EIP712 簽名標準規定了簽名數據的結構,也加入了對數據的作用域限制,如 domain,verify contract address 等。這個標準的好處是,簽名者可以清楚看到自己在簽署的內容,很大程度上降低被釣魚的風險。

ERC712 簽名經常會被用在執行 metatransaction 等合約執行中,例如 OpenSea NFT 上架,降低價格等過程都會出現 EIP712 簽名請求。

我為三種簽名都做了一個示例,有興趣的讀者可以去看看原始碼,親自嘗試一下。

screen-20220430090415%402x.png

MetaMask 簽名示例

技術交流,其他諮詢等,請按此聯絡

訂閱我的網站,接收更新以及其他有趣的消息 😙 。 訂閱不收費,走過路過別錯過。
Subscribe to my website, I will email you if any new posts or interesting stuff available.

如果你喜歡我的內容,請考慮用一杯咖啡支持我一下吧,非常感謝 🥰 。
If you like my contents, please support me via BuyMeCoffee, Thanks a lot.

其它相關文章

聊一聊 Zombie Club NFT 的技術八卦
2022-03-20
Zombie Club NFT 最近可謂紅的不得了。這個有潮流明星余文樂站台的項目一開始就引人關注。寫這篇文章的初衷,是因為昨天晚上聽了官方團隊的一個技術 AMA,聽到了來自官方對技術上的一些分析和解釋。兩個多小時的 AMA,在最後的聽眾問答環節被推上高潮, 過程有聽眾對於智能合約的處理發出了質疑,問答的重點是關於公售時期幾百筆 out of gas 的原因追問。官方也花了很長時間解釋。但坦白講對於官方的回答有些地方我也不是十分認同。 星期日沒什麼事那這裡我們就來聊一聊這個 out of gas 是怎麼個回事。

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK