Skip to content

密钥管理

定义助记词、私钥的生成和存储规范


助记词规范

BIP39 标准

  • MUST 遵循 BIP39 标准生成助记词
  • MUST 支持 12 词(128 bits)和 24 词(256 bits)
  • MUST 使用标准英文词库
  • MAY 支持其他语言词库

词数与安全性

词数熵 (bits)安全级别
12128标准
15160
18192很高
24256最高

助记词验证规范

  • MUST 验证单词是否在标准词库中
  • MUST 验证校验和是否正确
  • MUST 验证词数是否符合标准
  • SHOULD 提示相似但错误的单词

多链地址派生

派生架构

助记词


种子 (Seed)

   ├──────────────────────────────────────┐
   │                                      │
   ▼                                      ▼
BIP32/BIP44                          Ed25519
(外部链)                             (BioForest 链)
   │                                      │
   ├── Ethereum (m/44'/60'/0'/0/x)       ├── BFMeta
   ├── Bitcoin (m/44'/0'/0'/0/x)         ├── PMChain
   ├── Tron (m/44'/195'/0'/0/x)          └── CCChain
   └── BSC (m/44'/60'/0'/0/x)

BIP44 派生规范

链类型Coin Type派生路径
Ethereum60m/44'/60'/0'/0/x
Bitcoin0m/44'/0'/0'/0/x
Tron195m/44'/195'/0'/0/x
BSC60m/44'/60'/0'/0/x

BioForest 派生规范

BioForest 链使用 Ed25519 曲线:

  • MUST 从种子派生 Ed25519 私钥
  • MUST 支持链前缀区分不同网络
  • SHOULD 使用 SHA256(seed + index) 作为私钥种子

加密存储规范

存储数据结构

字段类型加密说明
idstring钱包唯一标识
namestring钱包名称
encryptedMnemonicEncryptedData加密的助记词
chainAddressesChainAddress[]各链地址
createdAtnumber创建时间
isBackedUpboolean是否已备份

加密数据结构

字段类型说明
ciphertextstringBase64 编码的密文
ivstringBase64 编码的初始向量
saltstringBase64 编码的盐
iterationsnumber密钥派生迭代次数

加密算法规范

用途算法参数
对称加密AES-256-GCM256-bit key, 96-bit IV
密钥派生PBKDF2SHA-256, 100,000+ iterations

加密要求

  • MUST 使用 AES-GCM 模式(提供认证加密)
  • MUST 使用随机生成的 IV(每次加密不同)
  • MUST 使用随机生成的 Salt(每个钱包不同)
  • MUST 使用高迭代次数的 PBKDF2(≥100,000)
  • MUST NOT 存储明文助记词或私钥

密钥使用流程

创建钱包流程

用户绘制图案


验证图案复杂度(至少4点)


生成助记词 (BIP39)


显示助记词让用户备份


验证用户备份(随机选词确认)


加密助记词 (AES-GCM)


从助记词派生各链地址


存储加密数据到安全存储

签名交易流程

用户确认交易


绘制图案 / 生物识别验证


解密助记词


派生对应链的私钥


签名交易


清除内存中的私钥 ← 关键安全步骤


广播交易

图案锁规范

图案复杂度要求

规则要求说明
最少连接点4 个MUST
最多连接点9 个3x3 网格

图案验证规范

  • MUST 在客户端验证图案复杂度
  • MUST NOT 将图案明文发送到服务器
  • SHOULD 提供连接点数实时显示
  • MAY 支持图案可见性切换

安全最佳实践

内存安全

  • MUST 使用后立即清除敏感数据
  • MUST 用随机数覆盖内存(不只是置零)
  • SHOULD 限制私钥在内存中的存在时间
  • SHOULD 使用安全的内存分配(如可用)

清除敏感数据

操作完成


用随机数覆盖私钥内存


用随机数覆盖助记词内存


触发垃圾回收(如可能)

防暴力破解

  • MUST 使用高迭代次数的 PBKDF2
  • SHOULD 连续错误后增加延迟
  • SHOULD 错误次数过多时锁定
  • MAY 支持远程锁定功能

错误次数限制

错误次数响应
1-3正常提示
4-5增加 30s 延迟
6-9增加 5min 延迟
10+锁定 24 小时

备份与恢复

备份验证规范

  • MUST 创建钱包时强制显示助记词
  • MUST 随机选择 2-3 个词位置让用户确认
  • SHOULD 标记钱包是否已完成备份
  • SHOULD 未备份钱包显示提醒

恢复流程

用户输入助记词


验证助记词格式和校验和


用户设置新密码


加密助记词


重新派生所有链地址


创建钱包记录

本章小结

  • 使用 BIP39 生成标准助记词
  • BIP44 派生外部链,Ed25519 派生 BioForest 链
  • AES-GCM 加密存储,PBKDF2 派生密钥
  • 使用后及时清除内存中的敏感数据
  • 高迭代次数防止暴力破解

Released under the MIT License.