|
3 | 3 |
|
4 | 4 | ### 钱包资产找回
|
5 | 5 |
|
| 6 | +#### 相关概念 |
| 7 | + |
| 8 | +> 脚本地址X |
| 9 | +
|
| 10 | +该地址由钱包找回脚本哈希生成地址, 由于私钥未知, 地址上的资产需要使用钱包找回脚本对应的约束进行提取 |
| 11 | + |
| 12 | +> 控制地址A |
| 13 | +
|
| 14 | +该地址为钱包找回主地址, 可以基于比特币脚本构造签名, 实时提取地址X中的资产 |
| 15 | + |
| 16 | +> 找回地址B |
| 17 | +
|
| 18 | +该地址为钱包找回副本地址, 可以基于比特币脚本构造签名, 延时提取地址X中的资产, 目前仅支持2个找回地址 |
| 19 | + |
| 20 | +> 钱包找回脚本S |
| 21 | +
|
| 22 | +一种比特币脚本, 由地址A和B对应公钥, 以及延时等数据构成 |
| 23 | + |
| 24 | +> 基本场景 |
| 25 | +- 用户生成地址A和B及X, 地址X用于线上资产存储, 地址A离线控制X资产存取 |
| 26 | +- 地址A私钥丢失时, 可使用地址B的私钥进行延时找回地址X资产 |
| 27 | +- 实际使用中, 地址B也可由第三方托管控制 |
| 28 | + |
| 29 | + |
6 | 30 | #### 操作步骤
|
7 | 31 |
|
8 |
| -> 获取钱包找回地址X |
| 32 | +> 获取钱包找回脚本地址X |
9 | 33 | - 已知钱包找回控制地址A,找回地址B,相对延时时长T
|
10 | 34 | - 调用接口获取获取钱包找回地址X,[相关rpc](README.md#chain33getwalletrecoveraddress)
|
11 | 35 | - 用户使用链上转账功能,将需要被钱包找回控制的的资产转入到地址X
|
12 | 36 | - X对应的私钥未知,需要由地址A或B的私钥构造比特币脚本签名,进行资产操作
|
13 | 37 |
|
14 |
| -> 控制地址提取X资产 |
| 38 | +> 实时提取X资产 |
15 | 39 | - 控制地址A可以随时对X的资产进行提取,即构造发送方为X的原始转账交易
|
16 | 40 | - 交易需要采用比特币脚本类型签名, [相关rpc](README.md#chain33signwalletrecovertx)
|
17 | 41 | - 发送交易到链上执行
|
18 | 42 |
|
19 |
| -> 找回地址提取X资产 |
| 43 | +> 延时提取X资产 |
20 | 44 | - 找回地址B可以基于延时交易提取X的资产, 即构造发送方为X的原始转账交易tx1, 但tx1需要提交到链上并等待延时打包
|
21 | 45 | - 交易tx1需要采用比特币脚本类型签名, [相关rpc](README.md#chain33signwalletrecovertx)
|
22 | 46 | - 基于tx1, 相对延时T, 构造延时存证交易tx2,[构造方法](../../../dapp/none/README.md#延时存证交易)
|
|
33 | 57 | |字段名称 |类型|含义
|
34 | 58 | |---|---|---|
|
35 | 59 | |ctrPubKey|string|控制地址公钥, secp256k1算法, 16进制
|
36 |
| -|recoverPubKey|string|找回地址公钥, secp256k1算法, 16进制 |
| 60 | +|recoverPubKey|[]string|找回地址公钥数组, secp256k1算法, 16进制, 目前只支持两个地址,即数组长度为2 |
37 | 61 | |relativeDelayTime|int64|钱包找回相对延时时长, 单位秒
|
38 | 62 |
|
39 | 63 |
|
|
43 | 67 |
|
44 | 68 | |名称 |类型|含义
|
45 | 69 | |---|---|---|
|
46 |
| -|result|string|钱包找回地址 |
| 70 | +|result|string|脚本地址X |
47 | 71 |
|
48 | 72 |
|
49 | 73 |
|
|
0 commit comments