在使用以太坊生态中的DApp时,用户可能遇到一种特殊签名请求。它不像普通消息签名那样只展示一段简单文本,而是包含账户、金额、接收地址、交易类型、有效期限等字段。这类签名通常与EIP-712结构化数据签名标准有关。

EIP-712的设计目的,是让应用能够按照明确的数据结构组织签名内容。通过定义数据类型、字段名称和字段值,钱包可以更清晰地展示用户即将签署的内容,减少传统签名中难以理解的风险。

例如,一个应用希望用户授权某项链下订单,可以将订单金额、接收方、订单编号和截止时间组合成结构化数据。用户签名后,应用便能够验证这份订单是否由对应账户签署。

从技术角度看,EIP-712并不是简单地把文字交给钱包签名,而是按照规定的编码方式计算结构化数据摘要,再结合域分隔信息生成最终签名消息。域分隔可以将签名与特定应用、链标识或合约地址关联起来,降低不同应用之间发生签名混用的可能性。

不过,结构化签名并不代表绝对安全。恶意网站仍然可能构造具有欺骗性的字段,诱导用户签署不符合真实意图的内容。尤其是涉及资产转移、订单授权和权限变更的签名,不能只看页面上的提示文字。

用户在imToken等钱包中遇到复杂签名请求时,应重点检查签名用途、涉及的金额、接收地址、授权范围以及有效期限。如果无法判断签名会产生什么后果,不应为了继续使用DApp而直接确认。

EIP-712改善的是签名数据的表达和验证方式,真正的安全仍然取决于应用设计、钱包展示能力以及用户是否理解签名内容。


微信扫一扫