导语:开源比特币种子生成器 Entropy32 Plus 正尝试把放射性衰变的时间间隔转化为 12 词或 24 词 BIP39 恢复短语。根据项目开发者与代码仓库说明,该设备采用离线硬件方案,但开发者将其定位为实验性和教育性项目,并警告在独立审查完成前不要用于存放大量资金。
设备如何把辐射转为随机性
该项目自称“The Universe Bifurcator”。设备通过 3.5 毫米连接线接收 GQ Electronics GMC-320S 盖革计数器的脉冲,再由 LM393 比较器把模拟信号转换为 ATmega328P 微控制器可读取的数字输入。固件用微秒计时器记录每个被接受的事件。
对于每个事件,固件会比较最新间隔与前一个间隔:较长间隔记为 1,较短间隔记为 0,相等间隔则丢弃。低于 200 微秒的测量结果会被视为可能的毛刺而拒绝。设备持续收集,直到获得 512 个比较位。
Higgins 表示,该方法使用脉冲时序,是因为单个衰变事件的具体到达时间无法被准确预测。不过,开发者并未声称每一次比较都贡献了完整的一位实测熵。
SHA-256 条件化与 BIP39 映射
当 512 位池完成后,Entropy32 Plus 会通过内置 SHA-256 代码处理全部 64 字节。固件使用所得哈希的前 16 字节生成 12 词短语,或使用全部 32 字节生成 24 词短语。项目称,哈希处理意在减少与探测器死时间、计数率变化或测量间相关性有关的可见模式。
但报道指出,哈希条件化可以把已有熵扩散到输出中,却不能证明原始数据中究竟含有多少不可预测性。固件还包含 SHA-256 启动测试:计算“abc”的哈希并与已知值比较,如果结果不正确,会在收集熵之前停止。通过该自检只能确认实现对测试向量返回预期结果,不能测试盖革计数器、评估脉冲独立性或测量进入哈希的最小熵。
随后,设备应用 BIP39 规范。12 词短语使用 128 位条件化数据并计算 4 位校验和,合计 132 位被分成 12 个 11 位组;24 词设置使用 256 位和 8 位校验和,生成 264 位并映射为 24 个词索引。完整 BIP39 英文词表被编译进固件。仓库称,词表占用 13,117 字节,约占微控制器闪存容量的 43%。若计入 OLED 界面、SHA-256 实现和收集逻辑,编译程序使用芯片 30,720 字节中的 30,006 字节,剩余 714 字节未用。
离线设计限制网络暴露,但无法证明固件可信
公开硬件文件未列出无线通信硬件。用户通过两个按钮操作生成器,并在 0.91 英寸 OLED 屏幕上读取短语。生成的词索引会暂时保存在微控制器 RAM 中。用户记录短语后,同时按下两个按钮会开启确认流程,覆盖词数组并重新开始熵收集。
固件会在复制原始池用于处理后清除该池,并在 BIP39 索引计算完成后覆盖临时哈希、校验和与熵缓冲区。开发者称,设备不会把恢复短语保存到持久内存。然而,开源设计没有安全元件,也没有机制证明设备中安装的固件与公开代码一致。物理隔离可以移除若干网络攻击路径,但不能验证设备是否正确组装或是否加载了可信软件。被修改的设备可能显示预先确定的词,或保留生成数据,而外观没有变化。
熵质量仍未得到验证
仓库表示,基于盖革计数器的熵源尚未按照 NIST Special Publication 800-90B 进行测试。NIST 方法涵盖物理熵源评估,并包括针对独立数据和非独立数据的程序。Higgins 呼吁长期记录原始到达间隔,并使用 NIST 的非 IID 最小熵估计器进行检查。
固件注释警告,仅凭一般统计测试结果不足以确立足够熵。README 称:“请验证您打算使用的熵源,否则理解您将自行承担使用设备的风险。”开发者建议,在创建用于有价值资金的钱包前,把盖革计数器产生的数据与另一个经过独立验证的熵源混合。
截至 9 月 13 日,仓库未包含外部审计、NIST 评估或公开原始事件数据集。过去钱包失败案例表明,熵测试不能只停留在确认最终词符合 BIP39 格式。Crypto.news 曾报道,在 Coldcard 种子生成漏洞后,Kraken 安全主管呼吁进行独立钱包测试。相关技术评论解释,弱熵可能暴露比特币钱包,而不会直接揭示哪些人使用了受影响设备;攻击者可以生成可能的种子、推导公钥地址并在区块链上搜索匹配。修复故障固件无法修复此前生成的短语,受影响用户必须创建新钱包并转移资产。
Entropy32 Plus 仍在积极开发中。提交历史显示,首次提交日期为 9 月 4 日,随后出现固件、电路板和外壳更改。截至 9 月 13 日,仓库尚无标签生产版本,也没有完成独立安全评估的公布时间表。
