使用DApp时,钱包有时会要求你签名登录,有时则需要确认交易,还可能出现Permit或一长串看不懂的资料。这些都被称为签署,但其效果可能完全不同。
数字签名能让系统验证特定资料是否获得相应帐户授权。重点不只是「是不是我按的」,而是你究竟同意了哪些内容、谁能使用这份签章,以及能用到什么时候。
本文以Ethereum/EVM 常见操作为主,从实际判读角度说明登入、信息签名、交易与资产权限的差别。其他网络及不同帐户设计,需依各自规则理解。
钱包签名是由钱包配合金钥或相应验证机制,对特定资料产生可验证的授权证明。
对一般由私钥控制的帐户而言,私钥用来产生签章;验证者则能依相应规则确认签署帐户,而不需要拿到私钥本身。智能合约钱包也可能透过合约规则验证,不能把每种帐户都想成同一把私钥的模式。
正常签署不是把助记词交给网站。但若签署内容允许资产移动,对方可能依有效签章执行相应操作。
Permit 本身也可以采用结构化资料签名,因此上表是依用途帮助判读,不是互斥的技术分类。
不能单凭按钮写Sign、没有费用,或网站称它是「验证」,就认定只是登入。
Sign-In with Ethereum(SIWE)由ERC-4361 描述,让使用者透过标准化讯息证明对Ethereum 帐户的控制,供网站建立登入工作阶段。
典型讯息包含请求的网域、帐户地址、URI、版本、Chain ID、nonce 与签发时间,也可能加入到期时间等资讯。
例如,登入某个服务时,应确认钱包显示的网域与你预期使用的服务一致、签署的是正确帐户,且文字用途符合登入需求。
这不是「任何写着Sign in 的讯息都安全」。网站仍须正确验证讯息及防止重放,使用者也要确认来源。即使不涉及直接转币,登入权限本身仍可能影响帐户中的资料或操作。
许多登入流程会使用personal_sign 请求签署可阅读讯息。它提供特定讯息编码方式,但不能只因使用这个方法,就断定内容只有登入用途。
仍应阅读完整文字,确认适用网域、目的与其他条件。
EIP-712 定义结构化资料的杂凑与签署方式,方便应用呈现栏位,例如合约、金额、对象与期限。 MetaMask 常见的请求方法为eth_signTypedData_v4。
资料比较容易阅读,不代表资料内容自动安全。 EIP-712 本身也不替每个应用完整实作重放防护,仍需由协议处理nonce、期限与验证等规则。
此外,画面上的应用名称不等于已验证身分。必须搭配网域、实际合约及所签栏位判断。
签名是在证明你同意某份资料;资料是否稍后提交上链、由谁支付费用,是另一个问题。
例如,ERC-2612 Permit 可以让有效签章被提交到代币合约,更新授权额度。签署者未在当下支付Gas,不代表这份资料无法影响资产。
类似地,某些市场使用链下订单签名,之后才依协议规则撮合或结算。是否会移动资产,还要看既有授权、验证条件与应用设计。
以常见ERC-2612 Permit 为例:
若画面只显示最小单位的大整数,要连同代币decimals 换算。看不清楚时不要自行猜测,也不要把极大额度当成固定小额付款。
Permit2 则可能有不同的权限层级与栏位。其AllowanceTransfer 支援额度与到期时间,SignatureTransfer 用于一次性签名转移;签章期限、额度期限与已使用状态不能混成同一件事。
详细规则以代币或应用官方文件为准,不把一套栏位解读套用到所有Permit 变体。
常见情境是网站宣称「登入」、「领取空投」或「安全验证」,实际要求签署的是授权、可执行订单或其他有资产效果的资料。
签章取得后,攻击者可能稍后才使用。使用者当下没看到资产变少,仍可能误以为什么都没发生。
以下情况值得停下核对:
预期只是登入,画面却出现spender、代币额度或出售条件。网域、帐户、网路或验证合约与本次操作不符。要求在短时间内反覆签署,却不说明每一步用途。宣称撤销或修复,实际内容却增加权限或转出资产。只显示难以理解的杂凑或资料,无法确认授权效果。这和地址投毒有所不同:地址投毒主要诱导错误目的地,签名钓鱼则着重让你授权并非原本打算同意的内容。
自己先确认这次是登入、付款、交换、挂单还是设定权限。只有先知道预期结果,才能判断请求是否合理。
若准备在DEX交换代币,授权与交换可能是不同步骤;若只是登入,则不应因网站催促就接受无关的资产额度。
从可信入口开启服务,核对网址及实际签署帐户。网站标志、讯息中的名称或看似熟悉的地址,都不足以单独证明来源。
看是讯息、结构化资料、交易,还是其他帐户权限。不同钱包版本与帐户模式的名称可能不同,不能只看确认按钮。
确认收款人或spender、代币合约、额度、网路与相关期限。讯息有多页就展开完整内容,不以头尾几码取代完整核对。
如钱包提供模拟或资产变动预览,可作辅助,但不能当成所有未来执行效果的保证。链下签名可能当下不转币,却在日后具备用途。
拒绝尚未完成的请求,不会因此让你失去私钥或自动转出资产。回到官方文件确认需求;不要为了解锁登入或领取资格,关闭警示后盲目重试。
硬体钱包协助隔离金钥,并在装置上确认签署资讯。清晰签署则希望让使用者理解操作,而不是只看到不透明资料。
但装置不能替你决定该不该授权某个spender。即使签章来自真正装置,如果你确认的是恶意内容,协议仍可能接受。
「盲签」通常指无法充分看清楚并理解签署内容的情境。不同产品功能与用语不同,不应把开启某个设定当作所有DApp 的例行步骤。
记录网域、时间、帐户、网路及可取得的签署内容。若有交易杂凑也一并保存;不要为了找纪录再次进入可疑网站或重新签名。
链下签名不一定有TxID,链上没有新交易,也不表示签章未被网站取得。
不存在能取消所有钱包签名的通用按钮。尤其不能假设approve(0) 会让先前未使用的ERC-2612 Permit 一定失效;若其nonce 仍有效、其他条件也成立,该签章可能重新设定额度。
Permit2 的底层代币授权、应用额度与未使用签名,也可能需要分层判断。只撤掉某层权限,不代表其他签名已永久作废;未来重新授权前仍需确认。
确认是否发生实际转出,透过可信官方支援厘清;若涉及诈骗,保存必要纪录供通报使用。不要相信要求助记词或预付解锁费的追回服务。
不是。按钮名称不能决定效果,应阅读实际资料与适用协议。
正常签章不是交出私钥,但可能授权某些资产操作。提供助记词则是另一种更直接的控制权泄漏。
不是。签章可能之后由其他人提交或用于结算,签署者不一定当下支付网路费。
不是。格式有助于阅读,不会替你保证合约、额度或操作目的合理。
不能这样推论。 ERC-2612 deadline 限制签章提交;已生效allowance 的状态需另外查询。
不会自动让对方已取得的签章失效,也不会直接撤销链上权限。
不一定。链下签名可能尚未提交,或用于链下登入与其他流程。
没有通用做法。是否可取消、如何失效,要看签章用途、nonce、期限与协议提供的机制。