在大多数协议上交易或质押,第一步是授权合约替你转移代币。这本身正常且必要。问题出在默认设置:很多应用一上来就申请无限额、永不过期的授权。你早就用完了它,合约却一直握着转走这种代币的权限。
如果那份合约日后被攻破,或者从一开始就是恶意的,这笔仍在生效的授权就是它进门的路。攻击者不需要你的助记词,你早已签下的许可足够抽干被授权的代币。这是有钱的钱包在从未被直接钓鱼的情况下损失资金的最常见方式之一。
解法是卫生习惯,不是恐慌。应用支持时只授权需要的额度,不再使用的授权及时撤销。审视一个地址的授权面,就能看到哪些合约还握着权限,把已经没资格留下的那些关掉。