网页上可能都叫“确认”,钱包窗口里的请求却有不同含义。有的请求让网站知道你选了哪个公开账户,有的要求签一段信息,有的会提交交易,还有的会让合约获得使用代币的权限。
不能靠按钮文字、是否显示Gas或是否已经扣款来判断请求范围。 下面按“请求了什么”拆开看。本文核对于2026年10月23日,使用标准和官方说明;提示示例均为讲解示意,没有连接钱包或执行签名。
先看请求、动作和权限三者的关系
| 看到的动作 | 主要含义 | 确认前重点 |
|---|---|---|
| 连接钱包 | 网站请求访问选定账户等连接信息 | 网站域名、选中的账户和请求范围 |
| 消息签名 | 为某段消息或结构化数据生成签名 | 完整内容、用途、验证对象与有效条件 |
| 交易签名/发送 | 确认将执行的链上指令 | 网络、目标、资产变化、调用内容与费用 |
| 代币授权 | 允许指定对象按相应机制使用代币 | 代币、spender、额度、期限与作用范围 |
这四行不是互斥的四种按钮。例如,一次代币授权可能通过一笔交易设置,也可能涉及消息签名后由其他人提交。一次完整DApp流程也可能连续出现多种请求。
连接钱包,不等于允许网站随意转走资产
连接让DApp与选定的钱包账户建立交互。应逐项查看窗口所列权限,而不是默认所有连接请求内容相同。一次单纯的账户连接,也不能直接等同于一笔ERC-20代币授权。
还要分清“网站通过钱包接口访问账户”与“外界能否查公开地址”。即使断开连接,链上公开数据仍然可以通过公开地址查询;断开不是把区块链记录变成私密数据。
核对入口的方法见DApp只读检查指南。如果只是打开公开图表,先确认是否真的需要连接,而不是把“连接成功”当成阅读资料的前提。
消息签名,也可能涉及资产权限
有些消息用于证明地址控制权或登录,有些结构化签名则可用于订单与授权。看到“Sign message”或者没有即时Gas提示,不能推出“只是登录”。
EIP-712提供结构化数据的签名方式;它本身不是安全认证。需要进一步理解这段数据在具体应用和合约中会被怎样使用。
一个明确例子是ERC-2612 Permit:满足条件的签名可被用于更新代币授权额度。签名者当时没有亲自发送链上交易,并不意味着该签名没有后续作用。
下面是理解Permit字段的文字示意,不是钱包截图、真实请求或可执行代码:
| 字段 | 应该弄清的问题 |
|---|---|
| owner | 哪个账户提供权限? |
| spender | 哪个对象将获得使用额度? |
| value | 授权数量是多少,如何按该代币精度解释? |
| deadline | 签名有效到什么时候? |
| nonce | 这次签名如何避免按同一条件重复使用? |
| chainId/verifyingContract | 签名针对哪条链、哪个验证合约? |
不是所有签名都使用这组字段,也不是所有代币都实现ERC-2612。遇到不能理解的结构,应回到应用和合约原文确认用途,不能只因看见熟悉单词就同意。
交易签名,重点看将执行什么
Ethereum的交易说明将交易描述为带签名的状态变更指令。读提示时应同时看网络、交互目标、原生币Value、代币变化及调用内容。
Value为0不代表没有资产影响;调用代币合约时,权限或代币变化可能由合约执行产生。对执行后的记录,可以参考TxID状态与代币接收方核对。
钱包可能提供模拟结果或清晰的动作说明,它们有助于阅读,但不能替代目标与请求来源的核对。提示不完整、与原任务不符或出现无法解释的权限时,不必为了继续浏览而确认。
代币授权:不是交出整个钱包的同义词
在ERC-20标准中,approve与allowance围绕代币持有人、获授权对象和额度工作。需要核对的是哪条链、哪种代币、哪个spender、多少额度,不能只笼统记成“授权给了某网站”。
“无限额度”表示允许范围很大,不代表立刻发生同等数量的扣款。反过来,当前没有扣款,也不能证明授权以后不会被使用。
Permit2官方说明还区分一次性签名转移与有期限的额度机制。这里不展开完整实现,至少要知道:不同机制的长期权限、一次性签名和有效期不能混读;有些流程存在代币对Permit2的基础授权与更细的后续权限两层。
断开连接,为什么不是撤销授权?
MetaMask的断开连接说明明确将连接与代币授权区分。关闭标签页或断开DApp,不会自动抹掉已经存在的链上额度。
撤销或调整传统链上代币授权,通常需要相应的链上状态变更;相关官方帮助说明这类撤销会涉及Gas。不能把这条结论扩展成所有签名机制都用同一种撤销方式。
另外,历史上出现过Approval事件,不保证那就是现在的有效额度。查当前权限必须针对正确网络、代币和机制读取当前状态;仅靠历史交易列表还不够。
确认之前,先答这六个问题
- 谁发起请求? 域名是否与已核对的应用一致?
- 用哪个账户和网络? 是否符合当前任务?
- 请求是什么? 连接、消息、交易、代币额度,还是其他账户权限?
- 谁会得到什么? 目标合约、spender、资产范围与数量能否说明白?
- 何时、多少次有效? 有没有额度、期限、一次性或持续权限的区别?
- 与我原本要做的事匹配吗? 读资料却要求新权限,应先停下来核对原因。
本文覆盖常见账户连接与代币权限,不是所有账户委托、NFT授权和智能账户权限的完整清单。理解这些区别的目的,是能说清每次请求的具体作用,而不是背下几个被视为“安全”的按钮名称。
资料来源
- MetaMask Help:Disconnect a wallet from a dapp
- MetaMask Help:Revoke smart contract allowances/token approvals
- Ethereum.org:Transactions
- ERC-20:Token Standard,approve与allowance
- EIP-712:Typed structured data hashing and signing
- ERC-2612:Permit Extension for Signed Approvals
- Uniswap Developers:Permit2 Overview