Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

什么是 Plasma,Plasma Cash?

烟7火
72 0 0
Plasma的设计模型使得人们可以通过发送链下消息来转移链上资产。它通过将交易吞吐量转移到Plasma链上实现根链的扩容。你可以想象这样一个场景:一位教授需要在短时间内给许多试卷打分数。他可以将这个工作分配给助教,由后者评阅试卷上的作答,并合计每题小分,只将最终分数报告给教授。- w5 b$ {* A# S7 b) V$ B# S
) U* K" `* `0 \5 E' k: m
    每条Plasma链都会将有关交易顺序的消息换算成一个哈希值存储在根链上。比特币和以太坊都属于根链——这两条区块链具有很高的安全性,并且通过去中心化保证了(安全性和活性)。本文列举的所有例子均将以太坊作为根链。& J! x4 E+ g& |$ J* ~

. J" M- e8 [0 r5 L, B0 ~    “Plasma不是带有默克尔树的中心化服务器。”% N' {" t+ v- g6 N8 X$ p. h% j' P
9 q2 X5 Y6 A4 }" q8 E
    ——Vitalik,2018年瑞士楚格TechCrunch。
3 L! a/ B" \# A! S  P4 U0 h( l+ ]5 m& C; h% D7 z
    Plasma设计模型有两个主要的分支:PlasmaMVP和PlasmaCash。如果你想了解更多关于Plasma的研究谱系,请点击文末链接。让我们先了解一些背景知识并简要介绍使用流程,再深入探究各个部分。. L$ r! e: E3 _

/ K, m5 u$ _7 A& v    稀疏的默克尔树:大小恒定的完美默克尔树,之所以称作’稀疏’是因为多数叶节点都是空的。
3 w) [! j2 p+ b) o# c
; g1 w) ^( G- w+ G% a; A    经济确定性:确保操作的不可撤回性,除非某一方花掉一大笔钱来产生另一种结果。% I1 }: f% B9 `; Q

( x/ [+ k$ B- ]/ }    UTXO:unspenttransactionoutput(未花费的交易输出)的缩写。每个交易必须从有效的UTXO集合中得到输入值。每个交易的输出值组成新的UTXO集合。比特币使用的就是UTXO模型。* E' E, d$ x* z7 ]
+ d: Q4 r7 w# p( W) @0 K% F; C7 H
    前方高能预警!
/ {5 t7 g+ J% R* `/ ?2 W* t3 }, r1 O0 k* g! X8 B) N8 U" j
    1:想要成为Plasma运营者的人(wannabePlasmaOperator)将Plasma合约布置到主网上
7 P" @2 P* S$ r' _* q: d! H) x) ~7 o- e+ o- L
    如果交易所之类的实体想要实现高交易吞吐量和低延迟性(甚至是即时经济确定性),不妨运行一条Plasma链并成为Plasma运营者。合约初始化过程中就会将合约所有者包含在内。+ ^. }$ t3 U- a' g5 X
" K# A; p6 z  G2 w
    2:Plasma运营者打包一个块0 u. j4 x; p0 j, |8 D5 @' y! `
  u2 F6 W4 u* Z! A+ f8 g, ~6 ]
    运营者具有多重身份,其中一种是将交易聚集起来并排序打包进区块,然后将这个Plasma区块的哈希值提交至根链。
& U  H9 d) w- G( f% V2 B) o! i/ G6 B. X5 t. M% ^# l  Y4 M0 v3 V
    Plasma有多种运行方式。不同的Plasma链可以有不同的治理规则、不同的代币和状态存储方式等等,不过所有Plasma链会定期将哈希值提交至根链,以便确保与根链一样的安全性。
/ d( U! [0 J# ~9 T9 H$ r) H0 ?7 \8 N2 S# r5 z/ E
    3:新用户Kanye在Plasma合约中质押以太币换取PETH* j9 q  z- i% W( q+ y& w
7 F, g1 G( k5 \+ u% D+ B
    在主要的两个Plasma设计模型中,你可以质押任意类型的代币,该代币会被转化成符合ERC20标准的代币,并通过Plasma链返还给用户。如果Kanye质押了以太币,他将获得PETH!如果他质押了比特币,他将获得PBTC!(PlasmaCash技术规范更支持CryptoKitties之类的ERC721资产,不过并非所有Plasma技术规范都支持任意类型代币的质押。)+ Y7 G9 e* ?: _6 Z% z2 ?) x/ w
- N+ B8 |% j" v: i5 a7 U
    4:Kanye向非Plasma智能合约成员Donald汇款
7 G5 x! h- o) C0 a9 X; X+ i3 ~0 O$ d& }: G7 ^
    Kanye并不是只能向Plasma合约以内的成员汇款!他也可以向以太币大佬Donald汇款。) o6 ?- @) \2 W, C# M

" I( z% g4 E9 O! ?# W    在PlasmaCash实现中,你质押的每种代币都会被分配一个特殊的ID。这些特殊的ID都存储在稀疏的默克尔树上。代币交易只会改变代币所在叶节点的索引(index)。这就好比房屋买卖——在进行交易之时房屋是不会动的,然而房主会更换,房契会记录交易相关方以及换手率。这极大降低了检查代币历史记录的难度,因为你知道该看树上的哪个位置!* |% F! \+ R, Z4 v1 ~

& B  h7 {2 y7 P) C' K    让我们关注一下Kanye发送给Donald的代币的索引。Kanye在发送代币之时必须包括该代币的历史记录。如果代币经历过多次交易,就会生成庞大的历史记录!我们将来会设法改善这一点。对Donald来说已经很棒了,因为他只需下载自己关心的代币的历史记录。
$ t0 y3 F$ \+ c: H* |; U1 c
# \# Q5 d; H! `) X5 F2 N# k6 u8 b. @    5:Donald有两个选择:是继续花费PETH,还是创建一个“退出”交易在根链上换回以太币。. o) v+ r! x8 C& j: g7 a

