恢复原始私钥(Hard Key Recovery)
适用场景
Cobo MPC Co-Managed Custody 发生不可抗力因素导致无法再为客户提供服务。
这时,客户可以通过自身及其委托的第三方所管理的两个私钥分片,恢复出 MPC 钱包对应的 MPC 根扩展私钥( MPC Root Extended Private Key),并且基于此根扩展私钥推导出 MPC 钱包内所有地址的私钥。恢复每个地址的私钥需要依赖下方所述的准备工作,如果客户在平时正确完成了准备工作的内容,整个私钥恢复过程是完全不需要 Cobo 参与的。
条件要求
客户及其委托的第三方维护的两个 TSS Node 的 secrets.db 数据文件及密码
完成下列前期准备工作
前期准备工作
恢复原始私钥(Hard Key Recovery)所使用的恢复工具为开源项目,名为 cobo-mpc-recovery-kits,链接地址为 https://github.com/CoboCustody/cobo-mpc-recovery-kits 。打开链接后,阅读工程 README.md,下载或编译私钥恢复工具 cobo-mpc-recovery-tool ,客户可前往 https://github.com/CoboCustody/cobo-mpc-recovery-kits/releases 下载最新发布的版本。
在三方协同生成 MPC 私钥分片之后,记录下本企业账号的 MPC 根扩展公钥(MPC Root Extended Public Key)。注意,根扩展公钥一旦生成后则不会改变,因此记录一次即可。
实时或者定时保存 MPC 钱包内的地址信息。可以通过三种方式获得地址的详细信息:
通过 API 的 generate_addresses 接口生成地址时,在返回的 AddressDetail 里有 hd_path 信息,客户需要将其和新生成的地址一并保存
通过 API 的 list_addresses 接口,获取所有地址的 AddressDetail 信息,其中含有每个地址对应的 hd_path 信息
通过 Cobo Custody Web 的导出按钮,人工导出 MPC 钱包下的所有地址信息,如下图红框所示:
上述步骤中的第 1 、2 步都是一次性的,第 3 步则是在每个新地址生成后都需要进行一次,请客户结合自己的业务场景合理执行准备工作。
恢复过程
准备恢复环境
客户需确保其管理 TSS Node 的主机均处于离线或者安全的网络环境下,并且操作员及其操作电脑、显示器等操作设备也都处于安全的环境内。准备好 TSS Node 软件包与数据库文件,TSS Node 的目录结构如下:
cobo-tss-node-generic
├── configs
│ └── cobo-tss-node-config.yaml.template
├── db
│ └── secrets.db
├── recovery (导出私钥分片所在的文件夹,无需手动新建)
└── tss-node.sh
确认私钥分片正确性
进入操作目录 cobo-tss-node-generic,获取 Group 信息
sudo ./tss-node.sh info group
示例:
$ sudo ./tss-node.sh info group
Container started: bc5e54bc4675a46b3edc9bbabc76ebb7d3918260fe8aeb09bbd60375ae26438c
Wait a few seconds ..................
INFO[2022-12-14T09:51:28+08:00] Total number of groups: 1, from db/secrets.db
INFO[2023-01-16T09:04:12+08:00] Group info:
Group ID: OoQGkknsPdPjLCmSuuSf
Created Time: 2023-01-09 17:42:21.391854 +0800 HKT
Root Extended Public Key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
ChainCode: 0xb74087d551e44ef8d3a1270accb1977fd373c29fe6e235bc681c59a2137e1334
Share ID: 914259450665435839517029445012417071559
Share Public Key: 0x023633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d
Type: 1
Curve: secp256k1
Threshold: 2
Local Node ID: cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs
Other Node IDs: [coboBP97RpWKD2WGKhUUtZ1iu6uyWL7MjY4S8MpTUHDiwvRni cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4]
Participants: 3
(1) Node ID: coboBP97RpWKD2WGKhUUtZ1iu6uyWL7MjY4S8MpTUHDiwvRni
Share ID: 751341643106997665517612415491881522730
Share Public Key: 0x02ad8728dce88aa210645cff8dea474114376796d81e4b4df76bfa3ea847131b57
(2) Node ID: cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs
Share ID: 914259450665435839517029445012417071559
Share Public Key: 0x023633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d
(3) Node ID: cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4
Share ID: 997493310528521058725882883276549657588
Share Public Key: 0x02a233d2d37297bcfc3092ea65997a29b72931b5ca343db5cd608c85a306be5994
请确认上述日志中打印的 MPC Root Extended Public Key 和 准备工作 中第 2 步保存的 MPC Root Extended Public Key 是一致的。
如果一个 TSS Node 管理了多个私钥分片,请找到 MPC Root Extended Public Key 正确、并且更新时间最新的一组 Group 信息。随后记录下对应的 Group ID,例如上述日志中的 OoQGkknsPdPjLCmSuuSf。
将需要导出的私钥分片对应的 Group ID 和 Root Extended Public Key 提供给第三方,用于第三方核对私钥分片信息
导出私钥分片
客户在管理的 TSS Node 的根路径内,执行如下命令,导出私钥分片(其中的 <groupID> 请替换成前一步中获得的 Group ID):
./tss-node.sh export-share --group-ids <groupID>
示例:
./tss-node.sh export-share --group-ids OoQGkknsPdPjLCmSuuSf
INFO[2023-01-16T16:57:10+08:00] Init from default config file configs/cobo-tss-node-config.yaml
Type password:
Please type new password to encrypt export share
Type password (at least 16 characters):
Retype password:
INFO[2023-01-16T16:57:20+08:00] Export group info:
Group ID: OoQGkknsPdPjLCmSuuSf
Created Time: 2023-01-09 17:42:21.391854 +0800 HKT
Root Extended Public Key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
ChainCode: 0xb74087d551e44ef8d3a1270accb1977fd373c29fe6e235bc681c59a2137e1334
Share ID: 914259450665435839517029445012417071559
Share Public Key: 0x023633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d
Type: 1
Curve: secp256k1
Threshold: 2
Local Node ID: cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs
Other Node IDs: [coboBP97RpWKD2WGKhUUtZ1iu6uyWL7MjY4S8MpTUHDiwvRni cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4]
Participants: 3
(1) Node ID: coboBP97RpWKD2WGKhUUtZ1iu6uyWL7MjY4S8MpTUHDiwvRni
Share ID: 751341643106997665517612415491881522730
Share Public Key: 0x02ad8728dce88aa210645cff8dea474114376796d81e4b4df76bfa3ea847131b57
(2) Node ID: cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs
Share ID: 914259450665435839517029445012417071559
Share Public Key: 0x023633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d
(3) Node ID: cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4
Share ID: 997493310528521058725882883276549657588
Share Public Key: 0x02a233d2d37297bcfc3092ea65997a29b72931b5ca343db5cd608c85a306be5994
INFO[2023-01-16T16:57:20+08:00] Export TSS group OoQGkknsPdPjLCmSuuSf to file: recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z
程序执行流程:
输入数据加密密码
新生成密码并重复输入,此密码用于对导出文件中的私钥分片进行加密,后续 Hard Key Recovery 过程需要输入此密码才能访问私钥分片数据;密码设置后不可修改;如果密码丢失,等同于导出的私钥分片文件失效,需要重新导出一次。请严格控制此密码的访问权限;推荐使用密码管理软件(例如 1Password)生成复杂密码,长度建议在16~32位
程序自动生成私钥分片文件,命名规则为 recovery/recovery-secrets-<nodeID>-<time>;私钥分片文件为 JSON 格式,例如上面日志中的 recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z
导出后,需要手动核对 JSON 文件对象 “group_info” 中的键 “id” 和键 “root_extended_public_key” 的值,确认是否正确。私钥分片文件示例如下:
{
"recovery_groups": [
{
"version": 4,
"group_info": {
"id": "OoQGkknsPdPjLCmSuuSf",
"canonical_group_id": "",
"protocol_group_id": "",
"protocol_type": "",
"created_time": "2023-01-09T17:42:21+08:00",
"type": 1,
"root_extended_public_key": "xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak",
"chaincode": "0xb74087d551e44ef8d3a1270accb1977fd373c29fe6e235bc681c59a2137e1334",
"curve": "secp256k1",
"threshold": 2,
"participants": [
{
"node_id": "coboBP97RpWKD2WGKhUUtZ1iu6uyWL7MjY4S8MpTUHDiwvRni",
"share_id": "751341643106997665517612415491881522730",
"share_public_key": "0x02ad8728dce88aa210645cff8dea474114376796d81e4b4df76bfa3ea847131b57"
},
{
"node_id": "cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs",
"share_id": "914259450665435839517029445012417071559",
"share_public_key": "0x023633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d"
},
{
"node_id": "cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4",
"share_id": "997493310528521058725882883276549657588",
"share_public_key": "0x02a233d2d37297bcfc3092ea65997a29b72931b5ca343db5cd608c85a306be5994"
}
]
},
"share_info": {
"node_id": "cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs",
"share_id": "914259450665435839517029445012417071559",
"share_public_key": "0x023633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d",
"encrypted_share": "7Ej7pjpYN7QuZ8U0j7bBpsXWfmcQ8fS3jt7gyAgpvjH8nMBZyO8q3MGwcDkkaqzq6FdkG55KqhMXLTR6",
"kdf": {
"length": 32,
"iterations": 100000,
"salt": "0x36cba7fe220aae67e748a2fb8bb5c99d20da34321c3485f3a017ee7e73e81517",
"hash_type": 5,
"hash_name": "SHA-256"
}
}
}
]
}
接收第三方导出的私钥分片,并验证所有私钥分片是否合法
第三方导出私钥的方式与客户的类似,私钥分片文件为 JSON 格式,导出后,需要核对双方文件中的 Group ID 和 Root Extended Public Key 是否一致。
接下来,验证第三方导出的私钥分片与客户导出的私钥分片是否合法。在恢复工具 cobo-mpc-recovery-tool 同级目录下新建 recovery 文件夹,将两组私钥分片文件拷贝到 recovery 文件夹下,结构如下:
├── cobo-mpc-recovery-tool
└── recovery
├── recovery-secrets-<nodeID1>-<time1>
└── recovery-secrets-<nodeID2>-<time2>
执行命令(请替换成真实的 Group ID 与私钥分片文件):
./cobo-mpc-recovery-tool verify \
--recovery-group-files recovery/recovery-secrets-<nodeID1>-<time1>,recovery/recovery-secrets-<nodeID2>-<time2> \
--group-id <groupID>
示例:
./cobo-mpc-recovery-tool verify \
--recovery-group-files recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z,recovery/recovery-secrets-cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4-2023-01-09T17:43:49Z \
--group-id OoQGkknsPdPjLCmSuuSf
INFO[2023-01-16T22:01:30+08:00] Start to verify recovery group file recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z
INFO[2023-01-16T22:01:30+08:00] Verify all group parameters passed!
INFO[2023-01-16T22:01:30+08:00] Start to reconstruct root public key ...
INFO[2023-01-16T22:01:30+08:00] Use participants (no.1) (no.2) to reconstruct root extended public key ...
INFO[2023-01-16T22:01:30+08:00] Reconstructed root extended public key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
INFO[2023-01-16T22:01:30+08:00] Use participants (no.1) (no.3) to reconstruct root extended public key ...
INFO[2023-01-16T22:01:30+08:00] Reconstructed root extended public key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
INFO[2023-01-16T22:01:30+08:00] Verify to reconstruct root public key passed!
INFO[2023-01-16T22:01:30+08:00] Start to derive share public key from share secret ...
Enter password to decrypt share secret from recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z
Password:
INFO[2023-01-16T22:01:34+08:00] Derived share public key: 0x043633989378b01c2e66d5fd70666101546a310aaab2c08c7b5813be371d438c0d724e32e537b78ddd1cba1c38aa088aa997e4f3a47d45ac422b54518a138cb732
INFO[2023-01-16T22:01:34+08:00] Verify to derive share public key from share secret passed!
INFO[2023-01-16T22:01:34+08:00] Verify recovery group file recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z passed!
INFO[2023-01-16T22:01:34+08:00] =======================================
INFO[2023-01-16T22:01:34+08:00] Start to verify recovery group file recovery/recovery-secrets-cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4-2023-01-09T17:43:49Z
INFO[2023-01-16T22:01:34+08:00] Verify all group parameters passed!
INFO[2023-01-16T22:01:34+08:00] Start to compare with group (no.1) parameters ...
INFO[2023-01-16T22:01:34+08:00] Compare with group (no.1) parameters passed!
INFO[2023-01-16T22:01:34+08:00] Start to reconstruct root public key ...
INFO[2023-01-16T22:01:34+08:00] Use participants (no.1) (no.2) to reconstruct root extended public key ...
INFO[2023-01-16T22:01:34+08:00] Reconstructed root extended public key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
INFO[2023-01-16T22:01:34+08:00] Use participants (no.1) (no.3) to reconstruct root extended public key ...
INFO[2023-01-16T22:01:34+08:00] Reconstructed root extended public key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
INFO[2023-01-16T22:01:34+08:00] Verify to reconstruct root public key passed!
INFO[2023-01-16T22:01:34+08:00] Start to derive share public key from share secret ...
Enter password to decrypt share secret from recovery/recovery-secrets-cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4-2023-01-09T17:43:49Z
Password:
INFO[2023-01-16T22:01:37+08:00] Derived share public key: 0x04a233d2d37297bcfc3092ea65997a29b72931b5ca343db5cd608c85a306be59944e8ba3e10a2dea4f4682c2076f9ed7cc1b1a8261b6a7b4abab7a941e60f172f2
INFO[2023-01-16T22:01:37+08:00] Verify to derive share public key from share secret passed!
INFO[2023-01-16T22:01:37+08:00] Verify recovery group file recovery/recovery-secrets-cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4-2023-01-09T17:43:49Z passed!
INFO[2023-01-16T22:01:37+08:00] =======================================
INFO[2023-01-16T22:01:37+08:00] Verify all recovery group files passed!
程序执行过程:
检查第一个私钥分片文件的每项键/值是否合法
使用第一个私钥分片文件中“participants” 对象的信息,恢复根扩展公钥,检查与文件中的根扩展公钥是否一致。
手动输入第一个私钥分片文件的加密密码,解密出分片的私钥,然后推导出对应公钥,检查与文件中分片的公钥(share_public_key)是否一致
检查第二个私钥分片文件的每项键/值是否合法
检查第二个私钥分片文件中每项键/值与第一个私钥分片文件中每项键/值是否正确匹配
使用第二个私钥分片文件中所有参与者 “participants” 对象的信息,恢复根扩展公钥,检查与文件中的根扩展公钥是否一致。
手动输入第二个私钥分片文件的加密密码,解密出分片的私钥,然后推导出对应公钥,检查与文件中分片的公钥(share_public_key)是否一致。
合并私钥分片,恢复出 MPC Root Extended Private Key,推导出所有地址的私钥
准备工作第 3 步中介绍了多种记录地址信息的方式,本节以通过 Cobo Custody Web 导出的地址信息为例进行说明。如果客户计划使用自行保存的地址信息,请将地址信息按照相同的文件格式进行保存后再使用。
解压从 Cobo Custody Web 导出的压缩包后,可以看到 address.csv 文件;复制 address.csv 文件到与 cobo-mpc-recovery-tool 同级的 recovery 文件夹下,目录结构如下:
├── cobo-mpc-recovery-tool
└── recovery
├── address.csv
├── recovery-secrets-<nodeID1>-<time1>
└── recovery-secrets-<nodeID2>-<time2>
执行命令(请替换成真实的 Group ID 与私钥分片文件):
./cobo-mpc-recovery-tool \
--recovery-group-files recovery/recovery-secrets-<nodeID1>-<time1>,recovery/recovery-secrets-<nodeID2>-<time2> \
--group-id <groupID> \
--csv-file recovery/address.csv \
--show-root-private-key
示例:
./cobo-mpc-recovery-tool \
--recovery-group-files recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z,recovery/recovery-secrets-cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4-2023-01-09T17:43:49Z \
--group-id OoQGkknsPdPjLCmSuuSf \
--csv-file recovery/address.csv \
--show-root-private-key
Enter password to decrypt share secret from recovery/recovery-secrets-cobo2Jitd83uNFZmGnvs8c4Bs1TUNjVVeBQmc82a4KpLFqdbLs-2023-01-16T16:57:20Z
Password:
Enter password to decrypt share secret from recovery/recovery-secrets-cobok1nJ4P8DL1mU5SDEzh8QDA5FzdSg7gdkAZKUWK4NuviS4-2023-01-09T17:43:49Z
Password:
INFO[2023-01-16T22:54:17+08:00] Derive keys from recovery/address.csv to recovery/address-recovery-20230116-225417.csv:
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/15 derived child private key: [child-hex-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/15 derived child extended private key: [child-extended-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/15 derived child extended public key: xpub6GQqSwqQCEJ7uB2XnbrWGrRTQckfhPH1B9UoyBaHVT4cJikeQFTnUk94b9s13JfcdYY4VzQMhiDtBtVtvAQAbaqeUikAbnYzyFKpxdudyRZ
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/14 derived child private key: [child-hex-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/14 derived child extended private key: [child-extended-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/14 derived child extended public key: xpub6GQqSwqQCEJ7rRKt8CLveYenF4LgKLtpy8EpUiJ95bdF6hWMHuW4pZksFE3Am9SDrsccbDxBi4P7gEHAfXbdJGJCQhqZz3dMyEYoz5vgLeh
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/13 derived child private key: [child-hex-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/13 derived child extended private key: [child-extended-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Path: 44/1/2/0/13 derived child extended public key: xpub6GQqSwqQCEJ7p3Q6AZa5KRfj5xBKCPzv4nvkPLDs7N9HoN5FwzruzFGy2qfxjSagJXvkxVahST4oFFnkbPUd6sm3UcoSoXxMHGYEZMFNsLU
INFO[2023-01-16T22:54:17+08:00] Derive keys from recovery/address.csv to recovery/address-recovery-20230116-225417.csv completed
INFO[2023-01-16T22:54:17+08:00] Reconstructed root private key: 0x61272be72bf74d3b9320d8019aab0fe2add5e75fcb23efde2d899ec2d3f78959
INFO[2023-01-16T22:54:17+08:00] Reconstructed root extended private key: [root-extended-private-key-display]
INFO[2023-01-16T22:54:17+08:00] Reconstructed root extended public key: xpub661MyMwAqRbcGNFddDqGveSvN9jr1n1GMGFypyhqn34oKyMw9bvrych636CDwgBbLjdLgQRoQtmqPucPb1pZQVBZq3tuXXTQX8wP3JMWAak
程序执行过程:
按提示依次输入两个私钥分片文件的解密密码
根私钥合成成功后,会打印恢复出的 MPC Root Extended Private Key 和 MPC Root Extended Public Key
请确认 MPC Root Extended Public Key 和准备工作第 2 步中记录的一致
导入 address.csv 文件,根据文件中的 HD path 派生公钥与私钥,程序会自动生成文件 recovery/address-recovery-<time>.csv ,例如上面日志中的recovery/address-recovery-20230116-225417.csv
执行完成后,recovery/address-recovery-<time>.csv 文件内会包含所有地址的私钥明文信息。这些私钥可以直接用来管理加密资产,请妥善保管。
Last updated
Was this helpful?