Skip to content

IIdentityService 身份服务

地址派生和消息签名


职责

管理用户身份,包括从种子派生地址、签名消息、验证签名。


接口定义

IIdentityService {
  // 从种子派生地址
  deriveAddress(seed: bytes, index?: number): Address
  
  // 批量派生地址
  deriveAddresses(seed: bytes, startIndex: number, count: number): Address[]
  
  // 验证地址格式
  isValidAddress(address: string): boolean
  
  // 规范化地址(如 EVM 的 checksum)
  normalizeAddress(address: string): Address
  
  // 签名消息
  signMessage(message: string | bytes, privateKey: bytes): Signature
  
  // 验证消息签名
  verifyMessage(message: string | bytes, signature: Signature, address: Address): boolean
}

方法详情

deriveAddress

从助记词种子派生区块链地址。

参数

参数类型必需说明
seedbytesY助记词种子(64 bytes)
indexnumberN地址索引,默认 0

返回Address - 派生的区块链地址

行为规范

  • MUST 使用 BIP44 标准派生路径
  • MUST 返回规范化格式的地址
  • SHOULD 缓存派生结果以提高性能

isValidAddress

验证地址格式是否正确。

参数

参数类型必需说明
addressstringY待验证的地址

返回boolean - 是否有效

验证规则

链类型规则
EVM0x 开头,40 位十六进制,可选 checksum
Bitcoin符合 Base58Check 或 Bech32
BFM符合 BFM 地址规范

signMessage

使用私钥签名消息。

参数

参数类型必需说明
messagestring | bytesY待签名消息
privateKeybytesY私钥

返回Signature - 签名结果

行为规范

  • MUST 签名后立即清除私钥内存
  • MUST 使用链对应的签名算法
  • SHOULD 对消息添加前缀防止跨链重放

派生路径规范

链类型派生路径算法
EVM 兼容m/44'/60'/0'/0/secp256k1
Bitcoinm/44'/0'/0'/0/secp256k1
BFM 链m/44'/9999'/0'/0/Ed25519

派生流程

助记词

    ▼ BIP39
种子 (64 bytes)

    ▼ BIP32/SLIP-0010
主密钥

    ▼ 派生路径
私钥

    ▼ 椭圆曲线
公钥

    ▼ 哈希 + 编码
地址

错误码

错误码说明处理建议
INVALID_SEED种子格式无效检查助记词
INVALID_ADDRESS地址格式无效提示用户检查
SIGNATURE_FAILED签名失败检查私钥
VERIFICATION_FAILED签名验证失败签名可能被篡改
UNSUPPORTED_CHAIN不支持的链类型检查链配置

安全要求

要求说明
私钥不持久化私钥仅在内存中临时存在
及时清除使用后立即覆写内存
不记录日志私钥相关数据不写入日志
隔离环境SHOULD 在 Web Worker 中执行

Released under the MIT License.