b biangogo.com
BIP44中文文档

BIP44中文文档:层级派生规范完整解读与实践要点

面向中文开发者的BIP44规范完整解读,覆盖派生层级、coinType、硬化派生、地址生成、与BIP32与SLIP-44的关系,方便在[[Binance]]生态项目中迅速建立认知。

b
biangogo.com 编辑部
1703 字· 约 4 分钟阅读· 2026-05-24T06:12:22.007022+00:00
BIP44中文文档 - BIP44中文文档:层级派生规范完整解读与实践要点
关于「BIP44中文文档」的视觉延伸

BIP44中文文档:层级派生规范完整解读与实践要点

BIP44是HD钱包多账户多链派生事实标准。本文为中文开发者梳理BIP44的核心条款、典型实践与常见问题,方便你在面向Binance生态项目时建立准确认知。

一、BIP44在BIP生态中的位置

BIP32定义了从seed派生层级密钥的算法。BIP43把派生路径的第一层规定为purpose编号,方便不同标准共存。BIP44则在BIP43之上规定purpose=44,并定义了coinType、account、change、addressIndex四层结构。

理解这三个BIP的层层关系,能让你在阅读各链文档时迅速找到对应位置。对于面向必安生态多链业务的钱包,这一认知是基础。

二、派生路径五层结构

BIP44派生路径为:m/44_/coinType_/account_/change/addressIndex

注意前三层都需要硬化,索引值大于等于2^31。

三、coinType与SLIP-44

SLIP-44维护各币种的coinType编号注册表。常见编号:

注册表持续更新,新增链需要按官方流程申请。对于面向BN交易所上线币种快速跟进的钱包,建议订阅SLIP-44仓库变更。

四、account隔离与多账户

account层是BIP44的精华设计。通过account隔离,用户可以在同一助记词下创建多个独立账户,相互之间财务状态分离。在UI层面,可以让用户为每个account命名,方便管理。

对于商家收款场景,建议每个店铺独立account,方便对账。对于个人理财场景,建议把日常账户与投资账户分到不同account。

五、change层语义

BIP44规定change=0为外部收款使用,change=1为内部找零使用。比特币系UTXO模型严格区分两者,找零产生新的UTXO时会派生到change=1的地址。以太坊系账户模型不需要找零,但仍建议保留这一层结构以维持兼容性。

六、addressIndex与gap limit

同一account下的地址按addressIndex递增分配。钱包恢复时按gap limit策略扫描,连续N个地址无交易就停止,N通常为20。少数主网项目把N调大到100以适应更高交易密度。对于币岸社区面向小额支付的钱包,gap limit建议至少保持20以匹配主流钱包。

七、硬化派生与扩展公钥

硬化派生切断父公钥到子私钥的反向链。这意味着无法通过扩展公钥派生硬化层的子私钥。这一设计带来安全收益的同时也限制了对账系统的设计:服务端只能在account级别拿到扩展公钥,单地址只能由客户端推送。

八、BIP44与新规范的关系

BIP49针对P2SH-SegWit地址,使用purpose=49。BIP84针对原生SegWit地址,使用purpose=84。BIP86针对Taproot地址,使用purpose=86。这些规范沿用了BIP44的多层结构,但purpose编号不同,确保派生路径不冲突。

钱包应同时支持多种purpose,让用户自主选择地址类型。

九、实践要点

实战中应关注的要点:

这些要点反复出现在BIP44相关文章中,但真正能落地的团队不多。对于bn量级业务,落地这些要点是钱包工程化的基本盘。

十、参考资源

建议阅读资源:BIP44原文、SLIP-44注册表、Trezor文档、Ledger开发者文档、ethers与bitcoinjs-lib源码。中文社区可关注币安开发者文档、慢雾安全报告、各大钱包团队开源仓库的README与CHANGELOG。

通过本文档的系统梳理,你应当能够独立阅读BIP44原文并在团队内组织技术讨论。后续的进阶学习可结合具体业务场景做深度展开。