OSDN Git Service

Add png dir
[bytom/vapor.git] / docs / vapor-docs / 0.1 / core / claim-tx.md
1 # claim交易
2
3 ​     主链是通过矿工挖矿产生资产,vapor侧链是通过claim交易产生资产,因此侧链上资产的源头都是claim交易。
4
5 ​     claim交易是资产从主链转移到侧链产生的交易,即在主链上锁定交易,在侧链上用claim交易生成侧链上的资产。
6
7 # 主链与侧链资产的转移逻辑
8
9 ### 侧链充值流程
10
11 ​     vapor侧链中验证人、收集人、联邦三个角色:
12
13 ​             验证人:侧链的出块人,任何人都可以成为验证人。
14
15 ​             收集人:监控主链锁定在联邦合约地址的交易,收集交易并生成claim交易,发送到节点验证人进行验证入交易池。
16
17 ​             联邦   : 侧链充值是指资产从主链转移到侧链的过程,转移过程,是需要资产先锁定到联邦合约地址。
18
19 ​     ![main2side](png/main2side.png)
20
21
22
23 ​     联邦合约地址生成:
24
25 ​     1、联邦合约地址需要7个联邦成员公钥生成,系统开始启动由初始出块人担任。
26
27 ​     2、运行一段时间后vapor侧链上用户可以注册为联邦成员候选人,由vapor侧链用户投票,从注册候选人中选出联邦成员,每次联邦成员变动不能超          过联盟成员的1/3
28
29 ​     3、选出联邦成员后,由新的联邦成员生成新的合约地址,以前的联邦合约地址转账到新的联邦合约地址。
30
31 ​     4、转账完成后,主链锁定资产到新的联邦地址,以后可以再竞选联邦成员。
32
33 ​     
34
35 ​     收集人:
36
37 ​     1、系统启动之时,由初始出块人担任。
38
39 ​     2、运行一段时间后,vapor侧链上用户可以注册成为候选人收集人,由vapor侧链用户投票,从注册的候选人中选出收集人(dpos出块一轮筛选一次)
40
41 ​     3、下发新的监控主链的联邦合约地址的收集人,收集交易,并附带收集人列表、收集人签名、原始交易、收集人公钥的claim交易到节点
42
43
44
45 ​     注:成为验证人、收集人、联邦在侧链都需要质押一定数量的btm
46
47 ### 侧链提现流程
48
49 ​     1、vapor侧链用户发起提现请求,销毁vapor侧链的资产
50
51 ​     2、联邦合约地址针对请求向vapor侧链用户的主链地址发送对应对应数量的资产(前提交易已经在侧链上达到不会回滚的确认数)
52
53 ​     3、联邦在侧链上生成一笔完成提现的操作的交易
54
55
56
57 # claim交易
58
59 1、claim交易输入
60
61 - 增加ClaimInput的输入类型,也是vapor侧链上资产产生源头,主要用于处理资产从主链到侧链的转移。
62
63 - TxInput结构作用增加字段Peginwitness
64
65   ​   Peginwitness保存了主链的源交易信息,用于其他节点收到交易时做验证。
66
67   ​   内容如下(字段序列化后依次放入Peginwitness):
68
69   ​   amount + ParentGenesisBlockHash + claimScript + rawTx + merkleBlock
70
71 - 生成claim交易输入,并根据主链交易、proof生成Peginwitness
72
73 2、签名交易
74
75 ​     签名交易是对claim交易的签名。
76
77 3、提交交易
78
79 ​     提交交易是要进入交易池,以及广播交易给其他节点。
80
81 ​     在入交易池前以及处理block过程的交易验证的时候,claim交易验证是对输入中的claim输入与Peginwitness的信息匹配做验证(验证主链交易信息,以及生成的claim输入有没恶意行为),类似工作量证明。