别再闭着眼点确认了,以太坊想让你看懂自己在签什么

Favoritecollect
Shareshare

圖片

作者:小白

本文为作者原创投稿,观点仅代表作者个人理解,ETHPanda 对内容进行编辑整理。

区块链一直强调「自己掌握资产」,但很少有人认真回答另一个问题,如果用户根本看不懂自己正在签什么,那这种掌握到底有多真实?从 blind signing 到 Clear Signing,以太坊正在补一块很基础、也很迟到的拼图,让交易签名从程序员能看懂,慢慢变成普通用户也能理解。

盲签,不是用户不小心

我很早用加密钱包的时候,就一直有个疑问。

为什么我每次点签名,钱包弹出来的东西,总是一串十六进制代码?

我明明是在网页上点了 Swap、Mint、Claim、Approve,但到了钱包确认那一步,屏幕突然变成了一堆0x开头的东西。很多科普视频又反复提醒大家,不要乱签名,很多钓鱼网站就是靠这个偷资产。

这就很拧巴。

一边告诉普通用户,签名很危险,你要看清楚。一边又把真正要看的东西,展示成普通人根本看不懂的格式。

这真不是用户不谨慎,是这个交互本身就很反人类。

后来我才知道,这种情况有个名字,叫 blind signing,盲签。你点下确认时,密码学上确实是在授权一笔交易,但从人的理解层面看,你其实是在签一张看不懂的纸。

问题不是用户不知道安全重要,而是他根本没有足够的信息去判断安全不安全。

以太坊基金会最近宣布 Clear Signing 已经上线,目标很直接,让 human-readable transaction signing 成为默认体验。Clear Signing 官网把这件事讲得更白, See what you sign,让你真正看见自己在签什么。

它不是一个单纯的钱包 UI 优化,而是在补以太坊面向普通用户时一直缺的那块基础设施。

过去的钱包安全,大多是在出事前帮你报警。比如一些插件会提前检查网站是不是钓鱼站,有风险就爆红提醒。Rabby 这类钱包也做了很多交易预览和风险提示,能让你看到签完之后资产余额大概会发生什么变化。

这些都很有用。

但它们更像是在交易旁边加安全员,而不是从签名本身解决问题。你依然要信任插件、信任钱包模拟、信任它能识别这个网站和这笔交易的风险。

Clear Signing,想把交易翻译成人话

Clear Signing 想做的事情更底层一点。

它不是只告诉你「这个网站可能危险」,而是让协议方把交易语义用标准格式写出来,让钱包能稳定地把 calldata 翻译成人能理解的动作。

比如以前你看到的是一长串 hex。

以后理想状态下,你看到的应该是,Swap,发送 1,000 USDC,最少收到 0.42 WETH,协议是 Uniswap V3,网络是 Ethereum

这才是人应该看到的签名确认页。

这里可以顺一下 Ray 老师的说法。他在帖子里讲了一句我觉得很好的话,「整理过的代码依然是代码」。

这句话其实点中了 EIP-712 和 ERC-7730 之间的差别。EIP-712 把原本混乱的签名内容变成结构化数据,但结构化不等于人类可读。普通用户真正需要的,不是一排排更整齐的变量名和参数,而是能一眼看懂的动作语言。

Ray 老师还把 Clear Signing 形容成**「在代码和普通用户之间加上一层翻译」**。这个比喻特别好。

ERC-7730 和 Registry,是怎么工作的

Clear Signing 背后的核心标准是 ERC-7730。

它定义的是一种 JSON metadata 格式。

大白话讲,就是协议方可以为自己的合约函数写一本「翻译字典」。合约里某个函数、某个参数、某个金额字段,分别应该怎么展示给用户,协议方提前按标准写清楚,然后提交到公开 registry。钱包在签名前查这本字典,把底层 calldata 翻译成用户能读懂的确认页。

ABI 能告诉钱包,这里有个uint256 amount。

但 ABI 不一定能告诉用户,这个 amount 是 USDC 的 6 位小数,还是 ETH 的 18 位小数,也不一定能告诉用户这笔操作是 Swap、Stake、Approve,还是 Claim。

ERC-7730 补的就是这层语义。

然后 registry 扮演的是公共目录的角色。clear-signing-erc7730-registry 仓库维护registry目录里的 metadata files。协议方提交描述文件,钱包和工具读取后,才有机会把交易展示成更清楚的人类语言。

