钱包
钱包如何存储密钥、批准交易以及处理恢复。
你的密钥存放在哪里,谁能使用它们?
Qlyphs Wallet 是非托管钱包:密钥在你的浏览器中创建、加密和使用。它的常规连接和交易协议只发送公开数据,不发送助记词或密码。被攻破的设备、钱包页面或特权更新仍可能危及已解锁的钱包。
两种形式,同一个钱包
| Qlyphs Keys | 浏览器扩展 | |
|---|---|---|
| 运行环境 | 一个网页,无需安装 | Chrome 和 Firefox |
| 代码 | 每次访问时下载,可验证 | 已安装的安装包;尚未提供应用商店分发 |
| 安装 | 打开钱包的源 | 从公开仓库构建,再「加载已解压的扩展程序」 |
两者由同一份源代码构建,使用相同的账户格式:只要网络、签名方案和派生路径一致,同一组助记词在两者中都能打开同一个账户。请另外保留一份独立的恢复副本;浏览器配置文件之间不会自动同步保险库。
保险库
钱包持久保存的是加密的恢复材料。下面的步骤描述的是一个新创建的保险库;旧版加密备份会在迁移前经过校验。
- 01 / 04
24 个助记词
创建钱包时,你的 24 个助记词由 256 位随机数在你的设备上生成。它们是派生你各个账户的主密钥:任何拿到它们的人都可以在不知道你钱包密码的情况下重建这些账户。
- 02 / 04
你的密码
你的密码经过 PBKDF2-SHA256 拉伸 600,000 轮,并加入全新的随机盐值。这会提高逐一尝试猜测密码的成本;但不能让弱密码抵御离线猜测。
- 03 / 04
已加密
拉伸后的密码变成一把密钥,用 AES-256-GCM 封存你的助记词。加密的保险库数据和公开的账户元数据保存在这个浏览器配置文件中。认证机制能发现受保护保险库遭到的改动;账户身份会在恢复时再次核对。
- 04 / 04
短暂解锁
解锁会开启一个绝对时长为五分钟的会话。会话到期、锁定或 worker 重启都会结束签名权限。钱包会清空存放秘密的缓冲区,但 JavaScript 和浏览器并不保证内存中的每一份副本都被擦除。
钱包不会持久保存你的密码,也不会把它发送给 DApp。恢复需要正确的助记词,或者一份加密备份及其密码。仅凭通行密钥无法在新的浏览器配置文件中恢复钱包。请把恢复材料保存在浏览器之外;只在你已验证过的钱包界面中输入,绝不在已连接的 DApp 中输入。忘记密码后重新开始,会创建一个不同的钱包,无法找回旧钱包中的资产。
钱包内部的隔离墙
- 网站在墙外。 网站通过一条狭窄的通道与钱包通信,这条通道只传递请求和公开的应答。该协议没有提供任何读取密钥、助记词或密码的方法。
- 只有允许的网站。 钱包只应答内置在其发布版本中的网站。其他网站一律被拒绝;即使是允许的源,也仍需你明确的账户授权。
- 在钱包自己的界面上批准。 每一个签名都在钱包中展示并批准,绝不在网站上。被拒绝、已过期或已使用过一次的请求,不能再授权任何其他操作。
- 固定的端点。 钱包所连接的 Quantus 节点和 Qlyphs 服务在构建时设定。网站无法更改它们。
- 打包代码。 钱包使用其安装包内的脚本和依赖,没有第三方脚本源、分析脚本或
eval。网页钱包在每次访问时从自身的源下载这个安装包。
它会向你展示什么
- 你的 QTC 余额,从 Quantus 网络读取,仍在等待最终性的部分单独显示。
- 每一笔交易及其状态:待处理、已确认、最终确认,或者「查看状态」,表示某个应答已丢失,钱包正在查明发生了什么。
- 签名前:收款方、确切金额、预估网络费以及可能收取的 Qlyphs 费用。发送前的检查会预留预估费用和账户最低余额。
在后量子见证验证得到确认之前,主网上的代币购买仍处于停用状态。可切换网络的本地构建会把各网络的历史记录和授权分开保存,但其显式的沿用操作可以在主网上复用开发用的助记词和地址;这并不会创建独立的密钥。