WormholeContracts 一种新跨链方案
茹蕙zx
发表于 2022-11-30 14:26:51
128
0
0
+ @: W0 U* t+ x) E: S. e
目前以太坊上最去中心化的比特币锚定币是tBTC。# ]) P5 ~' W. N/ b% q
tBTC系统内的关键角色是验证人,每次铸币都有3个验证人被随机选中,验证人必须提供价值1.5个比特币的ETH作为质押品。通过门限签名方案保证没有人能单独控制抵押品,必须3个签署者一致行动才能控制比特币。
我们可以看到,每个tBTC需要250%资产抵押才能发行。我们能否设计一个方案,拥有tBTC的去中心化程度和安全性,同时大大降低质押率呢?! W) o A0 C- F$ C0 N
二、虫洞合约& J# O( n, N4 [
设现有A链和B链,它们都支持智能合约。现要将A链上的A币跨链到B链上去。
, v" k' N/ n7 H4 l* H" K
在A链上部署一个智能合约A,在B链上部署一个智能合约B,A合约和B合约是成对的智能合约。跨链的基本过程就是:将A币发送到A合约,然后从B合约相应地铸造出锚定币tAtoken。反向跨链也是类似的,将tAtoken发送到B合约中销毁,然后从A合约中提取A币。
+ q; S1 h1 K- ?- a
这个设计的关键就是怎样在B链上证明有A币发送到了A合约,以及怎样在A链上证明有tAtoken发送到了B合约。
! I1 n P+ |+ n* o4 @; X7 B! n
首先,规定基准罚金。A链上的基准罚金为a个A币,B链上的基准罚金为b个B币,a个A币与b个B币的价值应当大概相等。A链和B链上有相应的验证人。A链和B链的验证人相对独立,A链上的验证人不必是B链上的验证人,同样B链上的验证人不必是A链上的验证人。验证人可以自由加入和自由退出。" V2 A% L8 h0 @
1 h: N3 ]) w' [: O+ j
验证人有三个级别:初级验证人、中级验证人和高级验证人。
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币。1 s3 {( |) \1 I) z* c
: S* @8 ~; R' Z0 P. [! I% H
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币。, h' h3 R$ \& f
一般而言,验证人质押的保证金越多、处理的事务量越少,可信度就越高。也就是说,我们可以通过牺牲效率来换取安全性。因此,我们需要设立这样三种级别的验证人,对应不同的效率和安全性。
A链上的(初级、中级、高级)验证人加入:$ f( S* j( E' t' _ f% R
1.交易者在A合约发送不少于(初级为2.1a、中级为21a、高级为210a)个A币作为保证金,同时交易包含交易者在B链的地址。! J2 K! h+ Q8 }' u u4 b z6 @
2.交易者需要在B链上由前面交易中指定的地址向B合约发送若干B币作为保证金,使保证金不少于(初级为1.1b、中级为11b、高级为110b)个B币,其中(初级为0.1b、中级为b、高级为10b)个B币为备用的验证手续费,同时交易包含步骤1发送的交易的完整内容。: a7 U2 o7 `/ Z1 j# P+ t0 g
3.如果当前没有不少于3名同级或至少1名更高一级的有效验证人(限中级、高级验证人加入流程),转到步骤4(如果该步骤没有被冻结)。如果当前有更高一级的有效验证人(限低级、中级验证人加入流程),转到步骤5。如果当前有不少于3名同级别的有效验证人,转到步骤6。如果以上三个步骤的条件都不满足,那么将等待直到满足其中一个条件。
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。+ `# X8 x! T+ R5 L4 F. Q
' z' E6 [$ f3 C/ E
5.B合约自动分配一个高一级的验证人来负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。如果验证人表示支持,那么验证人将从保证金中获得(低级为0.1b、中级为b)个B币作为验证手续费;如果验证人表示反对,那么验证人将从保证金中获得(低级为1.1b、中级为11b)作为惩罚。如果验证人在被分配到任务后24小时内没有处理该业务,那么这个验证人将被罚没(低级为1b、中级为10b)个B币补偿给交易者作为怠惰的惩罚。转到步骤7。
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。
7.当验证人完成一笔交易的验证工作后,验证权力将被暂时冻结,中级验证人被冻结10天,高级验证人被冻结50天。
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币。
0 F3 C) [) A" }0 `+ w
9.如果交易被批准,那么交易者将在(初级为2天、中级为10天、高级为50天)后获得(初级、中级、高级)验证人资格。如果交易被否决,那么交易者仍然可以继续提交交易直到被批准。# p1 @, b- X5 J& ]" a8 N" p
7 [5 W2 C! R6 l1 ^! e
A链上的(初级、中级、高级)验证人失去资格:1 Q6 d2 {8 J/ M: f- p
当验证人在A链上的保证金少于(初级为2.1a、中级为21a、高级为210a)个A币或者在B链上的保证金少于(初级为b、中级为10b、高级为100b)个B币时,验证人将失去资格。后一个条件能够通过B合约自动验证,但是前一个条件需要跨链验证。# o0 f& l7 k7 }- T9 O
1.在A链的某一个区块上,验证人在A合约上的保证金少于(初级为2.1a、中级为21a、高级为210a)个A币。
$ o8 M5 I1 z! C
2.交易者在B链上向B合约发送(初级为b、中级为10b、高级为100b)个B币作为保证金,同时交易包含验证人在A合约上的保证金少于(初级为2.1a、中级为21a、高级为210a)个A币时的区块的哈希值和时间戳、交易者在A链上的接收地址。当挑战交易在区块链上被确认时,验证人的权限将被暂时冻结。" f' L, C! b- U9 V6 K$ a
3 \ m+ X: b9 w: u
3.如果当前没有不少于3名同级或至少1名更高一级的有效验证人(限中级、高级验证人加入流程),转到步骤4(如果该步骤没有被冻结)。如果当前有更高一级的有效验证人(限低级、中级验证人加入流程),转到步骤5。如果当前有不少于3名同级别的有效验证人,转到步骤6。如果以上三个步骤的条件都不满足,那么将等待直到满足其中一个条件。
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。
5.B合约自动分配一个高一级的验证人来负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤2中的区块的哈希值和时间戳+交易者在A链上的接收地址+“Y”或“N”作的消息签名。如果验证人表示支持,那么验证人将从保证金中获得(低级为0.1b、中级为b)个B币作为验证手续费,剩余保证金被退回;如果验证人表示反对,那么验证人将从保证金中获得(低级为b、中级为10b)作为惩罚。如果验证人在被分配到任务后24小时内没有处理该业务,那么这个验证人将被罚没(低级为b、中级为10b)个B币补偿给交易者作为怠惰的惩罚。转到步骤7。
+ K$ Z& ?0 F; D3 B2 p6 Q v
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。
7.当验证人完成一笔交易的验证工作后,验证权力将被暂时冻结(初级为2天、中级为10天、高级为50天)。# q$ b" p/ w7 g
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币。8 y7 \- ~5 p9 x: |" w/ b
/ x% [& ^2 Y) ?2 r4 W, D
9.如果交易被批准,那么验证人将立即失去验证人资格。如果交易被否决,那么验证人将在被冻结权力后不少于(初级为2天、中级为10天、高级为50天)后恢复被冻结的权力。1 I, t! ~9 B0 S
A链上的(初级、中级、高级)验证人退出:& s- h- C K/ A4 E N: F' V8 _. [% Y
1.验证人在B链上向B合约发送退出交易,验证人的权力将被立即冻结(不是取消),验证人在B合约中的保证金将在(初级为2天、中级为10天、高级为50天)后退回(保证金被退回时被自动取消资格)。8 u: J' w3 S' B) O! h! X& S
2.验证人在取回B合约中的保证金后,在A链上向A合约发送退出交易,验证人在A合约中的保证金将在(初级为2天、中级为10天、高级为50天)后退回。* c3 d* A% u0 r0 X8 k/ K
2 }: H; }% ?4 _( D' c8 A
A币跨链到B链:
/ d+ g+ ~/ Z% j3 {7 b7 N6 Y
1.交易者在A链上向A合约发送跨链交易,交易包含0.5a~a个A币、交易者在B链的接收地址。% W& R3 v5 I6 F& ^# e5 d
( K8 W8 ]0 o s& f% ]
2.交易者在B链上向B合约发送0.1b个B币作为保证金,同时交易包含作为验证手续费的B币数量、步骤1发送的交易的完整内容。
3.步骤2发送的交易在区块链上确认后由经B合约验证通过的A链上的初级验证人负责验证。验证人需要向B合约发送验证交易,交易包含步骤2发送的交易的哈希值、“Y”或“N”(Y表示支持,N表示反对)、验证人用私钥对步骤1发送的交易+“Y”或“N”作的消息签名。当有多个验证人在24小时内对同一笔交易作验证时,如果多个验证人的验证结论相同,则以区块链上确认的第一条验证信息为准;如果多个验证人的验证结论不同,则交易被否决同时退回交易者的保证金。交易被验证后,如果验证人支持某笔交易,那么该验证人将收取一笔小额B币作为手续费同时批准该交易,剩余保证金将被退回;如果验证人反对某笔交易,那么交易者将被收取保证金同时否决该笔交易。9 z1 X0 Q: e' P. {0 J2 \
' }% Q! A( t- w! V/ }
4.当验证人完成一笔交易的验证工作后,相应的验证一笔交易的权力将被暂时冻结48小时。
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币。$ @. X$ M6 F J; G3 y
6.如果交易被被批准,那么交易者会收到B合约增发的相同数量的tAtoken。如果交易被否决,那么交易者仍然可以继续提交交易直到被批准。- O& {' A8 Z6 e+ H2 g# [
跨链验证工作只能由初级验证人完成,中级、高级验证人只负责验证人的资格审核工作。由于中级、高级验证人的业务范围及处理业务的效率被严格限制,他们可能会面临收入不足的问题。因此,我们需要对下级验证人征税来供养上级验证人。初级验证人每天会从保证金中被征收0.00017b个B币作为中级验证人的基本收入,中级验证人每天会从保证金中被征收0.0017b个B币作为高级验证人的基本收入,被征收的税款将由各级验证人平均分配。+ J/ F# u2 w% l0 [2 j, o; u
为了节省矿工费,也可以将多个验证人的多笔验证信息放到同一笔验证交易中,也可以由多个验证人对同一个信息作联合签名。
Y0 l0 H4 n' `7 P ~, j- N
由于虫洞合约方案只需要验证人作质押,所以该方案可以大大降低质押率。
成为第一个吐槽的人