钱包安全指南:连接 MetaMask 钱包会导致资产被盗吗?

May 03, 2022

连接钱包是否安全主要取决于你在 MetaMask 上批准了哪些操作,同意连接钱包后 MetaMask 以及其他正规的钱包并不会给网站分享你的密钥,所有敏感操作 MetaMask 都会弹框向你询问是否执行。作为用户我们需要正确识别 MetaMask 上不同的操作类型它潜在的风险。

本文用 MetaMask 举例,但这些道理在其他钱包软件上也是相通和适用的。

相对安全可预期的操作

以下的操作类型相对是安全可预期的,作为用户我们能明确知道自己做了什么事情。所有操作细节 MetaMask 都明确告诉你了,没啥猫腻。

连接钱包 ✅

DAPP 链接钱包的确认弹框

  • 连接钱包是所有 web3 应用的通用做法,正常情况下网站连接钱包后只能获取你的钱包地址和所选网络,也就是说它只能读取一些基本信息
  • 这里我们需要确保 MetaMask 显示的的只有上图中的这种查看权限。如果有其他批准或者授权相关的权限你就要格外留意了

转账操作 ✅

MetaMask 转账 ETH 确认弹框
coinbase commerce 转账确认

  • 注意上面两张图里的 "正在发送ETH" 这个标签,这种是正常的 ETH 转账确认,一般出现在用加密货币付款的网站上,用 ETH 这种原生代币转账不需要与合约进行交互,是相对很安全的操作了,没啥猫腻可以搞,MetaMask 会明确告诉你当前在给谁转账,转多少钱。
  • 作为用户,我们只需要确认转账金额是否和购物网站上显示的一致就行

有风险的操作:合约交互 ⚠️

shushi 触发的合约授权界面

真正有风险的是一些涉及合约批准或者调用的操作,这些操作对于不懂合约代码的用户来说很难去验证对方合约内部做了什么操作,对于一些恶意合约,可能 MetaMask 上显示的交易费用只有 Gas 费,但是你一旦批准了,后面对方就获取了转移你资产的权限。

以下是 OpenSea 在上架 NFT 之前要求你批准的操作,你批准后 OpenSea 就有了对你的 NFT 的转移权限。当然 OpenSea 是正规应用,所以理论上你批准这个敏感操作是安全的。

OpenSea 批准所有

以下是一个正规 NFT 网站的 Mint 操作,Mint 操作在 NFT 领域是很常见的行为,但是同样不可掉以轻心。如果对方没有上传源代码,理论上依旧可以把恶意操作包装成普通 Mint 操作。所以对于不懂合约代码的普通用户来说,你需要确保 Mint 操作是在对方官网上进行的。避免被钓鱼网站坑了。

Mint 操作

当然,上图中举例的这个合约是安全的,MetaMask 显示它的合约代码已经在 Etherscan 验证, 说明它的源代码已经上传到 Etherscan 网站,我们可以直接点击上图框住的 "Etherscan" 去查看它的代码实现

OURM Mint 代码

对于没有上传代码的合约,你就要非常谨慎了。

谨慎对待钱包里莫名奇妙收到的 NFT 和小币种

如果有一天你突然发现自己的钱包莫名奇妙多了一些不知名的 NFT 和小币种,不要去动它,更不要去卖或者转账。因为转账操作会和对方合约发生交互,很容易就在你看不懂的情况下授权对方转走你其他资产的权限。

推荐的操作是直接将这些 NFT 和币种隐藏掉,如果一定要操作,请确保先了解清楚对方合约代码。

在加密世界养成好的安全习惯

为了确保长期安全,我们需要避免将所有鸡蛋放在一个篮子里,好的习惯是,平时分多个钱包使用,具体可以参考如下:

  • 至少有一个存款专用钱包,这个钱包只存钱以及给自己的其他钱包转账,不参与合约交互操作
  • 一个或多个日常使用钱包,这些钱包不存放大额资金,需要 MINT NFT 或者合约交互的时候再从存款账户转钱过来

对于 MetaMask 和 Coinbase Wallet 这种钱包来说,用户可以用一套助记词创建出多个账户,维护起来非常简单。比如下图中你只需要点击 创建账户 按钮就可以创建一个账户出来,以后用同一套助记词可以将这些账户恢复出来,不过 MetaMask 上用助记词恢复账户的时候默认只恢复 Account 1 也就是第一个账户,后面的这些账户需要你再点击 创建账户 按钮来恢复。

MetaMask 创建账户

Coinbase Wallet 是默认就帮你创建好了 10个以太坊钱包帐户,这和你在 MetaMask 里面手动点击 创建帐户 按钮创建出来的是完全一样的。

Coinbase Wallet 默认创建好的 10个账户

检查批准和授权过的合约

下面这些工具可以查看你之前批准和授权过哪些合约,必要情况下你可以撤销这些授权,理论上授权越多,未来遇到安全问题的几率越大。

以太坊

BSC 和 Polygon

对于上面没有列出来的公链,你可以用:公链名称 + token approval checker 作为关键字在 Google 搜索

雪崩链的授权检查工具在谷歌的搜索结果

这里用 https://bscscan.com/tokenapprovalchecker 举例,下图框住的这些就是授权批准过的合约,这些合约可以转走你账户里所有授权过的 token。

bscscan 上的授权检查页面

总结

连接钱包并不可怕,真正需要谨慎的是一些看不太懂的批准或者合约调用操作。我们需要细心检查 MetaMask 确认弹框里显示的操作是否符合你的预期,对于看不懂的,你需要确保你打开的网站是从官方渠道获取的,而不是钓鱼网站。实在不放心的就用小号钱包操作。

参考

本文原载于:baiyun.me

原文链接:https://baiyun.me/is-it-safe-to-connect-to-crypto-wallets-on-websites

如果你喜欢我的内容,请考虑请我喝杯啤酒🍺吧,非常感谢🥰 。

If you like my contents, please support me via BuyMeCoffee, Thanks a lot.