BIP39二进制查找表,安全偏执狂专用

BurntCoins副船长发布在 技术文档
 15170  7

首先,这其实是个没X用的东西,因为从助记词推算收款地址必须靠计算机,不能手算。签名交易的时候也是。依赖电子设备,就必须信任电子设备没有后门。

BIP39单词表经过特别设计,仅需前4个字母就可以确定一个单词,所以这张表里只填入了前4个字母。

BIP39单词表一共2048个单词。2048=2^11,也就是说,每个单词的序号(因为一般情况下序号从1开始,所以需要减去1才能变成从0开始)可以用11bit表示。在这张表中,前5bit确定行号,后6bit确定列号。

换句话说,每抛11次硬币,就可以确定一个单词:前5次确定行号,后6次确定列号。

抛128次硬币,就可以生成一组由12单词构成的助记词。
抛256次硬币,就可以生成一组由24单词构成的助记词。

红、橙、黄、绿、蓝、紫,这六色分隔线分别对应行号或列号的第1、2、3、4、5、6位。
(从高位到低位)第1位是0,表示单词位于红线的左侧或上侧;第1位是1,则表示单词位于红线的右侧或下侧;
第2位是0,表示单词位于橙线的左侧或上侧;第2位是1,则表示单词位于橙线的右侧或下侧;
……以此类推

不过,抛硬币后,光靠这张表,不依赖计算机,不能完全确定助记词中的最后一个单词,只能知道一个范围。

比如12单词可以表示132bit,比128bit多出4bit的校验码,校验码是从前128bit推算(哈希后取前4bit)出来的,这个还是要靠计算机去算。
也就是说,对于12单词助记词来说,最后一个单词只能找到一个范围,能确定它在某一行,然后这一行被红线和橙线分为4段,每一段有16个单词,只能确定它在哪一段里,不能确定是16单词中的哪一个。

同理,24单词有8bit的校验码,所以连行号都不能完全确定。这个表格一共32行,被红线、橙线、黄线分为8段,每一段有4行,只能确定在哪一段里,不能确定是4行×64单词=256个单词中的哪一个单词。

  • 正序
  • 最新
只看帖主楼层直达
登录 账号发表你的看法,还没有账号?立即免费 注册