Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

WormholeContracts 一种新跨链方案

茹蕙zx
134 0 0
一、现有的方案
: k3 a, [6 b( y& Z2 s' D, B2 Q2 |& S' b/ e1 ^) y" f4 |
    目前以太坊上最去中心化的比特币锚定币是tBTC。
: M, g3 _# ^* x9 n4 E
4 C. T' r4 |' Q3 N1 x1 a    tBTC系统内的关键角色是验证人,每次铸币都有3个验证人被随机选中,验证人必须提供价值1.5个比特币的ETH作为质押品。通过门限签名方案保证没有人能单独控制抵押品,必须3个签署者一致行动才能控制比特币。: G4 G9 _# m& u! c
9 i* R9 B* b2 Q: P! R3 i
    我们可以看到,每个tBTC需要250%资产抵押才能发行。我们能否设计一个方案,拥有tBTC的去中心化程度和安全性,同时大大降低质押率呢?) {9 c$ \' A- f% s8 ^8 ^; w

0 q8 N# e" o2 P0 Z- B" d4 e2 \    二、虫洞合约8 f1 Z& z( F8 i

# F4 B: K4 j$ n4 D1 S' F    设现有A链和B链,它们都支持智能合约。现要将A链上的A币跨链到B链上去。
( u* Z% Q& s* q6 J
# J( J9 M- h' p' |    在A链上部署一个智能合约A,在B链上部署一个智能合约B,A合约和B合约是成对的智能合约。跨链的基本过程就是:将A币发送到A合约,然后从B合约相应地铸造出锚定币tAtoken。反向跨链也是类似的,将tAtoken发送到B合约中销毁,然后从A合约中提取A币。
3 j: B/ ?9 b9 G8 d- S; R2 C/ V$ z. N9 X. K1 d! I
    这个设计的关键就是怎样在B链上证明有A币发送到了A合约,以及怎样在A链上证明有tAtoken发送到了B合约。
2 F6 I  t7 B5 \4 i" K' V5 l8 b/ _6 d4 Z
    首先,规定基准罚金。A链上的基准罚金为a个A币,B链上的基准罚金为b个B币,a个A币与b个B币的价值应当大概相等。A链和B链上有相应的验证人。A链和B链的验证人相对独立,A链上的验证人不必是B链上的验证人,同样B链上的验证人不必是A链上的验证人。验证人可以自由加入和自由退出。
$ _+ P5 i4 }  ~9 O2 h  t3 g7 u/ P' U  T6 ]& }! I
    验证人有三个级别:初级验证人、中级验证人和高级验证人。
0 j0 W; H3 o% S/ n1 e# E
9 U0 A* }2 W/ c; q4 D, G2 p! O7 N# ?    A链上的初级验证人需要在A链上向A合约质押不少于2.1a个A币,在B链上向B合约质押不少于b个B币。A链上的中级验证人需要在A链上向A合约质押不少于21a个A币,在B链上向B合约质押不少于10b个B币。A链上的高级验证人需要在A链上向A合约质押不少于210a个A币,在B链上向B合约质押不少于100b个B币。& w9 D' O5 q+ f
% Y! R  F7 F0 [4 q$ O2 M/ B# G
    B链上的初级验证人需要在B链上向B合约质押不少于2.1b个B币,在A链上向A合约质押不少于a个A币。B链上的中级验证人需要在B链上向B合约质押不少于21b个B币,在A链上向A合约质押不少于10a个A币。B链上的高级验证人需要在B链上向B合约质押不少于210b个B币,在A链上向A合约质押不少于100a个A币。
; Q  v% x* j/ `
/ S+ X2 `' m2 g7 H" r. g    一般而言,验证人质押的保证金越多、处理的事务量越少,可信度就越高。也就是说,我们可以通过牺牲效率来换取安全性。因此,我们需要设立这样三种级别的验证人,对应不同的效率和安全性。
; e7 C( O8 k, n6 k
7 d+ _2 }1 {+ ^    A链上的(初级、中级、高级)验证人加入:
& }  h0 w+ D# V4 v6 z- @% n3 z4 q0 p9 J
    1.交易者在A合约发送不少于(初级为2.1a、中级为21a、高级为210a)个A币作为保证金,同时交易包含交易者在B链的地址。4 I8 F, N6 p& f$ o; S* r6 t
/ x" K- {  d7 t+ t" Y
    2.交易者需要在B链上由前面交易中指定的地址向B合约发送若干B币作为保证金,使保证金不少于(初级为1.1b、中级为11b、高级为110b)个B币,其中(初级为0.1b、中级为b、高级为10b)个B币为备用的验证手续费,同时交易包含步骤1发送的交易的完整内容。8 [2 b" z- H  s
$ q. ~0 c! M4 w/ Y
    3.如果当前没有不少于3名同级或至少1名更高一级的有效验证人(限中级、高级验证人加入流程),转到步骤4(如果该步骤没有被冻结)。如果当前有更高一级的有效验证人(限低级、中级验证人加入流程),转到步骤5。如果当前有不少于3名同级别的有效验证人,转到步骤6。如果以上三个步骤的条件都不满足,那么将等待直到满足其中一个条件。
( B- ?! t- e! Q6 {/ {; F, \6 ~
+ q, y& B+ G8 G; D    4.步骤2发送的交易在区块链上确认后将强制由经B合约验证通过的A链上的所有下一级验证人(不受验证权力被冻结影响)负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。当有2/3以上且不少于3名参与验证的验证人支持时交易将被批准,(中级为b、高级为10b)个B币将被平均分给所有选择支持的验证人。当有2/3以上且不少于3名的验证人反对时交易将被否决,(中级为11b、高级为110b)个B币将被平均分给所有选择反对的验证人。如果选择支持和选择反对的验证人都没有超过2/3或验证人总数少于3名,交易将被否决,(中级为b、高级为10b)个B币将被平均分给所有参与验证的验证人。如果有验证人在24小时内没有处理该业务,那么这个验证人将被罚没(中级为0.1b、高级为b)个B币补偿给交易者作为怠惰的惩罚。该步骤被实施后将有(中级为10天,高级为50天)的冻结期,冻结期内不能再次实施该步骤。转到步骤8。: N! v  ~* `# b
! {0 s- O% b9 w+ j
    5.B合约自动分配一个高一级的验证人来负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。如果验证人表示支持,那么验证人将从保证金中获得(低级为0.1b、中级为b)个B币作为验证手续费;如果验证人表示反对,那么验证人将从保证金中获得(低级为1.1b、中级为11b)作为惩罚。如果验证人在被分配到任务后24小时内没有处理该业务,那么这个验证人将被罚没(低级为1b、中级为10b)个B币补偿给交易者作为怠惰的惩罚。转到步骤7。
, C4 T- o  D" \4 l0 R
& `/ n3 W4 f! k) d    6.B合约自动分配3~10名同级的验证人来负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。当有2/3以上且不少于3名参与验证的验证人支持时交易将被批准,(初级为0.1b、中级为b、高级为10b)个B币将被平均分给所有选择支持的验证人。当有2/3以上且不少于3名的验证人反对时交易将被否决,(初级为1.1b、中级为11b、高级为110b)个B币将被平均分给所有选择反对的验证人。如果选择支持和选择反对的验证人都没有超过2/3或验证人总数少于3名,交易将被否决,(初级为0.1b、中级为b、高级为10b)个B币将被平均分给所有参与验证的验证人。如果验证人在被分配到任务后24小时内没有处理该业务,那么这个验证人将被罚没(初级为0.1b、中级为b、高级为10b)个B币补偿给交易者作为怠惰的惩罚。转到步骤7。
8 p. S' H# c! v
& X6 `( X7 F  n! i3 Y% _, T    7.当验证人完成一笔交易的验证工作后,验证权力将被暂时冻结,中级验证人被冻结10天,高级验证人被冻结50天。" _- J/ Z8 `" |  ?2 G+ h8 |5 O: [# ?5 f0 X

8 l4 b% \- c/ p7 {+ g    8.如果交易被验证人支持或反对,那么任何人都有权在A链上对验证人发起挑战。挑战者可以向A合约发送举报交易,交易包含步骤1发送的交易的哈希值(如果交易在A链上不存在,则需要包含完整交易)、验证人的地址、“Y”或“N”(Y表示验证人选择支持,N表示验证人选择反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。举报交易将由A合约自动验证,验证通过后挑战者将从验证人的保证金中获得(初级为0.1a、中级为a、高级为10a)个A币作为奖励;如果举报交易中的验证人选择支持,那么验证人将被A合约罚没(初级为2a、中级为20a、高级为200a)个A币;如果举报交易中的验证人选择反对,交易者将从验证人的保证金中获得(初级为a、中级为10a、高级为100a)个A币作为补偿,验证人将被A合约罚没(初级为a、中级为10a、高级为100a)个A币。
- G  U4 {9 x( z* L2 r4 J
- a" j& G& S  S% e# T) k6 w    9.如果交易被批准,那么交易者将在(初级为2天、中级为10天、高级为50天)后获得(初级、中级、高级)验证人资格。如果交易被否决,那么交易者仍然可以继续提交交易直到被批准。
9 ]6 p, m) O, f" I* q0 x/ `( l$ d7 `* Y$ r1 ^9 g( S: [- t
    A链上的(初级、中级、高级)验证人失去资格:3 Q; g! E1 X; G4 ?

- b8 K6 G  D1 J: z, f. V    当验证人在A链上的保证金少于(初级为2.1a、中级为21a、高级为210a)个A币或者在B链上的保证金少于(初级为b、中级为10b、高级为100b)个B币时,验证人将失去资格。后一个条件能够通过B合约自动验证,但是前一个条件需要跨链验证。$ G7 a. Y3 y( z/ ?- S( Q% l! H
0 p' l8 }5 p# Z! a3 H7 L4 t' z
    1.在A链的某一个区块上,验证人在A合约上的保证金少于(初级为2.1a、中级为21a、高级为210a)个A币。
/ i' B0 a. _1 }1 ?+ Y# B5 x; ^% ^/ j, E
    2.交易者在B链上向B合约发送(初级为b、中级为10b、高级为100b)个B币作为保证金,同时交易包含验证人在A合约上的保证金少于(初级为2.1a、中级为21a、高级为210a)个A币时的区块的哈希值和时间戳、交易者在A链上的接收地址。当挑战交易在区块链上被确认时,验证人的权限将被暂时冻结。9 a/ h$ i) _: [7 u

% O+ P. y% @9 [" v* a. Y4 B    3.如果当前没有不少于3名同级或至少1名更高一级的有效验证人(限中级、高级验证人加入流程),转到步骤4(如果该步骤没有被冻结)。如果当前有更高一级的有效验证人(限低级、中级验证人加入流程),转到步骤5。如果当前有不少于3名同级别的有效验证人,转到步骤6。如果以上三个步骤的条件都不满足,那么将等待直到满足其中一个条件。
' s+ x" f( }. e& y0 b0 t( x$ q8 u# s2 Q$ N! ]- X
    4.步骤2发送的交易在区块链上确认后将强制由经B合约验证通过的A链上的所有下一级验证人(不受验证权力被冻结影响)负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤2中的区块的哈希值和时间戳+交易者在A链上的接收地址+“Y”或“N”作的消息签名。当有2/3以上且不少于3名参与验证的验证人支持时交易将被批准,(中级为b、高级为10b)个B币将被平均分给所有选择支持的验证人,剩余保证金被退回。当有2/3以上且不少于3名的验证人反对时交易将被否决,(中级为10b、高级为100b)个B币将被平均分给所有选择反对的验证人。如果选择支持和选择反对的验证人都没有超过2/3或验证人总数少于3名,交易将被否决,(中级为b、高级为10b)个B币将被平均分给所有参与验证的验证人,剩余保证金被退回。如果有验证人在24小时内没有处理该业务,那么这个验证人将被罚没(中级为0.1b、高级为b)个B币补偿给交易者作为怠惰的惩罚。转到步骤8。* s9 m. Q* ~) X) t
% s" O& P2 I- z3 @; d1 P; q
    5.B合约自动分配一个高一级的验证人来负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤2中的区块的哈希值和时间戳+交易者在A链上的接收地址+“Y”或“N”作的消息签名。如果验证人表示支持,那么验证人将从保证金中获得(低级为0.1b、中级为b)个B币作为验证手续费,剩余保证金被退回;如果验证人表示反对,那么验证人将从保证金中获得(低级为b、中级为10b)作为惩罚。如果验证人在被分配到任务后24小时内没有处理该业务,那么这个验证人将被罚没(低级为b、中级为10b)个B币补偿给交易者作为怠惰的惩罚。转到步骤7。. W, a- V6 y; K# C
6 X. k8 `" V( P$ ]
    6.B合约自动分配3~10名同级的验证人来负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤2中的区块的哈希值和时间戳+交易者在A链上的接收地址+“Y”或“N”作的消息签名。当有2/3以上且不少于3名参与验证的验证人支持时交易将被批准,(初级为0.1b、中级为b、高级为10b)个B币将被平均分给所有选择支持的验证人,剩余保证金被退回。当有2/3以上且不少于3名的验证人反对时交易将被否决,(初级为b、中级为10b、高级为100b)个B币将被平均分给所有选择反对的验证人。如果选择支持和选择反对的验证人都没有超过2/3或验证人总数少于3名,交易将被否决,(初级为0.1b、中级为b、高级为10b)个B币将被平均分给所有参与验证的验证人,剩余保证金被退回。如果验证人在被分配到任务后24小时内没有处理该业务,那么这个验证人将被罚没(初级为0.1b、中级为b、高级为10b)个B币补偿给交易者作为怠惰的惩罚。转到步骤7。
1 z/ m. j. b# q  i# m1 J$ _6 {- b3 ~1 r+ Z1 n+ X& V
    7.当验证人完成一笔交易的验证工作后,验证权力将被暂时冻结(初级为2天、中级为10天、高级为50天)。
) R- A$ s9 d' K7 v+ t8 G
* _+ S( i6 i" a    8.如果交易被验证人支持或反对,那么任何人都有权在A链上对验证人发起挑战。挑战者可以向A合约发送举报交易,交易包含步骤2中的区块的哈希值和时间戳、交易者在A链上的接收地址、验证人的地址、“Y”或“N”(Y表示验证人选择支持,N表示验证人选择反对)、验证人用私钥对步骤2中的区块的哈希值和时间戳+交易者在A链上的接收地址+“Y”或“N”作的消息签名。举报交易将由A合约自动验证,验证通过后挑战者将从验证人的保证金中获得(初级为0.1a、中级为a、高级为10a)个A币作为奖励;如果举报交易中的验证人选择支持,那么验证人将被A合约罚没(初级为2a、中级为20a、高级为200a)个A币;如果举报交易中的验证人选择反对,交易者将从验证人的保证金中获得(初级为a、中级为10a、高级为100a)个A币作为补偿,验证人将被A合约罚没(初级为a、中级为10a、高级为100a)个A币。" [) I/ }& s$ }" g' S& G& ~
5 @( f* J2 _" N
    9.如果交易被批准,那么验证人将立即失去验证人资格。如果交易被否决,那么验证人将在被冻结权力后不少于(初级为2天、中级为10天、高级为50天)后恢复被冻结的权力。3 N0 |$ j! u! `+ {* G  U$ U
9 F# E# V) j# ]& {' u( f
    A链上的(初级、中级、高级)验证人退出:4 U2 J" M5 b5 ?: p) U
" ?7 n* a' U- ~  ~# F  H
    1.验证人在B链上向B合约发送退出交易,验证人的权力将被立即冻结(不是取消),验证人在B合约中的保证金将在(初级为2天、中级为10天、高级为50天)后退回(保证金被退回时被自动取消资格)。; e5 r" S7 b: m
" Q8 I& d8 A6 y7 }! L+ }
    2.验证人在取回B合约中的保证金后,在A链上向A合约发送退出交易,验证人在A合约中的保证金将在(初级为2天、中级为10天、高级为50天)后退回。
1 a: y1 \3 c' z7 N* o3 `8 i' `/ w
& l( ]2 N6 x& U: a9 V9 N/ K6 ~! r3 Z    A币跨链到B链:6 T9 o; v+ O- \; A% j5 r
5 K& l7 z% [: G  }; I8 w9 m& @2 P
    1.交易者在A链上向A合约发送跨链交易,交易包含0.5a~a个A币、交易者在B链的接收地址。
; R  e: q8 i- ^$ y. U+ D+ ~9 L, t2 Y% e9 B
    2.交易者在B链上向B合约发送0.1b个B币作为保证金,同时交易包含作为验证手续费的B币数量、步骤1发送的交易的完整内容。9 d' {8 g5 R" y7 ~
" t6 n( f4 i& u) {
    3.步骤2发送的交易在区块链上确认后由经B合约验证通过的A链上的初级验证人负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。当有多个验证人在24小时内对同一笔交易作验证时,如果多个验证人的验证结论相同,则以区块链上确认的第一条验证信息为准;如果多个验证人的验证结论不同,则交易被否决同时退回交易者的保证金。交易被验证后,如果验证人支持某笔交易,那么该验证人将收取一笔小额B币作为手续费同时批准该交易,剩余保证金将被退回;如果验证人反对某笔交易,那么交易者将被收取保证金同时否决该笔交易。! w# J% X2 [" t; i) g
2 e& k. @3 h2 ^' L/ I: Y2 {; l
    4.当验证人完成一笔交易的验证工作后,相应的验证一笔交易的权力将被暂时冻结48小时。5 w7 f/ N- B% e0 l) ^
. a7 u- }4 X9 ?$ |
    5.如果交易被验证人支持或反对,那么任何人都有权在A链上对验证人发起挑战。挑战者可以向A合约发送举报交易,交易包含步骤1发送的交易的哈希值(如果交易在A链上不存在,则需要包含完整交易)、验证人的地址、“Y”或“N”(Y表示验证人选择支持,N表示验证人选择反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。举报交易将由A合约自动验证,验证通过后挑战者将从验证人的保证金中获得0.1a个A币作为奖励;如果举报交易中的验证人选择支持,那么验证人将被A合约罚没2a个A币;如果举报交易中的验证人选择反对,交易者将从验证人的保证金中获得0.1a个A币作为补偿,验证人将被A合约罚没a个A币。/ o3 J' R5 {7 ?- j! s3 I4 }7 z5 B

0 S9 n; z. s9 h. U5 C    6.如果交易被被批准,那么交易者会收到B合约增发的相同数量的tAtoken。如果交易被否决,那么交易者仍然可以继续提交交易直到被批准。" e- m1 ~' F. ?% z4 Y& y( I- x

# k2 h! p: [; c6 W; i. q    跨链验证工作只能由初级验证人完成,中级、高级验证人只负责验证人的资格审核工作。由于中级、高级验证人的业务范围及处理业务的效率被严格限制,他们可能会面临收入不足的问题。因此,我们需要对下级验证人征税来供养上级验证人。初级验证人每天会从保证金中被征收0.00017b个B币作为中级验证人的基本收入,中级验证人每天会从保证金中被征收0.0017b个B币作为高级验证人的基本收入,被征收的税款将由各级验证人平均分配。+ r8 t) z; C: @7 e( x5 D. ]
3 }. b/ @1 X* ^
    为了节省矿工费,也可以将多个验证人的多笔验证信息放到同一笔验证交易中,也可以由多个验证人对同一个信息作联合签名。8 t% x# j" n, P5 m, N

2 G% @: j( T/ o2 F2 Z# {    由于虫洞合约方案只需要验证人作质押,所以该方案可以大大降低质押率。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

茹蕙zx 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    26