Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

Qtum量子链研究院: MVP技术详解

sowangcom
70 0 0
Minimal Viable Plasma
9 T- N( d0 A. v) l* i# i# ?上期的内容我们分享了Qtum MVP的操作流程,有读者提出疑问该如何理解这些代码,今天就为大家分享MVP的技术详解。
0 ^/ c. P/ Q! F- D  l8 }9 j( f" K5 p; T; G9 t% D
Plasma MVP以一种非常简单的方式提供Plasma系统的基本安全特性。在Plasma MVP中,用户一旦发现任何不法行为就立即退出,用户的退出申请也是按照UTXOs被创建的时间从早到晚的优先级顺序处理。2 _, m+ s& j! Q3 O% F7 V$ _0 ~6 p

) C) t8 j1 ]# D3 vPlasma区块链中,区块的创建方法有两种:一种是Plasma链的运营者可以创建区块;另一种是任何用户可以向Plasma链中存入一定资产,这种情况下,合约会在Plasma链上新增一个区块,该区块包含一个创建新的UTXO的交易,UTXO和用户存入资金的价值相等。; B) f8 J5 e& u& T; c! s2 S% m
% E9 @" z1 }& k9 Q. X. l7 T
3月在巴黎举行了以太坊社区会议(ETHCC),有来自世界各地的以太坊研究人员和爱好者参加。在三天的会议期间举行了多个讲座,有研究人员对Plasma MVP进行了更详细的讲解。本文借用ETHCC演讲者讲座上展示的PPT,对MVP系统如何正常工作以及怎样阻止用户的欺诈行为等进行简单说明。$ d: f9 W$ w4 g4 K% r# x
- n+ ]. t' v4 Y% f7 {7 L
Plasma区块创建8 l1 Q8 i7 t) i% I! y$ h) @) v
1 q# a+ D5 _) U" [+ T. q' k& k
Plasma区块链运营者创建区块的过程如下(为了简单,所有的示例中均假设该Plasma链的父链即为根链):
5 i5 J2 G- K* g$ F* O9 E1 R% l(1) Plasma运营者创建Plasma区块;
1 c- j2 t7 D! c+ ~8 Q(2) 若Plasma区块还不包含在根链中,那么Plasma运营者发送一个Plasma区块创建交易到根链;* ], y8 f: E  t( j; k# z* u* r( J
(3) 根链的矿工发现该Plasma区块创建交易,并在创建根链的区块时将该交易包含在区块中;
9 m/ {0 x' O, w(4)  Plasma链的区块确认被包含在根链的区块中,Plasma链区块即确认存在。& ]7 @. D& {8 t9 ~# J+ ?* V

" X% p" f0 z+ c3 O- k$ _9 e4 j7 m, x
0 Y% N* P3 E! k7 t: M. t4 ]
1 S6 m8 S! ^$ u5 p/ q% z
7 \/ F: {9 I- t3 W- {+ d; Y: o# }& I

& a/ e: s7 H, Y1 ^1 U. S  用户向Plasma链中存入资金$ E5 e) o5 u2 l3 l; y- s! d2 ~
用户想要使用Plasma链时,可以向Plasma链中存入资金,即将资金从根链转移到根链上部署的Plasma合约中。假设用户Sam有10个ETH,他要将5个ETH存入Plasma链中,Plasma链中的token名称为PETH,且ETH兑换PETH的比率为1:1,具体资金存入过程如下:6 Y& `7 p8 `' b( E
(1)       用户Sam在根链中发送一个交易,该交易声明Sam要将5个ETH存入Plasma合约;5 }1 E( N/ `$ i9 ?6 {3 W
(2)       根链中的矿工发现Sam发送的交易,并在创建根链的区块时将交易记录在区块中;6 c9 y) t, H5 J! y9 t. Q
(3)       然后在Plasma链中会创建一个新的区块,该区块包含一笔交易,证明Sam拥有5个PETH。此时,Sam的资金变为5个ETH和5个PETH;
0 @& `# N+ o5 V; T' T(4)       Sam将资金存入Plasma链中,Sam就成为Plasma链的用户,为了保证自身财产的安全,Sam会时刻监视根链和Plasma链中的欺诈行为。: a. x' o1 H; G5 D7 M, A

8 y) D9 V5 x) N5 E: j
% l/ |1 l' L, U6 @( q3 E3 B1 i( u' N" B0 A" w- l

8 C8 O2 d' D; }" c7 ?. h用户在Plasma链中的交易和余额更新+ k0 @% h3 ~2 P
Sam当前资金为5个ETH和5个PETH。假设Plasma链中还存在用户Alice,Alice的资产为1个PETH。若Sam想发送2.5个PETH给Alice,具体的交易以及余额更新的过程如下:* d; p/ T, a1 N3 D( G* k
(1)       Sam在Plasma链中发出一个交易,声明Sam将2.5个PETH发送给Alice;! [9 f+ Q% K, c' e8 Z2 D
(2)       Plasma运营者创建一个区块,该区块将Sam的交易包含在内。此时,该Plasma区块还未被确认,Alice也还不能花费Sam发送给她的PETH;! M4 Y3 [& x! u  w5 K/ M2 A8 U( U
(3)       Plasma运营者将Plasma区块头哈希提交给根链;
, @4 Z# D  J: K0 L" s(4)       根链的矿工接收到Plasma运营者提交的信息,并在创建根链的区块时将该信息包含在区块中;
8 [' r' P+ Q8 N; F# L9 j" C/ `$ n(5)       Sam观察到其交易在Plasma区块中且在根链中具有Plasma区块信息,此时Sam给Alice发送一个确认信息;% D- k7 B/ d% @: L
(6)       最后,Sam和Alice的余额更新,Sam的余额变为5个ETH和2.5个PETH,Alice的余额为3.5个PETH。Alice可以花费Sam发送给她的PETH。
( g8 v2 j- w9 d$ B " c" G7 P0 k/ q1 e* F" Y. b4 d5 S
阻止用户的欺诈行为# A) `3 V: H7 P( c1 x
) H9 ]+ E# b. p
假设Sam在将2.5个PETH发送给Alice,余额变为2.5个PETH后,在退出Plasma链时仍声称自己拥有5个PETH,那么Plasma链中的其他用户可以提供欺诈证明,阻止Sam取回5个PETH,具体过程如下:* n( l! }3 O2 O6 Q. b
(1)       Sam发送一个退出交易给根链,希望退出Plasma链并声明自己拥有5个PETH。Sam需要给这笔交易附加一笔押金,且这笔交易具有一个挑战期;
# B4 Q: o9 b4 B8 h0 F$ |2 O(2)       根链中的矿工发现Sam发出的退出交易,并在创建根链的区块时将该交易包含在区块中;& x9 E- s% L5 t& l
(3)       由于Plasma链中的用户一直在监视根链和Plasma链的行为,Alice或其他诚实的节点会注意到根链中Sam的退出交易,并在挑战期内发起挑战;
5 x# y2 E& V9 \(4)       挑战者需要在挑战期内向根链提供Sam的欺诈证明数据,该数据可以是某个交易的Merkle证明,且该交易可以表明Sam试图取出的资金已经被其花费掉了;
. L4 B6 ^1 I3 l(5)       根链的矿工在创建根链新的区块时,将挑战者成功的挑战数据记录在区块中;
- [' V6 h7 Y+ ^; z' A(6)       根链将Sam附加的押金奖励给挑战者,并取消Sam的退出交易。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

sowangcom 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    2