用途:管理 BAP 身份备份,支持导出、导入、查看账户,以及在需要时重建全部身份。基于 bsv-bap 库和 @bsv/sdk。
安装:bun add bsv-bap @bsv/sdk;全局安装 bsv-bap 可使用 bap CLI。
备份格式:主备份包含 rootPk(Type42 主密钥 WIF 或 BIP32 xprv)、加密的 ids blob、可选 label 与 createdAt。ids blob 内含 name、description、identityKey(BAP ID)、identityAttributes 和 paths。
主要能力:
- 导出/导入主备份:用 new BAP({ rootPk }) 初始化,importIds 导入加密身份,exportForBackup 生成备份对象,可写入 backup.json。
- 列出账户:bap.listIds() 获取所有身份键,bap.getId(key) 读取 idName、rootAddress、getCurrentAddress。
- 加密备份:用 bitcoin-backup CLI 处理 AES-256-GCM,bbackup enc backup.json -p "password" -o identity.bep 加密,bbackup dec identity.bep -p "password" -o decrypted.json 解密。
- CLI:bap export、bap import backup.json、bap info。
主备份与成员备份:主备份含 rootPk 或 xprv 加 ids,可派生新 ID,用于完整身份管理和密钥轮换;成员备份含单个派生 WIF 加加密身份数据,不能派生新 ID,用于委托访问、代理认证和应用范围签名。成员备导出 exportMemberBackup() 生成 MemberIdentity,包含 derivedPrivateKey(稳定成员密钥 WIF)、address(当前签名地址,随轮换变化)、counter、identityKey。认证令牌用稳定成员 WIF 签名,保证轮换后身份连续性;可用 getStableMemberWif 和 getStableMemberPubkey 获取稳定密钥。
Secure Enclave(仅 macOS arm64):BAP CLI 可通过 @1sat/vault 用 Secure Enclave 保护主密钥。启用 bap touchid enable 后,rootPk 用硬件绑定 P-256 密钥加密并从磁盘移除,备份/导出需触发 Touch ID;bap touchid status 查看状态;无头或 CI 环境设 BAP_NO_TOUCHID=1。
限制:Secure Enclave 保护仅限 macOS arm64;成员备份无法派生新 ID;加密备份依赖 bitcoin-backup CLI;与 Sigma Identity OAuth 集成可参考 @sigma-auth/better-auth-plugin。