当前位置: 首页 > news >正文

HD钱包--BIP44 - 若

助记词经 BIP39 → BIP44 得到可重复的地址序列。

1.通用路径与意义

 
m / 44' / {coin_type}' / {account}' / {change} / {index}
 
本仓库 TRON 示例路径
 
m/44'/195'/0'/0/i
 
路径段 含义
m 主节点(由 seed 根派生)
44' 固定为 BIP44 的 purpose;' 表示强化派生
{coin_type}' 链 类型:BTC=0,EVM 60(ether/pologon/arbitrum),TRON=195,SOL=501
{account}' 账户序号(0'、1'… 区分不同业务账户),账户级隔离,账户目录;这里可以体现商户ID
{change} 区分 收款地址0 和 找零地址1;BTC 系钱包历史遗留但非常重要的设计,在你现在做 ETH / TRON 地址池 时虽然通常固定为 0,但理解它的本质还是很关键的,尤其以后如果支持 BTC 或 UTXO 链
{index} 同一账户下第几个地址;批量入池时递增 i;账户目录里面的文件

2.工程设计约定

2.1. Gap Limit = 20

钱包在恢复时,如果连续发现 20 个未使用地址就会停止扫描,因此如果你跳过太多 address_index 不用,可能导致后面的已用地址扫描不到,需要通过连续使用 index 或记录 last_used_index 来避免这个问题。
生成太多没用的地址话,需要去链上查询地址是否存在/查询地址是否有交易,就会浪费时间,导致性能遍历慢

3.优点/缺点

 

3.1. 优点

优点类别 优点 具体说明 对工程系统的价值
备份能力 一次备份即可恢复全部地址 只需保存 seed(助记词),即可恢复所有私钥和地址 极大降低备份复杂度
地址扩展能力 可生成无限地址 从一个 seed 可派生无限 address_index 非常适合地址池系统
安全隔离能力 层级隔离(Hardened) account' 层可隔离不同账户风险 支持多账户安全设计
私钥隔离能力 可只暴露 xpub 服务器可只用 xpub 生成地址 私钥无需在线
多账户支持 天然支持多账户结构 account' 层可区分不同业务或商户 非常适合多商户钱包
可审计能力 可用 xpub 做只读审计 财务系统可查看余额但不能动资金 支持审计系统
隐私增强 每笔交易可使用新地址 避免地址复用带来的链上分析 提升用户隐私
标准化程度高 跨钱包兼容性强 多钱包使用相同标准路径 易迁移系统
恢复能力强 设备丢失也可恢复 只要 seed 存在即可恢复 可靠性高
自动地址管理 地址可顺序生成 address_index++ 即可生成新地址 非常适合充值地址池
冷热分离支持 支持冷/热钱包架构 冷端保私钥,热端只用 xpub 提升整体安全性
多币种支持 支持不同链统一管理 coin_type' 区分链 一套 seed 管多链

3.2. 缺点

缺点类型 问题描述 产生原因 风险等级 解决 / 缓解方式
Seed 单点失效风险 seed 一旦泄露,可推导全部私钥,资产全部失控 HD 钱包所有私钥来自同一个 seed 🔴 极高 seed 离线保存(冷存储)、多重备份、助记词加密
xpub 隐私泄露风险 xpub 泄露后,攻击者可推导所有地址并分析资金流 Non-Hardened 支持从 xpub 推导地址 🟠 中 不公开 xpub,按 account 隔离使用
Gap Limit 扫描遗漏问题 跳过太多 address_index,恢复钱包时可能扫描不到已使用地址 默认 Gap Limit=20(扫描停止规则) 🟠 中 顺序使用 index 或记录 last_used_index
地址扫描性能问题 生成大量未使用地址,恢复或扫描时需要逐个查询链上状态,耗时增加 钱包恢复需要判断地址是否被使用 🟡 中 控制 address_index 增长速度,使用缓存
链上查询成本增加 判断地址是否使用,需要查询区块或交易记录 无法离线判断地址是否存在交易 🟡 中 使用索引服务(如节点索引、数据库)
实现复杂度较高 路径管理、索引管理、恢复逻辑复杂 HD 结构是树形派生 🟡 中 统一 derivation path 设计
错误路径风险 使用错误路径会导致资产找不到 不同钱包 derivation path 不一致 🟠 中 严格固定标准路径
子私钥泄露风险(Non-Hardened) child_priv + xpub 可能推导父私钥 Non-Hardened 派生特性 🔴 高 account 层使用 Hardened
地址管理复杂度 地址数量大时需要维护 index 状态 无限地址能力带来的管理问题 🟡 中 数据库存储 index 状态
 

4.硬化派生 vs 非硬化派生

