Qtum量子链研究院: MVP技术详解
sowangcom
发表于 2022-12-3 16:16:57
73
0
0
上期的内容我们分享了Qtum MVP的操作流程,有读者提出疑问该如何理解这些代码,今天就为大家分享MVP的技术详解。7 E1 d; H' Y8 }% @* m2 a4 {3 A6 S
Plasma MVP以一种非常简单的方式提供Plasma系统的基本安全特性。在Plasma MVP中,用户一旦发现任何不法行为就立即退出,用户的退出申请也是按照UTXOs被创建的时间从早到晚的优先级顺序处理。3 v) L2 C% f+ U; a; h- U8 [
Plasma区块链中,区块的创建方法有两种:一种是Plasma链的运营者可以创建区块;另一种是任何用户可以向Plasma链中存入一定资产,这种情况下,合约会在Plasma链上新增一个区块,该区块包含一个创建新的UTXO的交易,UTXO和用户存入资金的价值相等。# |0 Q4 s, p, Y) w/ E8 ?
. P# ?( m9 K- P7 t
3月在巴黎举行了以太坊社区会议(ETHCC),有来自世界各地的以太坊研究人员和爱好者参加。在三天的会议期间举行了多个讲座,有研究人员对Plasma MVP进行了更详细的讲解。本文借用ETHCC演讲者讲座上展示的PPT,对MVP系统如何正常工作以及怎样阻止用户的欺诈行为等进行简单说明。
1 k2 \ ]3 f/ X. I5 `% V1 \
Plasma区块创建% _: M! h+ j O6 x ` F" \
Plasma区块链运营者创建区块的过程如下(为了简单,所有的示例中均假设该Plasma链的父链即为根链):
(1) Plasma运营者创建Plasma区块;$ }+ O# D8 h, f$ ?, L& U
(2) 若Plasma区块还不包含在根链中,那么Plasma运营者发送一个Plasma区块创建交易到根链;
(3) 根链的矿工发现该Plasma区块创建交易,并在创建根链的区块时将该交易包含在区块中;
(4) Plasma链的区块确认被包含在根链的区块中,Plasma链区块即确认存在。' [ L4 f1 Z& S6 P9 G6 k' S, x0 O @
- f }: G+ b" D v. ]
# m' J$ V' N0 w, G9 o4 j
. W# }8 u4 X( b0 K7 U
用户向Plasma链中存入资金
用户想要使用Plasma链时,可以向Plasma链中存入资金,即将资金从根链转移到根链上部署的Plasma合约中。假设用户Sam有10个ETH,他要将5个ETH存入Plasma链中,Plasma链中的token名称为PETH,且ETH兑换PETH的比率为1:1,具体资金存入过程如下:- F& ?- I4 c7 v2 @
(1) 用户Sam在根链中发送一个交易,该交易声明Sam要将5个ETH存入Plasma合约;
(2) 根链中的矿工发现Sam发送的交易,并在创建根链的区块时将交易记录在区块中;
(3) 然后在Plasma链中会创建一个新的区块,该区块包含一笔交易,证明Sam拥有5个PETH。此时,Sam的资金变为5个ETH和5个PETH;) E6 G+ Q4 J# [- y4 K! ~8 K1 c
(4) Sam将资金存入Plasma链中,Sam就成为Plasma链的用户,为了保证自身财产的安全,Sam会时刻监视根链和Plasma链中的欺诈行为。
用户在Plasma链中的交易和余额更新
Sam当前资金为5个ETH和5个PETH。假设Plasma链中还存在用户Alice,Alice的资产为1个PETH。若Sam想发送2.5个PETH给Alice,具体的交易以及余额更新的过程如下:5 I$ w( z) N; q6 Y4 i8 x1 k
(1) Sam在Plasma链中发出一个交易,声明Sam将2.5个PETH发送给Alice;5 j, f! o. |6 I) l
(2) Plasma运营者创建一个区块,该区块将Sam的交易包含在内。此时,该Plasma区块还未被确认,Alice也还不能花费Sam发送给她的PETH;" i7 h% N1 O$ V: i: `3 R
(3) Plasma运营者将Plasma区块头哈希提交给根链;) W0 V( Q& G5 e2 O7 ]
(4) 根链的矿工接收到Plasma运营者提交的信息,并在创建根链的区块时将该信息包含在区块中;
(5) Sam观察到其交易在Plasma区块中且在根链中具有Plasma区块信息,此时Sam给Alice发送一个确认信息;$ V% t$ u& K* W7 z* u
(6) 最后,Sam和Alice的余额更新,Sam的余额变为5个ETH和2.5个PETH,Alice的余额为3.5个PETH。Alice可以花费Sam发送给她的PETH。 c1 s, B9 B1 Z8 Y; j3 E5 x6 \' N
: p1 P8 E& [9 c H4 N
阻止用户的欺诈行为, N. A$ c+ X% {: X2 c
4 ]0 d5 {& X& s0 g6 L6 S
假设Sam在将2.5个PETH发送给Alice,余额变为2.5个PETH后,在退出Plasma链时仍声称自己拥有5个PETH,那么Plasma链中的其他用户可以提供欺诈证明,阻止Sam取回5个PETH,具体过程如下:7 G) }+ c/ s4 G: X9 \8 x
(1) Sam发送一个退出交易给根链,希望退出Plasma链并声明自己拥有5个PETH。Sam需要给这笔交易附加一笔押金,且这笔交易具有一个挑战期;
(2) 根链中的矿工发现Sam发出的退出交易,并在创建根链的区块时将该交易包含在区块中;
(3) 由于Plasma链中的用户一直在监视根链和Plasma链的行为,Alice或其他诚实的节点会注意到根链中Sam的退出交易,并在挑战期内发起挑战;8 N0 V9 }8 p( W6 j6 U
(4) 挑战者需要在挑战期内向根链提供Sam的欺诈证明数据,该数据可以是某个交易的Merkle证明,且该交易可以表明Sam试图取出的资金已经被其花费掉了;
(5) 根链的矿工在创建根链新的区块时,将挑战者成功的挑战数据记录在区块中;# X! J* }4 x$ s! T
(6) 根链将Sam附加的押金奖励给挑战者,并取消Sam的退出交易。
成为第一个吐槽的人