告别盲签:硬件钱包安全加固方案

文章分析了 Drift Protocol 和 Bybit 的安全漏洞,指出硬件钱包“盲签”是多重签名中的核心风险。作者提出利用 Solana 的 signMessage 功能将交易转化为人类可读的“意图(Intents)”,并分享了一个开源的 Proof of Concept 项目来解决该问题。

Image

最近 @DriftProtocol 的漏洞让每个人都感到理所当然的恐惧。多签签署者的电脑遭到了入侵,尽管他们使用了硬件钱包,但还是被外部 Agent 诱导签署了恶意交易。Bybit 也遇到了类似的问题——他们的多签 UI 显示的是安全交易,但发送到硬件钱包的却是危险交易。在这种情况下,签署者的电脑甚至没有被入侵,而是提供应用程序服务的 UI 被篡改了。

多年来,我们一直将硬件钱包宣传为解决方案,但在现有的工具链下,它们表现得并不尽如人意。

核心问题:没人知道自己到底在签署什么

成千上万的“键盘专家”事后评论说,Drift 应该使用专门的签名电脑。诚然,这会有所帮助,Drift 确实掉进了一个常见的陷阱。但退一步想——为什么作为环节中的人类,我无法在硬件钱包上确切知道自己正在签署什么?如果签署内容的上下文只能在专用电脑上才有意义,那么硬件钱包的意义何在?如果既需要硬件钱包,又需要专用电脑,却仍然无法信任电脑上的 Web UI,这难道不荒谬吗?如果我们要求每个人都保持“精神分裂”级别的偏执,我们又怎能指望在这里建立并维持业务?

将责任归咎于 @Ledger 没有提供清晰的签名显示很容易,但请记住:这些是多签交易。即使有清晰的签名显示,Ledger 能向你展示的也只是一个多签交易 ID。实际的交易定义存在于链上。你知道如何读取它吗?你信任为你读取它的 UI 吗?Bybit 和 Drift 都证明了你既不能信任你的电脑,也不能信任 UI。你当然更不能指望人类去阅读原始的 Solana 交易数据。

解决方案:从不可读哈希转向人类可读意图

Solana 交易的设计初衷并非让人类可读,试图强行使其可读只会带来痛苦。但是,Ledger 和其他硬件钱包支持 signMessage(消息签名)。在链上,我们拥有 brine-ed25519。为什么不创建一个新的智能钱包原语,来执行由人类编写、供人类阅读的明确操作呢?

与其签署一个无法理解的哈希值,不如签署如下内容:

过期时间 2026-04-01 10:00:00:批准向 9abc... 转账 1,000,000 lamports

或者:

过期时间 2026-04-01 10:00:00:提议为 Token <xxx> 添加新市场

这样一来,无论你的电脑被入侵到什么程度都无关紧要。你在 Ledger 上看到的消息就是链上将要发生的事情。

Image

我们完全可以做到这一点,技术已经成熟!

引入“意图”(Intents)机制

每个协议的多签都应该有一个明确的操作列表,并为每个操作设置阈值和签署者。这些操作应该可以编码为人类可读的字符串,即执行该操作的“意图”。一个 DeFi 协议可能拥有添加市场、调整熔断机制或更换管理员密钥的意图。一个程序多签可能拥有更换程序缓冲区的意图。

添加新意图确实带有风险。意图是用 Solana 交易的语言定义的:账户、数据、CPI。这部分确实需要现有的那种严谨和偏执。但你只需要做一次。一旦你确定了意图列表,就可以移除添加新意图的功能。现在,你拥有了一个受到严格限制的多签系统,它只能执行明文操作。你可以重新信任你的硬件钱包了。而且,由于每个签名都内置了明确的过期日期,你不再需要持久化 Nonce(durable nonces)。

无需 Nonce 的机构级托管

这种签署者数量为 1 的多签系统,实际上是一个具有可配置过期时间的离线签署者。通过标准化这样一个不可变程序,每个托管提供商都可以直接使用它。

概念验证(PoC)

空谈误事,指责无用。通过构建更好的软件来消除陷阱才更有意义,所以我构建了一个原型:https://github.com/ChewingGlass/clear-msig。这是一个尝试来自 @blueshift 的 Quasar 的好机会。如果这个想法引起了足够的关注,也许我们可以对其进行审计、形式化验证并使其不可变。如果没有,也许另一个团队会接手这个想法,并将其整合到更完整的多签产品中。

免责声明

此代码未经审计。由于 Quasar 尚未因功能标志(Feature Flags)在主网上线,该项目目前仅部署在开发网(devnet)。虽然它有潜力发展成伟大的产品,但目前请勿将其用于保护你的正式协议。

  • 原文链接: x.com/redacted_noah/stat...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
redacted_noah
redacted_noah
江湖只有他的大名,没有他的介绍。