Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

什么是 Plasma,Plasma Cash?

烟7火
77 0 0
Plasma的设计模型使得人们可以通过发送链下消息来转移链上资产。它通过将交易吞吐量转移到Plasma链上实现根链的扩容。你可以想象这样一个场景:一位教授需要在短时间内给许多试卷打分数。他可以将这个工作分配给助教,由后者评阅试卷上的作答,并合计每题小分,只将最终分数报告给教授。/ G& f) I1 g2 O2 t

" o5 d- A( m2 F: c    每条Plasma链都会将有关交易顺序的消息换算成一个哈希值存储在根链上。比特币和以太坊都属于根链——这两条区块链具有很高的安全性,并且通过去中心化保证了(安全性和活性)。本文列举的所有例子均将以太坊作为根链。" m' o- d5 }$ p+ o" O; X
+ E4 Z6 ~) ?/ R6 w8 f3 Z& M4 I3 Y
    “Plasma不是带有默克尔树的中心化服务器。”+ q; e* f: d2 j, U# [# l
' f4 s, p) r: f) y& w
    ——Vitalik,2018年瑞士楚格TechCrunch。
5 I$ f2 |1 F$ \! \# [
. Z2 D1 p- n0 t; w! b    Plasma设计模型有两个主要的分支:PlasmaMVP和PlasmaCash。如果你想了解更多关于Plasma的研究谱系,请点击文末链接。让我们先了解一些背景知识并简要介绍使用流程,再深入探究各个部分。
& [6 \! \0 x/ g: x/ F- z! ^9 h4 Z
/ R' H0 f9 }; N) \1 ]$ ~5 w    稀疏的默克尔树:大小恒定的完美默克尔树,之所以称作’稀疏’是因为多数叶节点都是空的。
, _2 d+ p5 o! ?+ z! w; b
7 F3 `+ n4 b  N$ [    经济确定性:确保操作的不可撤回性,除非某一方花掉一大笔钱来产生另一种结果。5 }, w3 L8 q) R  \$ h8 E

  ^& M. |' I* H    UTXO:unspenttransactionoutput(未花费的交易输出)的缩写。每个交易必须从有效的UTXO集合中得到输入值。每个交易的输出值组成新的UTXO集合。比特币使用的就是UTXO模型。2 k- I% n2 X3 h/ H$ h( M  J, n  O9 G
. j- b& y& J, F5 D( m
    前方高能预警!( H- N+ {4 V( k

" o4 p! R- D: b! r    1:想要成为Plasma运营者的人(wannabePlasmaOperator)将Plasma合约布置到主网上6 r6 T! W* s8 }$ l$ M" D

+ b# ?# E' j3 M& \/ y" p. i    如果交易所之类的实体想要实现高交易吞吐量和低延迟性(甚至是即时经济确定性),不妨运行一条Plasma链并成为Plasma运营者。合约初始化过程中就会将合约所有者包含在内。
5 r) A; R" S) ], c5 l# @% }+ g1 J+ a9 j
    2:Plasma运营者打包一个块8 `- }) [" N  {+ J2 e" H- X
- Z2 d+ `1 j4 H4 q% F! E
    运营者具有多重身份,其中一种是将交易聚集起来并排序打包进区块,然后将这个Plasma区块的哈希值提交至根链。
6 l4 b/ Z5 b$ j9 m0 S
! R; X% \' G, c2 |0 T    Plasma有多种运行方式。不同的Plasma链可以有不同的治理规则、不同的代币和状态存储方式等等,不过所有Plasma链会定期将哈希值提交至根链,以便确保与根链一样的安全性。
2 @7 f" B1 W; w, b3 z& B$ E# E/ ^
    3:新用户Kanye在Plasma合约中质押以太币换取PETH
/ H+ S! n- l* P- Y; Z3 }6 Q+ L- c/ L5 x% ]: Y) H3 Z4 j
    在主要的两个Plasma设计模型中,你可以质押任意类型的代币,该代币会被转化成符合ERC20标准的代币,并通过Plasma链返还给用户。如果Kanye质押了以太币,他将获得PETH!如果他质押了比特币,他将获得PBTC!(PlasmaCash技术规范更支持CryptoKitties之类的ERC721资产,不过并非所有Plasma技术规范都支持任意类型代币的质押。), s- P0 B6 e: [: D

) g  y3 I* i  R4 Y9 N  F    4:Kanye向非Plasma智能合约成员Donald汇款+ z. F6 x( t+ S0 R0 g" F

  m. D; t6 n; w! d+ F7 ]) N7 D    Kanye并不是只能向Plasma合约以内的成员汇款!他也可以向以太币大佬Donald汇款。
, G6 e) C" V" E/ l4 `. x! e- N% M3 D) d' F- b- _
    在PlasmaCash实现中,你质押的每种代币都会被分配一个特殊的ID。这些特殊的ID都存储在稀疏的默克尔树上。代币交易只会改变代币所在叶节点的索引(index)。这就好比房屋买卖——在进行交易之时房屋是不会动的,然而房主会更换,房契会记录交易相关方以及换手率。这极大降低了检查代币历史记录的难度,因为你知道该看树上的哪个位置!
