科普 | 极简 Ethereum Plasma Debit 和 More Viable Plasma 介绍
看完上篇 Plasma MVP 跟 Plasma Cash 的介绍,感觉 Plasma MVP 目前还处于是概念上的阶段,正式上线好像还有段距离。Plasma Cash 每个 coin 都是不可分割的,在实际上的使用上有点困难。而本篇是要接续介绍Ethereum researcher 更新的提案:Plasma Debit 以及 More Viable Plasma。
Plasma Debit
Plasma Debit 要解决的就是 Plasma Cash 每笔进帐不可分割的问题。Plasma Cash 的账户里只有一个值(而且值等于1),在 Plasma Debit 改成两个值 a 跟 v。
v 代表这个账户最多可以拥有多少钱(也就是存了多少 ETH 进 Plasma chain)
a 是目前账户里的钱
举例来说:(1) 甲存了5 ETH 进入Plasma chain 后,v=5, a=5;(2)甲转 2 Plasma token 给乙,v=5, a=3。可以想作是信用卡的最高额度(v) 跟 还可以使用的额度(a)。
但是,这里有个问题,在最一开始大家的 a 跟 v 的值都一样,代表着大家不能相互转账。什么意思呢?举例来解释一下:
甲、乙各存了 5ETH、7ETH 进 Plasma chain,此时甲:(v=5, a=5)、 乙:(v=7, a=7)
甲想转账给乙,但因为乙的 v=a,若甲转给乙则会造成乙的 a>v 的状况,这在设计上是不允许的(信用卡公司给你5万的额度,总不能刷超过5万吧) 因此,为了要有流动性,operator 可以透过不同的 function 存钱进你的账户(也就是某个coin),也就意味着你的 v 值会变被增加(当然会需要付一些手续费给operator),以上例来说
operator 提供 2ETH 的额度给乙(v=9, a=7)
甲就可以转 2ETH 给乙(甲:(v=5, a=3), 乙:(v=9, a=9))
目前 Plasma Debit 的设计类似 payment channel,每个 coin 的拥有者跟 operator 建立一个双向的 payment channel(提案中多处都在模拟 Lightning Network 的channel,不过我不够熟悉 payment channel,就不在这里提出比较),所以在交易时,都是透过 operator 做中介做交易。由于channel 结构上的问题,目前这个提案,只限于单一个 operator。
More Viable Plasma
More Viable Plasm(MoreVP)是基于 Plasma MVP 作发展,改进提款的流程(Exit Game)。 上一篇 Plasma MVP 只有简单介绍概念,没有特别着墨在 exit 的部分,因为 MoreVP 是针对 exit game 的部分做改进,所以这次会对 exit game 的部分在做多一些的解释。
在Plasma MVP中,有人要离开 plasma chain(把钱提出)时,需要大家的签名(confirmation signature),而 confirmation sign 对使用者非常的不方便,每次有人离开,都需要收集签名。但移除了 confirmation sign,operator 就很容易可以作怪,例如不打包使用者的 tx(in-flight tx),甚至可以凭空铸币。MoreVP 改变了原本离开 plasma chain 的排序机制,在 MoreVP 中越新的 input(youngest input)有越高离开 plasma chain 的优先权。此外,挑战期(challenge period)也改成两段式。
整理一下:
MVP的 exit game
越旧的 UTXO 的优先权越高
送出交易需要签名,离开时也需要签名(confirmation signature)
单一挑战期(需要 exit bond)
MoreVP 的exit game
越新的 input(youngest input)优先权越高
只需要送出交易的签名,不需要 confirmation signature
两段式挑战期(需要 exit bond 跟 piggyback bond)
接下来再深入一点介绍两段式的挑战,这里只针对 worst case(byzatine 共识且是 in-flight tx)作讨论,因为被打包的的 tx 不会有问题,就照正常程序离开即可。in-flight tx 就是还没被打包的 tx,无论是还没被打包或是被 operator 恶意不打包。
当有人要离开 plasma chain 时,要先压钱作担保(exit bond),任何想一起离开的人需要压附带担保(piggyback bond),如果没有附带担保(piggyback bond)就不能离开。此时,进入第一阶段挑战期
第一挑战期,原则上就是让大家提出要离开的这个 tx 是不是无效的或被花过的。如果是,提出证明的 tx‘ 来更换原本的 tx,提出证明的人可以拿到上一个的附带担保(piggyback bond),然后压上新的 piggyback bond。然后一直直到没人提得出新的证明为止。
若有人挑战,就进入到第二阶段
第二阶段,上一阶段只有提出挑战,但是没有人去确认,而这阶段就是去确认/验证第一阶段的挑战,如果验证后是正确的,则第一阶段的挑战者可以拿到申请离开人的 exit bond,并且申请者不能离开。若无人能验证,则退还 exit bond,此时申请者也不能离开(不能把 plasma chain 的钱提出)。 若第一阶段无人挑战,则有申请离开者就顺利离开。 有没有觉得听完有点头昏眼花 2333,这里有提案者的图解。
- source: ethresear.ch -
今天的介绍大概就到这边,有任何的错误或是意见欢迎指教!
原文链接:
https://kimiwublog.blogspot.com/2018/10/ethereum-plasma-debit-and-more-viable.html
作者: Kimi Wu
本文为台湾社区成员作品,为阅读便利修改部分术语并转为简体中文。EthFans 经作者授权再出版。
你可能还会喜欢:
干货 | Solidity 安全:已知攻击方法和常见防御模式综合列表,Part-6:拒绝服务、时间戳攻击