跳到正文
DIY Wallet
ZH

开源固件和 App 都由你自己编译

自己动手做一个硬件钱包

零件在任何电子商店都能买到,代码来自 OneKey 钱包背后的开源项目。助记词由设备自己的芯片在设备内部生成,从不经过电脑。

这是你将编译的固件真实输出的画面。试试摇杆。向右或 KEY1 确认,向左或 KEY3 返回,上下滚动。
零件
$38–57
用时
约 5 小时
焊接
不需要
随机数
来自芯片

它是怎么工作的

  1. 你的电脑

    运行你自己编译的 OneKey App,显示余额,准备交易。

  2. 一根 USB 线

    传过去的是待签名的交易,传回来的是签名。私钥从不经过它。

  3. 你的钱包

    保管私钥,把你要签的内容原样显示出来,你按下按键才签名。

助记词从哪里来

每一组助记词都始于树莓派博通芯片内部的电子噪声,出来之前要经过五道检查。没有任何模拟,也不经过任何电脑。

  1. 电子噪声芯片里的环形振荡器会产生微小、不可预测的抖动,这就是最原始的随机性。
  2. 检查设置每次启动前,钱包都会读出发生器的控制寄存器,只接受博通自己代码使用的那套设置。
  3. 丢掉预热数据启动后的前 1 MB 全部丢掉,和博通代码的做法一样,确保发生器已经完全进入工作状态。
  4. 逐字节检测每个字节都要过 NIST SP 800-90B 健康检测。发生器卡住或有偏差,钱包就会停下。
  5. SHA-256 压缩每用 1 个字节,就要压缩 4 个字节的噪声,最后得到你的 12、18 或 24 个单词的助记词。

任何一项检查没通过,钱包都会停下并在屏幕上提示,绝不会退回去用软件生成的随机数。

随机数是怎么检测的

三个阶段,九个步骤

每一步都写清楚在哪里输入什么,最后都有一项检查,确认做对了再往下走。

开始教程
  1. 购买

    25 分钟

    选好选项,下单买四样零件,然后等快递。

    1. 1开始之前
    2. 2购买零件
  2. 制作

    4 h

    准备存储卡,在树莓派上编译固件,再编译 App。大部分时间是在等。

    1. 3准备存储卡
    2. 4编译固件
    3. 5安装到树莓派
    4. 6编译 App
  3. 使用

    70 分钟

    在设备上创建钱包,按自己的喜好定制,学会怎样保管好它。

    1. 7连接并创建钱包
    2. 8自定义
    3. 9保管好它

要买什么

四样零件,每年都为别的用途生产几百万件。这份清单里没有一样是为加密货币做的。

完整清单、选项和价格

  • 树莓派 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 小时

谁做的

YishiYishiOneKey 创始人@ohyishi

这是 OneKey 创始人 Yishi 的个人项目,基于 OneKey 开源的固件和 App,不是 OneKey 官方产品。欢迎在 X 上指正和提问。

其他方案

Pro,树莓派加触摸屏. 暂不可用。 Pro 固件目前的代码没法编译成树莓派能跑的版本,能编译的旧版本生成的随机数又是可预测的。这两件事修好之后再加上。

装在 ESP32 开发板上. 暂不可用。 OneKey 的两套固件目前都不能在 ESP32 芯片上运行,需要先移植。

准备好了就开始

从第 1 步开始,或者先选好选项、拿到购物清单。教程里的每条命令都会跟着你的选择变化。