/ ~: l+ r. d" a3 Y  n
$ p4 p9 d  _7 f, s    让我们关注一下Kanye发送给Donald的代币的索引。Kanye在发送代币之时必须包括该代币的历史记录。如果代币经历过多次交易,就会生成庞大的历史记录!我们将来会设法改善这一点。对Donald来说已经很棒了,因为他只需下载自己关心的代币的历史记录。) \& o) f, l: I. W- G* f& b
1 b1 l2 R( s+ U* I7 u( s
    5:Donald有两个选择:是继续花费PETH,还是创建一个“退出”交易在根链上换回以太币。
/ V( H, x1 \  ]( A' _1 Q. h7 o+ }0 B  K; @+ m8 w
    如果Donald要将PETH换回以太币,他无需像请求加入时那样向运营者提交信息。出于匿名之需,Donald想要立刻换回他的代币,因此不想继续交易PETH了。他取一段代币的历史记录来证明所有权,并将其放入退出Plasma合约的请求之中。他的“退出”交易还包括Gas费和作为质押的保证金。如果审核通过,且没人质疑Donald,Donald就可以在根链上将PETH换回以太币。
- D. W- r. I  [6 M2 F' m7 W6 l3 e4 I. R3 k+ G$ @" {: h
    太棒了!我们已经充分解析了最佳案例的真实场景,下面让我们深入研究一下各个部分吧:交易、退出机制和Plasma运营者的作用。要注意的是不同的实施方案之间存在各种规则和差异,不过你可以从下文了解一些核心的Plasma概念和术语。
2 I8 N. X& h' J. e% |% i* O8 p1 a+ L5 v2 a+ Q
    交易3 ?/ Z( x& g& I

0 ~. L9 V# Z$ D4 `6 ~    Kanye在发送代币之时必须将代币的历史记录一起发送出去。PlasmaCash的用户只需下载并查看自己关心的代币的历史记录。分片客户端验证能够减少每位用户的数据加载量。# a7 [6 A1 D/ F4 w& H

+ n" Z0 [+ ?" J# Z; I% \    然而,如果一个代币经历的交易次数过多,会导致历史记录过大而无法交易。我们建议可以通过设置检查点来解决这一问题。检查点(Checkpoint)会将原先线性大小的证明缩减成一个常量,一旦检验点敲定后,客户端就可以提供上面的证明。PlasmaCash检查点建立在加密经济聚合签名之上,为代币在区块高度Y上由X所有这一纪录提供经济保证。
, z6 \" _3 |9 U8 k: G, x/ g8 Q5 |+ ~: o8 _/ d1 k- b  }  f8 ~" a
    遗憾的是,在PlasmaCash上发送任意小额的代币会困难得多(PlasmaDebit或状态通道可以解决这一问题,详情见延伸阅读)。用户通过调用押金函数来指定押金金额。虽然通过PlasmaCash发送ERC721代币比较好,但是PlasmaMVP的UTXO模型可以更好地处理任意金额的代币交易。
1 P; [! i, e  ]+ z
% T$ _" y) Z# X. B3 o  k' d/ K: H    退出机制
% F$ d: P3 W: q  ~7 y) g5 n  u1 U0 p: [* ?4 c/ l* n% \' K1 \+ [& \
    可以针对满足以下情况的退款发起退出挑战:# x6 y3 }5 @2 U% P9 R8 y$ U0 e: W

; a$ v7 O' e" L8 }; E$ g    要求退回已花费的代币
! q/ S( `) y; H) `
4 a. B  }. [8 E$ g0 C% P    要求退回已退回的代币6 E1 D- G4 Y& O+ \
; {5 [7 i' X6 l) R0 s& P9 b! n% K
    要求退回有无效历史记录的代币
$ d- O- N* V7 M! W
1 [3 v5 o  j# n" s, c    任何人都可以提交欺诈证明来挑战退出者,一经证实会没收退出者的保证金。
( w" B. h& R) [' t' b: M
( F# B& |8 @7 q! |    如果遭遇攻击怎么办?
/ l1 B9 f% b9 d! v2 s
7 S4 ?% R1 b& Q    如果Plasma链遭受黑客攻击,黑客必须提交”退出“交易才能成功偷走所有资金!在PlasmaCash上,黑客必须在“退出”交易中包括一张(作为安全保证金的)债券,他不能直接偷走所有钱。
* n0 u: P2 f7 P; A0 P5 L6 x0 {! r; a2 O  r. n: g
    Plasma运营者
! \; C5 J( u' J/ _9 ^; n: G
2 g2 N6 j) I5 w* Z" ~    Plasma运营者的主要作用是将交易聚集起来加入区块,将每个Plasma区块的默克尔根发布到根链上。
$ r6 R6 _  w. P6 z' z! m9 b
7 r0 i" N" J  h- f$ l    在更复杂的设计模型中,可以由PoS验证者代替中心运营者,从而减轻关于交易审查的担忧。不过,中心运营者带来的好处多多,而且Plasma运营者的债权有很多有趣的用处:  P+ e/ ]' `4 h& V  W# a8 H
5 c- z5 F1 d* L: }4 V
    **即时经济确定性!**由于运营者是区块的创建者,他们可以提供交易打包和排序的相关保证。为防作弊,运营者要提供保证金;交易一经打包,用户便知交易已然敲定
. U$ p5 ^" C9 ]% e9 g4 ]
1 i$ N% w7 F: k5 {) @8 m1 k0 n( C    **惩罚无效退出:**如果运营者许可了无效的“退出“交易,我们可以予以惩罚,并没收保证金。) K$ u0 U$ u. N, Y# k7 T, `) J! T

/ H1 C! @$ }  o' H/ G( m( \6 {. d    **Casper验证:**运营者可以是CasperPoS验证者!
5 F6 Z$ e7 {; _5 [4 [5 p2 y/ T5 z9 y6 b, ?; y3 I( G; J5 T5 ^
    你还能想到其它用处吗?0 a- Y2 K8 K# e; S" a2 F1 [
9 A- d; _+ v# ^; w: A* q
    Plasma的设计模型
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

烟7火 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1