Metamask 是目前以太坊和EVM 链上最受欢迎的钱包,Metamask 除了浏览器还可以在手机上使用,操作很直觉简单,也因为操作容易按一两个按键钱就直接付出去了,或是一不小心就将代币权限授权给骗子,去中心化的好处之一是抗审查,但也意味着当资产被盗时,黑客只有很低的机率会被抓到,所以如何预防被盗变得非常重要。本文也将详细说明哪些Metamask 的操作可能会有潜在被盗风险,以及如何定期检查钱包授权权限,撤销有安全疑虑的授权,在以太坊黑暗森林中保障自己的资产安全。
1. 签署与授权
1.1 签署( Sign )
![](../uploads/220610/1-220610214533537.jpg)
签署是钱包要跟dAPP 互动前会做的动作,大部分会出现在连接钱包的时候,目的是要确认你是该地址所有人,上图在Debank 连接钱包为例,签署后Debank 就知道你是该地址持有者,也可以在讯息( 红框处) 地方看到Debank 为了认证身份才做签署。
1.2 授权( Approve )
授权则是使用者将某一种/全部代币调用权限授权给你要使用的dAPP,并且有无限金额授权或是有限金额授权的分别,端看dAPP 的合约设定。
![](../uploads/220610/1-22061021463H34.jpg)
![](../uploads/220610/1-220610214TWN.jpg)
以上图在Uniswap 的交易为例,在交易前Uniswap 就要求将CRV 授权给它才能进行后续兑换,Uniswap 预设是无上限授权,你可以在“Edit permission” (橘框处)的地方选择“Custom Spend Limit”设定Uniswap 合约可以调用的代币数量上限,这样即使Uniswap 遭到黑客入侵,黑客也只有权限盗走上限内的代币数量,由于蛮多DeFi 都没有设上限限制,所以在授权时输入上限限制是一个能让自己更加安全的方法。
钱包内资产被盗最常见的不是正派DeFi 被盗反而是使用者不小心将代币权限授权给黑客,经由钓鱼网站或是Discord 诈骗私讯等方式,授权的权限很高所以在每一个授权动作前一定要好好检查你是授权给哪个合约或是使用者,上限多少。
以太币( ETH ) vs 其他代币被盗
以太坊的设计是唯有私钥持有者才可以动用帐户内的以太币,如果今天黑客没有拿到你的私钥,他最多就只能藉由授权把帐户内除以太币外的代币/ NFT全部转走,所以如果帐户被盗,可以用代币转移状况来判断是私钥泄漏或是不小心将代币权限授权给黑客。
2. 检查钱包授权撤销可疑授权
有很多可以协助撤销( Revoke ) 授权的网站,像是Revoke.cash、Tin.network、Cointool 等都能查询钱包共有哪些授权并协助取消授权,除了取消授权需要的链上交易费外,这些网站本身都是免费的,以下会用Revoke.cash 为例说明如何撤销授权。
Revoke.cash支持以太坊、币安智能链、Avax等热门区块链(下方绿箭头处),进入网站后直接将钱包转换到你要检查的区块链并连接网站,连接后会显示目前该地址有哪些授权,以上图为例这个地址共授权给Compound( DAI ;无限数量)、Aave( stETH ;无限数量)和Uniswap( USDC ;无限数量),可以选择直接撤销( Revoke )或是修改授权上限:
![](../uploads/220610/1-22061021492W10.jpg)
2.1 撤销授权( Revoke )
撤销授权直接点Revoke(红箭头)就会跑出撤销交易,因为要改变链上状态的原因,所以授权时需要交易手续费,撤销也需要交易手续费。
2.2 授权( Approve )
修改授权上限直接填入上限数字并点选Update(咖啡箭头)即可,也需要交易手续费。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。