区块链 · 数字资产知识 · 行业资讯
文章库关于本站

钱包与账户

数字货币浏览器钱包为何会连错账户|多扩展环境先确认提供者来源

摘要

浏览器装了多个钱包时,网页选中的钱包提供者、获准使用的账户和当前网络是三件事。识别连接对象后,还要核对账户与网络;熟悉的图标、成功连接提示或一个空余额,都不足以单独证明连接正确。

数字货币浏览器钱包的科技主题配图

网页连接的是一个提供者接口

以以太坊兼容应用为例,数字货币浏览器钱包通常向网页提供一个交互接口,文档称它为Provider。网页通过这个接口提出请求,再由钱包与节点等组件完成后续处理;网页按钮写着“连接钱包”,并不意味着它已经选中用户想要的那个扩展。

EIP-6963指出,多个扩展共用window.ethereum这一传统入口时,加载顺序可能造成覆盖竞争。这是一种兼容性问题,不能仅凭弹出了另一个钱包,就断言某个扩展在盗取资产。首先应确认实际响应请求的是哪一个提供者。

多钱包发现改善选择,不替代身份核验

EIP-6963定义了钱包与网页通过事件相互发现的机制,让支持该标准的页面可以列出多个提供者供选择。它处理的是“有哪些接口可选”,不是将所有账户合并,也不是替每个钱包做安全认证。

该标准中的名称、图标和反向域名标识由提供者提供;文档明确提醒,标识可能错误或被模仿。因此,列表里出现熟悉图标只是一个界面线索。还应结合浏览器扩展管理页中的实际安装来源和正在弹出的扩展界面核对,不把图标当成可信签章。

区块链dapp钱包的科技主题配图

选对钱包之后,还要选对账户和网络

同一个提供者可以向网页暴露一组获准使用的账户,当前链也有独立状态。EIP-1193分别定义了accountsChanged和chainChanged事件,说明账户变化与网络变化不是同一个动作。选择某个钱包,不等于该钱包中的所有账户都已交给网页使用。

举例说,读者原本想查看账户甲,却允许网页读取账户乙,就可能看到不同记录;账户地址看似相同,但网络选错,也可能查不到预期内容。这是帮助理解状态组合的假设场景,不是对某个真实账户余额的判断。

排查时分开记录三个状态

遇到连接结果与预期不一致,可以按“提供者、授权账户、当前网络”的顺序核对。先在网页选择界面确认钱包,再看钱包弹窗所列账户,最后比较双方显示的网络。地址应核对完整内容,不只看账户昵称或末尾几个字符。

切换后如果网页仍显示旧状态,应先停止后续签名或转账,再按该应用的连接管理方式重新检查。EIP-1193的connected表示接口能够服务至少一条链上的请求,并不等同于用户已授权特定账户,更不表示某笔交易已经得到确认。

把兼容问题与授权风险分开处理

EIP-6963也保留了旧应用兼容路径,不能据此声称所有钱包和网页都已支持多提供者发现。若界面没有选择入口,应查应用与钱包各自的官方说明,不要为了换一个连接对象就卸载仍持有唯一访问资料的钱包。

提供者选择正确,只完成了连接检查。下一步请求究竟是读取账户、签名还是发送交易,仍要单独确认。本文不要求导入恢复词,不替任何扩展背书,也不把连接成功当成可以忽略请求内容的理由。

← 返回全部文章

延伸阅读 · 相关栏目

安全防护钱包与账户风险识别信息核验