什么是 Plasma,Plasma Cash?
烟7火
发表于 2022-11-15 22:18:19
52
0
0
. S9 K) z+ X5 }6 g; i: y5 d% _
每条Plasma链都会将有关交易顺序的消息换算成一个哈希值存储在根链上。比特币和以太坊都属于根链——这两条区块链具有很高的安全性,并且通过去中心化保证了(安全性和活性)。本文列举的所有例子均将以太坊作为根链。
% B: o8 o! h8 V/ \: S
“Plasma不是带有默克尔树的中心化服务器。”
0 n% }; m" i/ `; I% \
——Vitalik,2018年瑞士楚格TechCrunch。
Plasma设计模型有两个主要的分支:PlasmaMVP和PlasmaCash。如果你想了解更多关于Plasma的研究谱系,请点击文末链接。让我们先了解一些背景知识并简要介绍使用流程,再深入探究各个部分。- r8 m8 v. y3 y0 [8 ^
. |) f- b; {: e* ]1 a% ]
稀疏的默克尔树:大小恒定的完美默克尔树,之所以称作’稀疏’是因为多数叶节点都是空的。% I& l; X; m: R& ^! A0 ?
- l. v1 D4 \* G
经济确定性:确保操作的不可撤回性,除非某一方花掉一大笔钱来产生另一种结果。5 a5 x# t! @) y3 D( f
u* g1 S7 q) L& Z; k+ C# `0 }# z
UTXO:unspenttransactionoutput(未花费的交易输出)的缩写。每个交易必须从有效的UTXO集合中得到输入值。每个交易的输出值组成新的UTXO集合。比特币使用的就是UTXO模型。1 J2 ~! ~: q% j
, Z: u! Y: [1 L/ U" Z0 ~, ~
前方高能预警!
8 U9 y6 `1 `' I2 `9 @
1:想要成为Plasma运营者的人(wannabePlasmaOperator)将Plasma合约布置到主网上( W: I) r% w+ w2 T n
如果交易所之类的实体想要实现高交易吞吐量和低延迟性(甚至是即时经济确定性),不妨运行一条Plasma链并成为Plasma运营者。合约初始化过程中就会将合约所有者包含在内。( U0 R0 |5 _9 [( }$ Q w
" }0 z, k8 z! r- |2 ~/ x
2:Plasma运营者打包一个块
2 N! W- O2 M# w* D- o0 \1 f0 l
运营者具有多重身份,其中一种是将交易聚集起来并排序打包进区块,然后将这个Plasma区块的哈希值提交至根链。' m: _) T1 c5 N
Plasma有多种运行方式。不同的Plasma链可以有不同的治理规则、不同的代币和状态存储方式等等,不过所有Plasma链会定期将哈希值提交至根链,以便确保与根链一样的安全性。
3 }/ a+ q9 z& w2 [! D
3:新用户Kanye在Plasma合约中质押以太币换取PETH8 l5 T# R4 Q! N2 R0 s
: q) U; R( |, r7 k; m
在主要的两个Plasma设计模型中,你可以质押任意类型的代币,该代币会被转化成符合ERC20标准的代币,并通过Plasma链返还给用户。如果Kanye质押了以太币,他将获得PETH!如果他质押了比特币,他将获得PBTC!(PlasmaCash技术规范更支持CryptoKitties之类的ERC721资产,不过并非所有Plasma技术规范都支持任意类型代币的质押。)
$ k" S S& B. o
4:Kanye向非Plasma智能合约成员Donald汇款: M+ W$ e" _3 ?8 b+ {
Kanye并不是只能向Plasma合约以内的成员汇款!他也可以向以太币大佬Donald汇款。$ h8 c2 j' u e3 X1 Z, t4 Z+ x) `
3 U/ f. y# I& r5 y! y
在PlasmaCash实现中,你质押的每种代币都会被分配一个特殊的ID。这些特殊的ID都存储在稀疏的默克尔树上。代币交易只会改变代币所在叶节点的索引(index)。这就好比房屋买卖——在进行交易之时房屋是不会动的,然而房主会更换,房契会记录交易相关方以及换手率。这极大降低了检查代币历史记录的难度,因为你知道该看树上的哪个位置!
让我们关注一下Kanye发送给Donald的代币的索引。Kanye在发送代币之时必须包括该代币的历史记录。如果代币经历过多次交易,就会生成庞大的历史记录!我们将来会设法改善这一点。对Donald来说已经很棒了,因为他只需下载自己关心的代币的历史记录。
5:Donald有两个选择:是继续花费PETH,还是创建一个“退出”交易在根链上换回以太币。' g/ u; b$ i y9 ~
如果Donald要将PETH换回以太币,他无需像请求加入时那样向运营者提交信息。出于匿名之需,Donald想要立刻换回他的代币,因此不想继续交易PETH了。他取一段代币的历史记录来证明所有权,并将其放入退出Plasma合约的请求之中。他的“退出”交易还包括Gas费和作为质押的保证金。如果审核通过,且没人质疑Donald,Donald就可以在根链上将PETH换回以太币。- M6 L, v. A6 g; o
% A: R# `" Z6 ?3 J( `( y4 {
太棒了!我们已经充分解析了最佳案例的真实场景,下面让我们深入研究一下各个部分吧:交易、退出机制和Plasma运营者的作用。要注意的是不同的实施方案之间存在各种规则和差异,不过你可以从下文了解一些核心的Plasma概念和术语。" K, J; C3 |/ Z2 H# z7 y$ S
0 ~" l2 _6 F( \" k. ]7 {
交易7 ~# g, J! P1 s$ I
Kanye在发送代币之时必须将代币的历史记录一起发送出去。PlasmaCash的用户只需下载并查看自己关心的代币的历史记录。分片客户端验证能够减少每位用户的数据加载量。
然而,如果一个代币经历的交易次数过多,会导致历史记录过大而无法交易。我们建议可以通过设置检查点来解决这一问题。检查点(Checkpoint)会将原先线性大小的证明缩减成一个常量,一旦检验点敲定后,客户端就可以提供上面的证明。PlasmaCash检查点建立在加密经济聚合签名之上,为代币在区块高度Y上由X所有这一纪录提供经济保证。6 J* ]7 h. F9 D. {# ~
H9 E& H2 Y6 L/ V% Z- B! \
遗憾的是,在PlasmaCash上发送任意小额的代币会困难得多(PlasmaDebit或状态通道可以解决这一问题,详情见延伸阅读)。用户通过调用押金函数来指定押金金额。虽然通过PlasmaCash发送ERC721代币比较好,但是PlasmaMVP的UTXO模型可以更好地处理任意金额的代币交易。
退出机制
可以针对满足以下情况的退款发起退出挑战:7 u* e8 [: D: B! @
要求退回已花费的代币
要求退回已退回的代币
) \1 ?$ c1 h) ]9 V/ s6 [" ~: G
要求退回有无效历史记录的代币4 W) e( W& {2 {
任何人都可以提交欺诈证明来挑战退出者,一经证实会没收退出者的保证金。
如果遭遇攻击怎么办?# H" h& ?4 c7 T, b# o
如果Plasma链遭受黑客攻击,黑客必须提交”退出“交易才能成功偷走所有资金!在PlasmaCash上,黑客必须在“退出”交易中包括一张(作为安全保证金的)债券,他不能直接偷走所有钱。# H7 G U! N4 a' [, q
. K# C2 k/ d: n" z- q
Plasma运营者
! s/ C/ |; t; k2 k2 | t+ f' h# R
Plasma运营者的主要作用是将交易聚集起来加入区块,将每个Plasma区块的默克尔根发布到根链上。$ C' L3 A: z. {4 G, u3 r
在更复杂的设计模型中,可以由PoS验证者代替中心运营者,从而减轻关于交易审查的担忧。不过,中心运营者带来的好处多多,而且Plasma运营者的债权有很多有趣的用处:: l: C6 P X3 U; B! K Q+ Z; y
**即时经济确定性!**由于运营者是区块的创建者,他们可以提供交易打包和排序的相关保证。为防作弊,运营者要提供保证金;交易一经打包,用户便知交易已然敲定( I5 U( Z; R) e, q) m
**惩罚无效退出:**如果运营者许可了无效的“退出“交易,我们可以予以惩罚,并没收保证金。
% R" S: A9 g9 I, t+ N: Y
**Casper验证:**运营者可以是CasperPoS验证者!
4 l. i+ q0 M- }9 h# |
你还能想到其它用处吗?
0 u8 K/ @* Y5 K' b
Plasma的设计模型
成为第一个吐槽的人