Dice Roll Entropy 通过真实掷骰子,为新钱包提供难以预测的输入。钱包是接收和发送比特币的应用程序或设备。私钥是用于授权花费比特币的秘密数字。想象安娜在创建钱包:她不编造数字,而是把实际结果按准确顺序输入经过验证的离线流程。这些数据将成为她的 bitcoin 密钥的基础。这里的熵描述的是不知道结果、只能尝试猜测的人面对的不确定性。因此,投掷必须足够多、彼此独立且保密。更多恢复词或更长的数字指纹都救不了薄弱或公开的输入。下面的计算解释原因,并不是鼓励你自行编写钱包生成器。
比特是信息单位。在每种可能性等概率时,每增加一比特,攻击者需要猜测的可能结果数量就翻倍。它不是骰子上多一个点,也不是备份中多一个词。 公平的六面骰子有六个等可能的结果。两次独立投掷有 36 种可能的组合。用比特表示,每次是 log2(6) ≈ 2.585。在这些理想条件下,50 次约有 129.25 比特,99 次为 255.91,100 次为 258.50。COLDCARD 为实际的 256 比特目标列出 99 次,但精确值略低于 256。仅仅数次数,既不能验证骰子质量,也不能保证转换结果完全均匀。 [1] [3] [5]
如果某一面更常出现,攻击者就更容易猜中。若最常出现的一面概率为 1/2,一次投掷只有 1 比特 min-entropy。Min-entropy 根据攻击者猜一次时最有利的选择,衡量结果的不可预测性。公式 Hmin=−log2(pmax) 使用的就是最可能结果的概率 pmax。要把各次的值相加,需要满足相应的独立性。抄写上一次结果不等于进行新的一次独立投掷。知道完整序列的人,更是不必猜测。 [4]
如果钱包完全由投掷结果生成,完整序列或最终哈希(从这些数据计算出的数字指纹)可能足以重建钱包。混合模式下,设备输入同样敏感。不要将真实投掷结果输入在线核验器,也不要拍照。使用单独的测试钱包验证计算,绝不向它存入资金;真实钱包应使用全新的私密输入。剪贴板和日志可能保留这些数据。妥善保存最终的 Seed Phrase,也就是用单词表示的备份,并测试恢复。如果还使用 passphrase,这个额外秘密会从同一组单词派生出另一个钱包,恢复时也必须提供。 [1] [2]
得到与公开测试示例相同的结果,只能验证编码、哈希和转换。它不能证明你的骰子或设备工作正常。一段看起来不错的短序列,也不能证明不可预测性。NIST SP800-90B 区分熵源模型、min-entropy 估计与运行检查。在家投掷一串结果并不等于通过该标准的认证;编造数字或重复模式不能代替实际投掷。 [3] [4]
ASCII 规定电脑如何表示数字字符;newline 指行尾字符。具体写法很重要,因为电脑处理的是输入的字符,而不是人理解的含义。 COLDCARD 文档中的 Dice Rolls Only 模式对 ASCII 数字序列计算 SHA-256。公开测试 123456 不含末尾 newline,其哈希为 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92。六次理想随机投掷也只有约 15.51 位,而这个公开序列完全不保密。256 位输出不会补充缺失熵;不同输入编码可能得到不同结果。 [1] [3]
下面公式中的 d1 和 d2 分别是第一、第二次投掷的结果。mod 表示除法后的余数。两个原像意味着两个不同的原始值产生同一结果,使该结果更容易出现。 教学上可将两次公平独立投掷编码为 x=6*(d1−1)+(d2−1),范围 0 至 35。x mod32 会偏向 0 至 3,因为它们各有两个原像。Rejection Sampling 则拒绝 32 至 35 并重掷这一对;接受的 0 至 31 提供五个均匀位。此例说明转换错误,并非替代已验证钱包生成器的操作指南。 [3]
2026 年 10 月 1 日修订的 COLDCARD 文档区分不含硬件随机性的 Dice Rolls Only,以及将设备值与实体骰子或抛硬币结果混合的标准生成方式。verify_seed_mix.py 检查后一种,rolls.py 和 rolls12.py 检查前一种。若输入还包含设备值,仅凭投掷结果无法核对;必须选择准确流程和固件版本。 [1]
BIP39 规定如何把输入比特转换成恢复词,再用这些词派生出种子,也就是生成密钥的起始数据。Checksum 能帮助发现某些抄写错误;passphrase 是可选的额外秘密。下文最后提到的算法负责从单词和 passphrase 计算种子。 BIP39 在 128 位输入后附加四位 checksum,再将 132 位分为 12 组,每组 11 位;256 位加八位校验则得到 24 个词。Checksum 是派生值,不增加随机性。随后 PBKDF2-HMAC-SHA512 从词组和 passphrase 生成 512 位种子,但长度 512 本身不能强化弱投掷。词语格式、输入熵和派生种子是不同层次。 [2]
要获得更完整的理解,请将本词条与以下词条结合阅读: Cryptographic Entropy, Entropy Bit, BIP 39, Seed Phrase, Entropy Mixing, CSPRNG. 反向关联还来自: Cryptographic Entropy, COLDCARD RNG Incident (2026).