项目 Non-Hardened(非硬化派生) Hardened(硬化派生)
路径表示 60 60'
符号含义 没有 ' 带 '
index 范围 0 ~ 2³¹−1 2³¹ ~ 2³²−1(内部通过 +2³¹ 实现)
示例路径 m/44'/60'/0'/0/5 m/44'/60'/0'
典型用途 批量生成地址 建立安全隔离边界
是否能用 xpub 派生子公钥 ✅ 可以 ❌ 不可以
是否需要父私钥参与计算 ❌ 不需要 ✅ 必须需要
子私钥计算公式(核心区别) child_priv = parent_priv + H(parent_pub + index) child_priv = parent_priv + H(parent_priv + index)
子公钥计算公式 child_pub = parent_pub + H(parent_pub + index)·G ❌ 无法从 parent_pub 推导
是否支持 xpub 批量生成地址 ✅ 支持 ❌ 不支持
是否可能发生 child_priv + xpub 推 parent_priv 攻击 ⚠️ 可能 ✅ 不可能
安全性级别
常见使用层级 change、address_index purpose、coin_type、account
典型 BIP44 位置 m/44'/60'/0'/0/0 中最后两层 m/44'/60'/0' 前三层
是否允许只持有 xpub 的服务器生成地址 ✅ 可以 ❌ 不可以
适合的系统场景 地址池、充值地址生成 主账户隔离、多币种隔离
 

5.HD 钱包攻击方式与防护总览表

攻击类型 攻击原理 发生条件 风险等级 防护方式(核心)
xpub + 子私钥反推父私钥攻击 利用 Non-Hardened 派生公式,从 child_priv + parent_xpub 推出 parent_priv 泄露:
① 某个子私钥
② 对应层的 xpub
🔴 高 关键层使用 Hardened(如 account')
xpub 泄露隐私攻击 拿到 xpub 可推导所有地址,追踪资产流动 xpub 泄露 🟠 中 xpub 按商户/账户隔离,不全局共享
种子(seed)泄露攻击 seed 可恢复整个 HD 钱包 seed 被窃取 🔴 极高 离线保存 seed(冷存储)
路径碰撞或误用攻击 使用错误 derivation path,导致资产混乱 多系统路径不统一 🟠 中 严格统一 derivation path
Gap Limit 扫描遗漏攻击 跳过太多 index,恢复钱包时漏地址 address_index 跳跃太大 🟡 中 顺序使用 index 或记录 last_index
地址重用攻击(隐私问题) 重复使用地址暴露交易关联关系 地址重复使用 🟡 中 每次交易生成新地址
恶意钱包实现攻击 钱包生成伪随机或弱密钥 使用不安全库 🔴 高 使用成熟 HD 实现库
链上扫描推测资产规模 通过地址序列推测资产结构 地址结构暴露 🟡 中 多账户拆分隔离
服务器私钥泄露攻击 热钱包泄露 xprv 私钥在线存储 🔴 极高 使用冷/热分离架构

6.推荐工程范式安全架构

关键层 hardened ✅
地址层 non-hardened ✅
推荐工程范式路径:m/44'/60'/0'/0/0
 
冷环境(保存 xprv) m/44'/60'/0' ↓ 导出 xpub 热服务器(只保存 xpub) m/44'/60'/0'/0/0 m/44'/60'/0'/0/1 m/44'/60'/0'/0/2 ...
 
 
http://www.jsqmd.com/news/715914/

相关文章:

  • 网盘下载新思路:用脚本解放你的下载自由
  • GESP2025年6月认证C++五级( 第一部分选择题(1-8))
  • GHelper终极指南:5分钟快速掌握华硕笔记本性能优化神器
  • LiveTalking:如何实现实时交互式数字人的音视频同步技术突破?
  • 赛恩科仪OE1022D双通道锁相放大器测量霍尔效应
  • 2026年,明星偏爱老爹鞋,背后有何秘密?
  • B站评论爬虫实战指南:从零开始获取完整评论数据
  • VxWorks6.9 SMP性能调优笔记:避免多核任务调度中的‘伪并发’与锁竞争
  • GESP2025年6月认证C++五级( 第一部分选择题(9-15))
  • 20260428 紫题训练
  • 3步掌握Bilibili评论数据采集:从零到精通的完整指南
  • 太原风电设备运输
  • [笔记] abc454_e LRUD Moving
  • 我发现了一个很好用的 AI 编程 Skill:/grill-me
  • 向量引擎、GPT Image 2、deepseek v4、api、key 全都讲明白了:这届AI开发,真不是只会调用就够了
  • 不止于T+0:用通达信自定义公式,打造你的手机短线交易‘驾驶舱’
  • Rocky Linux 9上配置Chrony时间同步的保姆级教程(含阿里云、腾讯云NTP源)
  • 给硬件新手的LPDDR4上电初始化避坑指南:从Vdd上电顺序到CKE使能的关键时序
  • 多商户电商系统
  • League Akari 终极指南:快速掌握英雄联盟本地化效率工具
  • AI辅助下基于ArcGIS Pro的SWAT模型全流程高效建模实践与深度进阶应用
  • MCP插件报错无法复现?别再盲目重启!用VS Code内置Tracing + MCP Protocol Inspector抓取完整通信链路(含HTTP/2帧级日志解析)
  • 洛谷 B3622:枚举子集(递归实现指数型枚举)← DFS
  • 国内开源Claw类智能体
  • 告别僵硬抓取:聊聊软体机器人手在康复训练和精密装配中的那些潜力应用
  • StarRailCopilot深度解析:如何用模块化架构实现崩坏星穹铁道全流程自动化
  • UE5数字孪生入门:用Cesium for Unreal加载本地高精度DEM,快速构建城市级三维地形基底
  • 低查重AI写教材指南:精选工具助力,3天完成40万字教材产出!
  • Android系统升级变快了?聊聊GKI和KMI背后那些对开发者实实在在的影响
  • 【笔记】asp.net 中,为什么第二次压测的单核性能是第一次压测的 3.2 倍