它是怎么工作的
你的电脑
运行你自己编译的 OneKey App,显示余额,准备交易。
一根 USB 线
传过去的是待签名的交易,传回来的是签名。私钥从不经过它。
你的钱包
保管私钥,把你要签的内容原样显示出来,你按下按键才签名。
助记词从哪里来
每一组助记词都始于树莓派博通芯片内部的电子噪声,出来之前要经过五道检查。没有任何模拟,也不经过任何电脑。
- 电子噪声芯片里的环形振荡器会产生微小、不可预测的抖动,这就是最原始的随机性。
- 检查设置每次启动前,钱包都会读出发生器的控制寄存器,只接受博通自己代码使用的那套设置。
- 丢掉预热数据启动后的前 1 MB 全部丢掉,和博通代码的做法一样,确保发生器已经完全进入工作状态。
- 逐字节检测每个字节都要过 NIST SP 800-90B 健康检测。发生器卡住或有偏差,钱包就会停下。
- SHA-256 压缩每用 1 个字节,就要压缩 4 个字节的噪声,最后得到你的 12、18 或 24 个单词的助记词。
任何一项检查没通过,钱包都会停下并在屏幕上提示,绝不会退回去用软件生成的随机数。
随机数是怎么检测的- 树莓派 Zero 2 WH$15–22
- 微雪 1.3 寸 OLED HAT$11–16
- microSD 存储卡,16 或 32 GB$7–10
- Micro-USB 数据线$5–9
合计$38–57
| 买来的钱包 | 你自己做的钱包 | |
|---|---|---|
| 到你手上之前经过谁 | 工厂、仓库和快递 | 完全不知道它会用来存私钥的人 |
| 软件从哪里来 | 在工厂里装好 | 你自己从能查看的源码编译 |
| 助记词在哪里生成 | 设备内部 | 设备内部,由芯片的硬件随机数发生器生成 |
| 安全芯片 | 通常有 | 没有。请加上密码短语。 |
| 更新 | 由厂商通过 App 推送 | 你自己用新代码重新编译 |
| 花费和工夫 | 买来插上就能用 | 38 到 57 美元,约 5 小时 |
谁做的
YishiOneKey 创始人@ohyishi这是 OneKey 创始人 Yishi 的个人项目,基于 OneKey 开源的固件和 App,不是 OneKey 官方产品。欢迎在 X 上指正和提问。
其他方案
Pro,树莓派加触摸屏. 暂不可用。 Pro 固件目前的代码没法编译成树莓派能跑的版本,能编译的旧版本生成的随机数又是可预测的。这两件事修好之后再加上。
装在 ESP32 开发板上. 暂不可用。 OneKey 的两套固件目前都不能在 ESP32 芯片上运行,需要先移植。
