十二个互不相干的词背起来像背手机号:人能背,但极易在紧张时刻抄错顺序、漏掉一个。人脑擅长记的是有画面、有语法、有情节的东西。2026 年 5 月 15 日立项的 BIP-450《Formosa——用主题化助记故事编码种子》(作者 Yuri Villas Boas 与 André Fidencio Gonçalves,状态 Draft,依赖 BIP-32 与 BIP-39)做的就是一件事:把 BIP-39 的「随机词表」翻译成「有角色的句子」。
先看编码账本。BIP-39 每 11 位熵查一次 2048 词表出一个词;Formosa 每 33 位一个句子。生成流程同样是先取 128 到 256 位的初始熵,取 SHA-256 的前(熵位数除以 32)位做校验和拼在尾部,然后把总位数切成 33 位一组。128 位熵加 4 位校验共 132 位,恰好 4 句;按一个每句 6 词的主题展开是 24 个单词——与 BIP-39 同熵 12 词的规模等价(规范表格注明:对比 BIP-39 词数就除以二)。192 位熵 6 句 36 词,256 位熵 8 句 48 词,全部整除,不留半句。
句子的内部结构由主题文件定义。一个主题(theme)是一份 JSON:一串类别(category),每个类别是一个语法角色——主语、动词、形容词、宾语、地点之类——各配一张词表和一个位宽,词表条数必须正好是二的位宽次方;全部类别位宽之和必须等于 33。还有两个顺序:FILLING_ORDER 规定句子按什么次序从熵流里取位,NATURAL_ORDER 规定按什么次序朗读书写,两者可以不同。最有趣的是一种类别可以声明 LED_BY 另一个类别:它的词表不是一张平表,而是「先选词的后继表」——主语选到「骑士」,动词就从「骑士专属子表」里再取。这条映射必须无环,且引导类别要在 FILLING_ORDER 里排在被引导者之前,保证填到依赖项时引导词已定。这样造出的句子天然合语法、不撞车,词与词之间有语义勾连。主题就是 Formosa 世界里的「2048 词表」:中世纪奇幻、科幻、自然、金融,或任何自定义世界观。
每个 33 位块的填充:按 FILLING_ORDER 逐类别读取对应位宽,按大端无符号整数解释成索引,从解析出的子表取词填进槽位,最后按 NATURAL_ORDER 拼出句子;所有句子顺序连接成助记符。词表条目允许母语字符,但必须用 NFKD 归一化的 UTF-8。
与 BIP-39 的双向兼容是全案的定盘星。设计上 BIP-39 本身就是一个特例主题:单类别 WORD、位宽 11、2048 词、无 LED_BY、填充序等于自然序且重复三次。回到种子一侧的兼容更直接:无论用户拿回的是哪套主题的句子,派生种子时先把它经 BIP-39 英文词表重编码回原来的 33 位比特流,再走 PBKDF2——密钥派生函数一个字都不改,同一份熵在两种记法下长出同一批地址。抽象地说,Formosa 改的是熵的「包装语法」,从不触碰熵本身。动机一节也照抄了 BIP-39 的警告:这是搬运机器随机数的记法,不是把你脑补的句子哈希成钱包——brainwallet 不是它的使用方式。
备份与转抄层面的实际收益可以这样估:12 个随机词要在灯下抄对 12 次才算成功,任何一个词的第一音节出错就功亏一篑;换成 4 个有情节的句子后,错误不再需要逐字比对——「将军饮马河边」被记成「将军饮马山中」时,校验和与 LED_BY 子表都会立刻把这句判为不合法,钱包可以在你抄完之前就喊停。纠错从「和原始清单逐字核对」降级为「朗读一遍看它像不像人话」,这是故事化编码唯一但真实的价值。
常见误区有四个。其一,以为换主题会换密钥:主题只影响读写形态,重编码保证种子同源。其二,自己编句子当备份:校验位会拒收多数自创句,且自创天然弱熵。其三,以为 6 词是协议常量:每句词数由主题类别数决定,规范示例才按 6 词主题给词数。其四,把 Draft 读成已被钱包支持:立项于 2026 年,主流支持情况要按当期核验。
快速问答。问:为什么定 33 位一句?答:33 能被拆成多个类别位宽之和且与 BIP-39 的 3 词一组(33 位)严格对齐,兼容代价最低。问:LED_BY 会不会增大词表总量?答:子表拆分后总条目仍是二的幂框架内的映射,主题文件体积换记忆收益。问:它能抵抗别人听写吗?答:不能假定——听到句子等价于拿到熵,主题不是加密。
风险提示:本文是密钥编码机制科普,不构成投资建议;无论哪种助记记法,纸上备份失窃等同密钥失窃,新编码标准未经实战检验前,大额资产仍以成熟的 BIP-39 加 passphrase 为底。

发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。