描述符装进二进制容器:BIP-391 的 BOD 格式与它的匆匆退场 图 1
描述符装进二进制容器:BIP-391 的 BOD 格式与它的匆匆退场 · 图 1

一串描述符文本,就是今天钱包备份的主流形态。但它有三个纸面上绕不开的毛病:没有机器可辨认的文件头;装不下”从哪个区块开始扫""钱包叫什么”这类运营信息;一串 xpub 用 base58 写出来还特别占地方。2026 年 1 月,硬件钱包厂商 SeedHammer 提交了 BIP-391《Binary Output Descriptors》,想把描述符连同元数据压进一个 PSBT 风格的二进制容器。这个提案现在的状态是 Closed——它活到 4 月就自己退场了。

BOD 容器的三段结构

格式定义很短:一个文件魔数,加一张全局键值表,再加每个密钥各一张表。魔数是四个字节 0x62 0x6F 0x64 0xFF,按 ASCII 恰好拼出 bod 加一个终止符;键值对的语法则直接照搬 BIP-174,也就是 PSBT 的骨架——这是整个提案最省钱的一步,凡是能处理 PSBT 文件的软件都认识这套键值表。全局表的 0 号条目存描述符本体:键数据是紧凑整数编码的出生区块高度(wallet 首笔进账可能出现的最早区块),后面可选跟一段 UTF-8 的钱包名字;值则是一条 BIP-380 格式的描述符,但有一个硬规定——不许内联密钥。密钥全部搬到后面的 key-map 里,描述符字符串里用 @0、@1 这样的下标引用。每张 key-map 的 0 号条目放 78 字节的序列化扩展公钥,值里再拼 4 字节主密钥指纹和一串 32 位小端的派生路径索引。内联密钥、下标越界,都被明确列为非法。

为什么不干脆用更通用的编码

提案文档自己比较过路线:同类的二进制描述符格式(Blockchain Commons 的 BCR-2023-010)基于 CBOR,作者认为 CBOR 为通用性牺牲了可审查性,而 PSBT 键值表更简单、能跑在嵌入式设备上;那个格式也没走 BIP 流程发布。另一条被否掉的路是把描述符表达式本身二进制化——文档的顾虑是表达式语言一直在长,维护一套紧凑二进制对应物的代价大于省下的字节;膨胀的大头本来就是 base58 编码的密钥,把密钥二进制化、表达式留着不动,收益已经到手。取舍逻辑写得很直白,这是提案里最有复用价值的一段。

它为什么被 BIP-393 挤掉

答案记录在提案自己的修订日志里:2026 年 4 月 21 日的 0.0.2 版写明”Withdrawn after BIP393 proposed an alternative method of handling wallet metadata”。BIP-393(描述符也能带便签:BIP-393 给钱包备份加注释字段)选的是完全相反的方向:文本描述符一个字不改,在表达式和校验和之间挂一段查询串风格的注释,bh 记扫描起始高度、gl 记间隔上限,全部用 BIP-380 字符集里本来就有的问号、等号和与号,校验算法原样复用。人眼能读、旧工具删掉注释段就能兼容、元数据照样带上——不需要任何钱包新写一个二进制解析器。对比之下,BOD 那套”给硬件设备用的紧凑容器”解决的问题还在,但优先级输了。参考实现也印证了成熟度:一个 Go 库,作者备注仅供开发测试,只校验 BOD 格式不校验描述符本身,别拿进生产。

留给读者的两课

第一课关于流程:一份提案死去,很少因为写错了什么,更多因为同一问题出现了便宜得多的解法——BIP 历史上大量 Closed 状态都属于这种”被更省事方案淘汰”,读旧提案时先查状态和修订日志,比读正文更早知道它当不当真。第二课给用户:今天备份描述符,正确姿势仍是”文本加注释加校验和”,导出时确认起始区块高度这类字段带没带上——它们决定恢复时要不要从创世块傻扫。顺带一提,BOD 与 PSBT 共用键值表这个设计,对已经处理过 PSBT 文件的开发者仍是现成的低成本起点,提案若以草案身份复活,骨架不用重画。

元数据该存什么:出生高度为什么是关键字段

无论走文本还是二进制,备份容器真正值钱的是”钱包叫什么、从哪块开始有钱”这两条信息。出生区块高度的意义直接连着恢复成本:现代节点对描述符导入支持给定时间戳或高度,起点正确时扫描只覆盖钱包实际存在的区间;起点缺失时,软件要么从创世块全扫(全节点以小时计),要么按某个默认近端高度扫(可能漏掉更早的进账)。间隔上限同理——BIP-44 传统窗口是连续 20 个未使用地址停扫,大量预领收款地址的钱包恢复后”少钱”,扩窗口重扫即可找回(恢复助记词后账户找不到怎么办? 处理过这类现场)。钱包名字则解决多描述符备份归组:一台设备管几个钱包时,没有命名的容器文件在恢复日就是猜谜游戏。BIP-391 的动机段数的正是这三样东西,它没赢在字段选择上,只输在了承载方式上。

风险提示:本文是钱包备份格式机制科普,不构成投资建议;任何备份格式在恢复前都应先在无害环境验证一遍,重要资金避免依赖唯一一份备份。