截至 Clear Signing 官网 2026 年 5 月 7 日的快照,registry 已覆盖 44 个 protocol,发布了 346 个 descriptors。里面已经能看到 1inch、Aave、Circle、Lido、Uniswap、Safe、WalletConnect、WETH 等项目。

它不是魔法开关,但方向是对的

看着不少,但 Clear Signing 其实也才刚开始。

不是 EF 发了一条消息,所有盲签问题就突然消失了。现实里还有大量合约没有按 ERC-7730 注册,钱包端也不可能一夜之间全部支持。官网目前明确显示 Ledger 已经 live,Trezor 还在 development。其他钱包、工具、协议还需要时间接入。

所以 Cos 老师提醒的现实问题很关键。协议需要按 ERC-7730 规范完成注册,支持 ERC-7730 的钱包和工具才能更好解析展示。与此同时,钱包端已有的解析、模拟和风险提示能力仍然不能丢。

这点我真的非常认同。

Clear Signing 解决的是,这笔交易声称要做什么。Rabby 这类交易模拟解决的是,执行后可能发生什么。一个看意图,一个看结果。真正好的钱包安全体验,应该是两层都要有。

因为攻击者不会停止进化。

如果未来用户开始信任清晰签名,攻击者也可能尝试提交误导性 metadata,或者用长尾合约、未注册合约、复杂批量交易绕开展示。官方文档里也专门提到,钱包需要自己决定信任哪些 registry、review signal 和 attestation。

所以 Clear Signing 不是魔法开关,它更像是一套新的行业纪律。

协议方要写清楚交易语义。

Registry 要有审查和信任信号。

钱包要决定哪些 metadata 可以被展示。

用户终于不用再被迫面对一堆天书。

我觉得这件事对中文社区尤其有意义。

很多人不是不想进入链上生态,而是门槛真的太高了。大部分用户不是程序员,即便是程序员,也未必看得懂 Solidity、calldata、ABI、selector、permit、delegatecall 这些东西。

以前的链上体验,常常默认用户应该自己承担理解成本。

你看不懂,是你不够专业。

你被骗了,是你不够小心。

你不敢用,是你还没学会。

但这不是大众应用应该有的姿态。

如果一个金融级系统要求普通用户在签名前读懂十六进制代码,那不是用户教育没做好,而是产品和基础设施还没长大。

我之前在 LXDAO 和 ETHPanda 的 Web3 冬季实习计划里,也提过类似想法。当时我在 Headbook 里提增加安全课程的 PR,我想法很单纯,希望科普一下钱包怎么解析签名前四位的十六进制函数选择器,去理解函数意义。那时候我还没有一个完整方案,只是很朴素地觉得,用户不应该对着 hex 猜命运。

现在回头看,ERC-7730 就是在更系统地回答这个问题。

它不只是解析前四位 selector,而是让协议把函数、字段、金额、地址、上下文都写成可验证、可复用、可被钱包消费的结构化 metadata。

这比简单查函数名更重要。

因为函数名也可能骗人。一个恶意函数可以叫claimRewards,也可以叫deposit。真正有价值的展示,不只是告诉你函数叫什么,而是告诉你这笔签名对应的动作、资产、金额、协议、网络和风险边界。

这才是知情同意权。

以太坊早期为了让智能合约快速跑起来,牺牲了很多人类可读性。这在历史上可以理解。没有当年的快速实验,也不会有后来的 DeFi、NFT、DAO 和整个 EVM 生态。

但技术债不会消失,它只会在用户规模变大之后,以钓鱼、误签、恶意授权、冷钱包被盗的方式回来要账。

未来畅想

现在 Clear Signing 出现,至少说明以太坊生态已经开始认真补这笔账了。

我不觉得它会在几个月内改变所有人的钱包体验。更现实的判断是,未来几年,随着主流协议提交 metadata、主流钱包逐步支持、审计和 attestation 机制完善,清晰签名才会慢慢成为默认体验。

但方向是对的。

区块链不应该永远停留在「懂代码的人才敢用」的阶段。真正的大众化,不是让每个人都学会读 calldata,而是让每个人在签名前,都能用自己的语言理解自己正在授权什么。

天下苦盲签久矣。

Clear Signing 的意义就在这里, 它不是让钱包变得更好看,而是把交易签名的知情权,慢慢还给用户。

Disclaimer: This article is copyrighted by the original author and does not represent MyToken’s views and positions. If you have any questions regarding content or copyright, please contact us.(www.mytokencap.com)contact
More exciting content is available on
X(https://x.com/MyTokencap)
or join the community to learn more:MyToken-English Telegram Group
https://t.me/mytokenGroup