
什么是 WalletConnect,以及它如何与 SSP 协作
如果你曾经打开一个去中心化交易所、一个 NFT 市场或一个借贷应用,并看到一个"Connect Wallet"按钮旁边附带一个 QR code,那你其实已经见过 WalletConnect 了。它是一条安静的管道,把自托管钱包与人们真正使用的应用连接起来。对一个 SSP 用户来说,问题不仅是"WalletConnect 是什么",更是"当我使用它的时候,我的安全性会改变什么,又有什么会保持不变?"
简短答案:WalletConnect 是那扇门。你的密钥,以及 SSP 的 2-of-2 保护,依然在它们原来的位置。
WalletConnect 实际上是什么
WalletConnect 是一个开放协议,用于在去中心化应用(dApp)与钱包之间传递签名请求。它不是托管方。它不持有资金。它看不到你的种子短语或私钥。当一个钱包和一个 dApp 通过 WalletConnect 连接时,两端通过一个中继网络建立一个加密会话,消息在这个会话中来回传递。中继只看到加密的数据块;只有两端能读取它们。
它在整个生态系统中几乎无处不在,这就是为什么钱包一侧的同一套流程能带你穿越数百个应用,而不必每次都学习新的流程。该协议在 docs.walletconnect.com 上有公开文档,你也可以在 ethereum.org/en/dapps 上找到一长串与 WalletConnect 兼容的应用目录。
基本流程,一步一步
无论你使用哪个 dApp,连接仪式几乎总是一样的。
- dApp 展示一个"Connect Wallet"选项,并显示一个 QR code,或者——如果你在手机上——一个深度链接。
- 你打开 SSP,选择连接到一个 dApp,然后扫描这个 QR code(或跟随链接)。
- SSP 显示这个 dApp 在请求什么:一个会话、你的地址、你要连接的链。
- 你批准这个会话。SSP 与 dApp 之间现在已经打开了一个加密通道。
- 当你在 dApp 上进行任何需要签名的操作——一次 swap、一次代币 approval、一次存款——dApp 通过这个通道发送一个签名请求。SSP 会精确地向你展示请求的内容。
- 你来决定。如果你批准,签名过程在 SSP 中进行,签名后的交易返回给 dApp,由 dApp 广播。
- 当你完成后,断开这个会话。
需要注意的关键点:dApp 从不索要你的私钥。它索要的是签名。每一个签名都是你在钱包里做出的一次独立决定。
这个签名模型如何映射到 SSP
这就是 SSP 改变格局的地方,而大多数钱包做不到这一点。在典型的单签钱包里,每一次签名请求都是钱包 UI 中的一次确认——速度很快,但同时也是一个单点故障。如果那唯一一台设备被攻破,或者你在敌对请求上点了"批准",签名就会发生。
SSP 是一个 2-of-2 multisig 钱包。Key 1 存在于 SSP Wallet 浏览器扩展中。Key 2 存在于你手机上的 SSP Key 移动应用中。每一笔交易都需要两个密钥,每一次都是。当你使用 WalletConnect 时,这个模型并不会消失——它会延伸过来。
当一个 dApp 通过 WalletConnect 发送签名请求时:
- 请求先到达你电脑上的 SSP Wallet 扩展。
- 你审查 dApp 让你签什么——合约、金额、链,以及你选择查看时的 calldata。
- 你在扩展上批准。扩展生成自己的那份签名。
- 该请求被推送到你手机上的 SSP Key 进行联签。你在那里看到同样的细节。
- 你在手机上批准。SSP Key 生成它自己的那份。
- 两份合成一个有效的签名,返回给 dApp。
在 UTXO 链上,这是一笔 BIP-48 multisig 签名;在 EVM 链(Ethereum、Polygon、Base、BNB Smart Chain、Avalanche)上,这是一个由 Schnorr 聚合的 2-of-2 签名,由一个 ERC-4337 smart account 验证。密码学不同,性质相同:两个设备,两次批准,一笔交易。如果你想更深入了解 EVM 侧,请看 SSP 的 account abstraction 架构,如果想了解基础概念,请看 什么是 2-of-2 multisig。
哪怕一个钓鱼 dApp 骗过了扩展,它仍然必须过你手机这一关。这就是全部要点。
你应该知道的安全影响
WalletConnect 不会削弱你的安全性;它改变的是你需要留心的内容。下面这些风险并非 WalletConnect 特有,但一个已连接的 dApp 是它们常见的出场之地。
钓鱼 dApp。 任何人都可以做一个看起来像某个流行协议的网站,并请你去连接。钱包没有办法知道哪个是真的。在连接之前,务必确认你在正确的域名上。把你常用的应用加入书签;不要从搜索广告或聊天链接进入。
恶意签名请求。 一旦会话被打开,dApp 就可以请求任意签名。一个 swap 界面可能塞给你一个代币 approval,赋予一个陌生合约耗尽某个代币余额的权限。请认真阅读 SSP 给你看的内容。如果一个签名请求看起来陌生——一个你不认识的合约、一个无限额度的 approval、一笔转到非你地址的转账——请拒绝它。你手机上的 2-of-2 复核,就是你抓住这种情况的第二次机会。
盲签。 有时签名的数据是不透明的——一段长长的十六进制字符串,无法解码为可读字段。请用怀疑的态度对待盲签请求。优先选择能向你展示所签内容可读意图的应用。
链接与应用的混淆。 WalletConnect 是一个协议。许多钱包都实现了它。一个写着"Use WalletConnect"的站点,并不是某个具体品牌的信任信号——这只是一个管道标准。不要把"该 dApp 使用 WalletConnect"等同于"该 dApp 是安全的"。
有范围限制的权限。 一个会话可以被限定在特定的链和方法上。当 SSP 向你展示会话请求时,请看一下它在请求什么。拒绝一个要求超过应用真实所需的会话,并没有任何坏处。
未清理的会话。 你忘记的会话,仍然是一个会话。如果某个 dApp 的前端日后被攻破,一个活跃的会话就是一个落脚点。养成结束后断开连接的习惯。
让这一切真正奏效的具体习惯
几个小小的纪律,能让你对 WalletConnect 的使用保持干净。
- 在扫描连接 QR 之前先核对 dApp 的 URL。 自己输入域名,而不是点击聊天或广告里的链接。
- 阅读每一个签名请求。 在调用哪个合约?哪条链?多少金额?无限额度的代币 approval 与固定金额的 approval 不是一回事——两者都可能是合规的,但你必须知道自己正在签的是哪一种。
- 把手机端的确认当作第二次审视。 如果某个请求在电脑上看起来没问题,但在手机上却感觉不对,请拒绝它。两个设备意味着两次发现问题的机会。
- 完成后断开会话。 SSP 给你提供会话列表;把它当成一份"敞开的门"的清单。
- 优先选择有审计历史、声誉良好的应用。 倾向于那些已经存在了一段时间、会公开发布审计报告,并且除了标准的 WalletConnect 握手之外不要求别的登录流程的协议。
- 永远不要让种子短语进入任何 dApp 流程。 任何合规的 dApp 都不需要你的种子短语。签名请求是 dApp 与你钱包对话的方式;任何索要 seed 的东西都是骗局。更深入的阅读请看 种子短语最佳实践。
- 如果你是在 Ethereum 上连接,关于 gas、nonce 和合约交互的同样的链相关规则也适用——SSP 中的 Ethereum 涵盖了链一侧的细节。
把所有内容串起来
WalletConnect 是 SSP 与 dApp 生态系统之间的那扇门。它是加密的、开源的,被你将会遇到的大多数钱包和协议所使用。它不改变你的密钥住在哪里,也不削弱 SSP 的 2-of-2 模型。dApp 请求的每一笔交易,仍然必须同时经过你的浏览器扩展和你的手机——这就是你选择 SSP 时所购买的安全特性,它会陪伴你穿越你所连接的每一个 dApp。
密钥始终与你同在。门只在你穿过的瞬间打开。


