仅供教育参考,不构成投资或安全建议。恶意签名请求可能造成不可逆损失。
直接答案
钱包签名是一种密码学证据,表明私钥或智能账户策略认可了某段按特定方式编码的消息。验证只能确定在相应规则下哪个账户签署了这些确切字节;它不能证明签名人的法律身份、理解程度,也不能证明网站如实描述了操作。
“签名”不是一种统一操作。交易签名直接授权网络交易;链下消息可能只是没有资产权限的登录质询,也可能是可由中继者日后提交的订单、代币许可、治理指令或其他授权。没有 gas 提示不等于没有风险。
签名前应确认请求类型、可读操作、域或预期验证者、链、验证合约、地址、金额、nonce 与期限。若请求包含无法解释的哈希、不可读字节、意外字段,或钱包无法充分展示供独立核验,就应拒绝。
完成核查不代表资产、交易或系统已经安全。
工作原理
- 应用编码交易、普通消息或类型化数据对象。编码数据即使只有很小变化,也会产生不同摘要。
- 钱包展示它能解码的内容并请求批准。私钥留在钱包或签名设备内;钱包对摘要签名并返回签名值。
- 验证者重新构造同一摘要。对外部拥有账户,通常会恢复或核对公钥地址;合约账户可通过 ERC-1271 应用自身当前的验证策略。
- 验证者按应用规则解释结果。服务器可能创建会话,合约则可能消费许可、成交订单、改变治理状态或执行其他获授权调用。
- 重放保护取决于具体应用。EIP-712 提供类型化编码与域分离,但明确不提供重放保护;应用必须执行 nonce、deadline、预期验证者、链或其他一次性边界。
ERC-191 将签名数据与普通以太坊交易编码区分开,并定义了包括 personal_sign 消息在内的格式。EIP-712 把结构化字段绑定到可含 name、version、chainId 和 verifyingContract 的域,使有意义的核验成为可能。ERC-4361 登录消息增加域名、URI、链 ID、nonce 和签发时间等字段,但依赖方服务仍须自行验证。
示例
Leah 访问官方服务,收到一条 ERC-4361 登录请求,其中域名与 URI 正确、nonce 为新生成,时间戳有效期很短。消息只要求身份验证。她核对域名与账户后签名,服务器验证消息并创建会话。这条登录消息本身不会创建代币额度或链上交易。
在仿冒网站上,按钮仍写着“登录”,但钱包显示的是 EIP-712 Permit 数据,包含代币、spender、金额、nonce 与 deadline。按代币合约规则,该签名可让中继者建立代币支出权限。Leah 应拒绝签名:按钮文字与实际签署的字节无关。
风险与控制
- 含义欺骗: 页面可把许可或订单标成登录。应信任解码后的载荷和经核实的合约,而非按钮或弹窗说明。
- 盲签: 原始哈希和不透明字节使知情核验无从进行。除非能用可信工具复现确切原文及执行路径,否则应取消。
- 域错误: 熟悉的品牌名不能验证
chainId、verifyingContract、网站域名或 URI。逐项核对,并独立确认完整地址。 - 重放或延迟执行: 任何取得有效签名的人都可能在 nonce 被消费或 deadline 到期前使用它。采用新 nonce 和短期限,绝不要公开签名值。
- 权限过宽: 许可、订单、会话密钥和智能账户操作可能在不再弹出钱包的情况下授权后续动作。核对资产、spender、接收方、金额、范围与取消规则。
- 签名账户失陷: 硬件钱包能防止密钥被提取,却无法让恶意消息变安全。若助记词或私钥已泄露,签名问题只是整个账户失陷的一部分。
如果签署了可疑请求,应保存解码载荷与签名以供分析但不要公开,断开网站连接,并确定确切签名方案。若已形成链上批准或交易,应在正确链上核实状态,并采用协议记录的撤销、nonce 作废或资产迁移流程。不存在撤销所有链下签名的通用方法,断开网站也不会使签名失效。
常见误区
- “每个签名都会转走资金。” 许多签名只用于认证或表达意图,但有些会授权日后可转移资金的动作。
- “不收 gas 就没有危险。” 中继者可以替签名人支付 gas,提交已签署的许可、订单或其他授权。
- “EIP-712 保证安全。” 它改善结构化展示与域分离,却不提供重放保护,也不会验证应用的说法。
- “恢复出的地址证明某人知情签署。” 它只把确切数据按一种验证规则关联到密钥,不证明法律身份、理解或自愿同意。
- “合约钱包签名与普通账户相同。” ERC-1271 签名有效性可能取决于合约当前状态与策略,验证者必须调用合约,不能只靠密钥恢复。
相关主题
来源
- ERC-191: Signed Data Standard - Ethereum Improvement Proposals (查阅日期:2026-08-22)
- EIP-712: Typed structured data hashing and signing - Ethereum Improvement Proposals (查阅日期:2026-08-22)
- ERC-1271: Standard Signature Validation Method for Contracts - Ethereum Improvement Proposals (查阅日期:2026-08-22)
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (查阅日期:2026-08-22)
- ERC-4361: Sign-In with Ethereum - Ethereum Improvement Proposals (查阅日期:2026-08-22)