时用加密钱包做交易时,大部分人只能看到满屏的十六进制字符。因为完全看不懂底层逻辑到底写了什么,大家基本都是靠猜测或者对前端界面的信任,闭着眼睛点击确认。
但这种盲目签名的习惯非常危险。
黑客经常利用这种信息差进行钓鱼攻击。你看着前端网页以为自己正在免费领取空投代币,实际上钱包底层的代码写的是授权对方转走你的全部资产。这种情况下,仅仅依靠钱包自己去模拟交易结果,或者强行解析底层代码,根本没有办法百分之百还原真实的交易意图。一旦按了确认,资产就找不回来了。
为了让交易代码变得好懂一点,开发者之前推出了结构化数据标准(也就是 EIP-712)。这个技术把原本杂乱无章的机器乱码梳理成了一排排相对整齐的数据列表。
但问题是,整理过的代码依然是代码。
普通人根本看不懂那些英文变量名和复杂的参数到底代表什么具体动作。交易一旦变得复杂,用户需要的其实是一看就懂的日常沟通语言,而不是格式化之后的程序员代码。
为了彻底解决看不懂交易内容的问题,以太坊基金会目前牵头在做一套叫清晰签名(Clear Signing)的开放标准。这个标准要在代码和普通用户之间加上一层翻译。
翻译层的任务就是把底层复杂的机器逻辑变成普通用户可以读懂的逻辑。你在钱包里点击确认前,它会用极其清晰的自然语言告诉你这笔交易的具体动作(比如在 Uniswap 上把 1000 个 USDC 换成至少 0.42 个 WETH)。这样才能做到你眼睛看到的内容,就是你真正签名的内容。
这套翻译系统的运作方式思路很明确。
首先需要项目的开发人员或者安全团队为智能合约编写一本翻译字典(属于 ERC-7730 标准)。他们把每一段晦涩代码对应的白话解释一条条写进字典里,然后把这些翻译字典集中发布到一个完全公开且中立的注册表中。
当你发起一笔交易时,你的钱包就会去这个公开注册表里找对应的字典。找到之后,钱包脱离了应用的前端界面,独立把读不懂的代码翻译成清晰的文字确认界面展示给你。
但如果任何人都可以随意往公开的注册表里上传字典,这就又带来了一个巨大的安全漏洞。黑客完全可以自己建一本假字典,把转移资产的恶意代码翻译成领取奖励的虚假文字,继续在翻译环节欺骗用户。
为了防止字典被恶意伪造,这套系统紧接着引入了第三方背书机制(属于 ERC-8176 标准)。
这套证明框架允许专业的安全审计机构去检查注册表里的字典。如果检查确认字典的翻译准确无误且没有恶意,机构就会给它提供一个安全验证。你的钱包拥有最终的决定权,你可以设置钱包只认那些经过可信赖安全机构检查过的翻译内容。这样就阻断了假字典的生存空间。
由于整个系统的注册和验证都是公开分布的,就算某个中心化的运营机构停止服务,系统依然能依靠其他机构独立运转。
目前这套标准已经完成了核心机制的设计,以太坊生态内的钱包和应用正在逐步对接这套无许可的翻译与验证架构。