跳转到主要内容

连接钱包、消息签名、交易签名和代币授权有什么区别?

U
作者:UKey Wallet

隐私、授权与签名安全

在 EVM 类 DApp 中,连接钱包、消息签名、交易签名和代币授权经常连续出现,但它们不是同一个权限动作。连接主要建立账户与网站之间的交互会话;消息签名用于证明身份或表达意图;交易签名产生可广播的交易;代币授权则是允许指定 Spender 使用一定范围资产的权限。无论操作是否需要 Gas、金额是否为零,都应先理解内容再确认。

一、四种动作的权限边界

动作

主要含义

是否通常记录到区块链 / 是否通常需要 Gas

主要风险

连接钱包

向网站提供所选公开地址、网络及发起后续请求的渠道

不记录到区块链 / 不需要 Gas

暴露地址关联信息,并可能收到后续签名请求

消息签名

为文本或结构化数据生成密码学签名

通常不记录到区块链 / 通常不需要 Gas

签名内容可能包含登录、订单或 Permit 等授权意图

交易签名

批准一份可提交至网络的交易或合约调用

广播并成功执行后,可记录到区块链 / 通常需要 Gas

成功执行后可能转移资产或改变合约状态

代币授权

允许指定 Spender 在额度或规则范围内使用代币或 NFT

取决于创建方式

权限生效后,Spender 可能在无需资产所有者再次签名的情况下使用授权

重要边界:代币授权是一种权限状态,不是与前三项并列的“第四种签名”。链上的 approve 交易可以创建或修改授权。Permit 消息签名本身不会立即创建链上授权;只有该签名被有效提交后,授权才可能记录到区块链。

二、连接钱包与消息签名分别意味着什么?

连接钱包

连接通常通过钱包 Provider 建立会话。标准连接请求本身不会把私钥或助记词交给网站,也不会自动替用户签名或转账;但网站可以获得用户选择公开的地址和网络,并向钱包发起后续请求。公开地址一旦被网站获知,即使断开连接,网站仍可通过区块链查询该地址的公开记录。任何网页若要求输入助记词或私钥,应立即停止操作并核验官方入口。

消息签名

消息签名常用于登录、接受条款、链下订单、投票或 EIP-712 结构化数据。消息签名通常不会把数据记录到区块链,签名者通常也不需要支付 Gas。但是,不需要支付 Gas 并不表示没有资产风险。钱包显示可读内容时,应逐项核对域名、Chain IDverifyingContractSpender、金额和截止时间;如果只显示无法理解的原始数据或十六进制内容,不应盲目确认。参见什么是十六进制数据 + 0 金额交易骗局?

三、交易签名与代币授权分别何时生效?

交易签名不等于链上执行

完成交易签名后,只会得到一份已签名交易;此时区块链状态尚未改变。只有这份交易被广播到网络、写入区块并成功执行后,账户余额、合约状态或授权权限才会改变。交易可能没有被广播,也可能被替换、过期或执行失败。界面显示 0 ETH 时,只表示这笔交易没有直接附带 ETH;用户仍可能支付 Gas,合约调用也仍可能创建授权、转移代币或修改其他区块链状态。

Permit 签名不等于授权已经生效

Permit 操作通常先生成一份可提交的签名消息。生成签名时,区块链中的授权额度尚未改变。只有该签名在 nonce、截止时间等校验条件仍然有效时被成功提交,相关授权才可能记录到区块链。授权生效后,Spender 可以在授权规则、授权额度和账户余额允许的范围内发起后续调用。关于长期授权风险,参见什么是无限授权(Unlimited Approval)?

四、一次 DApp 交互不一定包含固定四步

一次 Swap 可能只要求连接钱包和签署交易,也可能先请求登录消息、链上的 approve 交易或 Permit 签名。如果账户已有足够的授权额度,通常不会出现新的授权请求。当 Swap 使用网络原生资产,而不是 ERC-20 代币时,通常不需要代币授权。因此,不能根据“这是第几步”判断安全性,每个弹窗都应作为独立请求检查。

断开 DApp 只会结束本地连接会话,不会修改区块链中已经记录的授权。需要了解授权存放位置、有效期和撤销原则时,请阅读为什么断开 DApp 不等于撤销代币授权?

五、确认前应检查什么?

  • 连接:确认网站域名、账户和网络符合预期。

  • 消息:确认请求用途,并检查可读的协议、合约、Spender、金额和截止时间。

  • 交易:核对网络、交易类型、收款地址或合约、资产、金额及网络费。Gas 概念参见什么是 Gas?Gas Limit、Gas Price 与网络费如何计算?

  • 授权:确认 Spender、代币、额度、适用网络和授权范围,避免不必要的无限授权。

  • 设备屏幕:以设备实际能够解析并显示的信息为准。设备不一定能完整解释所有合约字段;如果关键信息缺失、与预期不符或无法理解,应拒绝确认并返回核验。

更完整的检查清单见使用硬件钱包确认交易前,应核对哪些信息?;关于可读交易信息和钓鱼风险,见SignGuard 和 Clear Signing 如何防范 Web3 钓鱼?

核心原则:硬件钱包可以保护签名密钥,但不能替用户判断网站、消息、交易或授权是否符合真实意图。

这是否解答了您的问题?