$ P4 x; _' b/ h3 E) I! z    如果Donald要将PETH换回以太币,他无需像请求加入时那样向运营者提交信息。出于匿名之需,Donald想要立刻换回他的代币,因此不想继续交易PETH了。他取一段代币的历史记录来证明所有权,并将其放入退出Plasma合约的请求之中。他的“退出”交易还包括Gas费和作为质押的保证金。如果审核通过,且没人质疑Donald,Donald就可以在根链上将PETH换回以太币。( ?2 z% j2 ~; n1 B; p1 B5 J. j

! _( A/ w, q. \0 p2 }0 w! n; b. I    太棒了!我们已经充分解析了最佳案例的真实场景,下面让我们深入研究一下各个部分吧:交易、退出机制和Plasma运营者的作用。要注意的是不同的实施方案之间存在各种规则和差异,不过你可以从下文了解一些核心的Plasma概念和术语。
7 W! ?+ H2 ~# ]0 e+ }7 @1 h/ x& s8 N6 y& N6 z* q# W8 N1 ?& T3 M
    交易
! ^  D3 [/ ^/ C& x/ P3 l$ `
- }: h% g* |% v5 v6 M7 \    Kanye在发送代币之时必须将代币的历史记录一起发送出去。PlasmaCash的用户只需下载并查看自己关心的代币的历史记录。分片客户端验证能够减少每位用户的数据加载量。+ {. X( o+ s7 u0 N4 U
# _/ I8 Y) y% |
    然而,如果一个代币经历的交易次数过多,会导致历史记录过大而无法交易。我们建议可以通过设置检查点来解决这一问题。检查点(Checkpoint)会将原先线性大小的证明缩减成一个常量,一旦检验点敲定后,客户端就可以提供上面的证明。PlasmaCash检查点建立在加密经济聚合签名之上,为代币在区块高度Y上由X所有这一纪录提供经济保证。
9 W  w0 H! [% k- ]$ P9 U+ [
1 Y; b8 j/ k& {, x3 R3 I) }- G3 W    遗憾的是,在PlasmaCash上发送任意小额的代币会困难得多(PlasmaDebit或状态通道可以解决这一问题,详情见延伸阅读)。用户通过调用押金函数来指定押金金额。虽然通过PlasmaCash发送ERC721代币比较好,但是PlasmaMVP的UTXO模型可以更好地处理任意金额的代币交易。+ ?- g( `% t+ g6 A$ l
* @# B7 g2 d) U2 k, a
    退出机制
5 G# X: |- ]% e/ V. F' m' m' ^+ ]; V* V8 g! E& K3 l0 q# D, G4 l3 j6 L( _# t
    可以针对满足以下情况的退款发起退出挑战:% a$ u3 ~5 F7 `6 Z

) U# l2 n( Y5 o    要求退回已花费的代币  T! y% e1 B( R& r4 Z% m8 L* @
  M  \4 R4 [; S0 w2 j! Q0 c3 X
    要求退回已退回的代币
& p& {9 m1 b# s* m  }" J
( |" _& ], W8 R. k! }/ j+ F    要求退回有无效历史记录的代币
2 i7 t3 |  x1 t- H; ^* g- m! ?- ~" D1 }+ h# m4 ^) a  W* A2 k
    任何人都可以提交欺诈证明来挑战退出者,一经证实会没收退出者的保证金。
# `; c5 }# v* |% a1 Q- Q- k- o2 H/ w; s: M  j6 Z" c' R, H
    如果遭遇攻击怎么办?( q, [  s+ @+ _' k/ d. Z
2 W; C9 s( U; m; m: y8 ~$ @! {
    如果Plasma链遭受黑客攻击,黑客必须提交”退出“交易才能成功偷走所有资金!在PlasmaCash上,黑客必须在“退出”交易中包括一张(作为安全保证金的)债券,他不能直接偷走所有钱。
. U9 B' d; L3 X; O3 q% q8 g/ m" _- T6 ]  q  P  i
    Plasma运营者& u' C- x: J  F, s

" m7 m! o, v' [* e( F3 \    Plasma运营者的主要作用是将交易聚集起来加入区块,将每个Plasma区块的默克尔根发布到根链上。8 c- F/ J- Q# X. Z# x+ {/ q

0 v5 _) j  Q9 Y6 X% A    在更复杂的设计模型中,可以由PoS验证者代替中心运营者,从而减轻关于交易审查的担忧。不过,中心运营者带来的好处多多,而且Plasma运营者的债权有很多有趣的用处:/ z# ]. _( i3 {2 Q1 `' h

1 s6 `$ h& p- f7 r3 v    **即时经济确定性!**由于运营者是区块的创建者,他们可以提供交易打包和排序的相关保证。为防作弊,运营者要提供保证金;交易一经打包,用户便知交易已然敲定
) I7 h4 y( @! R" V  i' i$ J! t" K+ b- p/ U# s
    **惩罚无效退出:**如果运营者许可了无效的“退出“交易,我们可以予以惩罚,并没收保证金。8 c  O3 P6 P1 I% S# {

; L8 u9 z# d, _! G* U: c9 G    **Casper验证:**运营者可以是CasperPoS验证者!4 {7 _$ x+ f& d" t/ H) A

( A% q, [' ?; q4 Z* ]9 K  e    你还能想到其它用处吗?9 O& a6 S+ e/ z; A4 {0 |# i- W

/ V6 z# b" b4 K5 R6 U$ a, _6 B    Plasma的设计模型
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

烟7火 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1