引介 | 什么是 Plasma,Plasma Cash?

Ajian   |     |   1929 次阅读

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

每条 Plasma 链都会将有关交易顺序的消息换算成一个哈希值存储在根链上。比特币和以太坊都属于根链——这两条区块链具有很高的安全性,并且通过去中心化保证了(安全性和活性)。本文列举的所有例子均将以太坊作为根链。

“Plasma 不是带有默克尔树的中心化服务器。”

—— Vitalik, 2018 年瑞士楚格 TechCrunch 。

Plasma 设计模型有两个主要的分支:Plasma MVP 和 Plasma Cash 。如果你想了解更多关于 Plasma 的研究谱系,请点击文末链接。让我们先了解一些背景知识并简要介绍使用流程,再深入探究各个部分。

知识点速览:

1

-稀疏的默克尔树图像:https://doi.org/10.1007/978-3-319-47560-8_13 -

稀疏的默克尔树:大小恒定的 完美 默克尔树,之所以称作'稀疏'是因为多数叶节点都是空的。

经济确定性:确保操作的不可撤回性,除非某一方花掉一大笔钱来产生另一种结果。

UTXO:unspent transaction output(未花费的交易输出)的缩写。每个交易必须从有效的 UTXO 集合中得到输入值。每个交易的输出值组成新的 UTXO 集合。比特币使用的就是 UTXO 模型。

前方高能预警!

1:想要成为 Plasma 运营者的人(wannabe Plasma Operator)将 Plasma 合约布置到主网上

2

如果交易所之类的实体想要实现高交易吞吐量和低延迟性(甚至是即时经济确定性),不妨运行一条 Plasma 链并成为 Plasma 运营者。合约初始化过程中就会将合约所有者包含在内。

2:Plasma 运营者打包一个块

3

运营者具有多重身份,其中一种是将交易聚集起来并排序打包进区块,然后将这个 Plasma 区块的哈希值提交至根链。

Plasma 有多种运行方式。不同的 Plasma 链可以有不同的治理规则、不同的代币和状态存储方式等等,不过所有 Plasma 链会定期将哈希值提交至根链,以便确保与根链一样的安全性。

3:新用户 Kanye 在 Plasma 合约中质押以太币换取 PETH

4

在主要的两个 Plasma 设计模型中,你可以质押任意类型的代币,该代币会被转化成符合 ERC20 标准的代币,并通过 Plasma 链返还给用户。如果 Kanye 质押了以太币,他将获得 PETH !如果他质押了比特币,他将获得 PBTC !(Plasma Cash 技术规范更支持 CryptoKitties 之类的 ERC721 资产,不过并非所有 Plasma 技术规范都支持任意类型代币的质押。)

4:Kanye 向非 Plasma 智能合约成员 Donald 汇款

Kanye 并不是只能向 Plasma 合约以内的成员汇款!他也可以向以太币大佬 Donald 汇款。

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

让我们关注一下 Kanye 发送给 Donald 的代币的索引。Kanye 在发送代币之时必须包括该代币的历史记录。如果代币经历过多次交易,就会生成庞大的历史记录!我们将来会设法改善这一点。对 Donald 来说已经很棒了,因为他只需下载自己关心的代币的历史记录。

5:Donald 有两个选择:是继续花费 PETH ,还是创建一个“退出”交易在根链上换回以太币。

如果 Donald 要将 PETH 换回以太币,他无需像请求加入时那样向运营者提交信息。出于匿名之需,Donald 想要立刻换回他的代币,因此不想继续交易 PETH 了。他取一段代币的历史记录来证明所有权,并将其放入退出 Plasma 合约的请求之中。他的“退出”交易还包括 Gas 费和作为质押的 保证金 。如果审核通过,且没人质疑 Donald ,Donald 就可以在根链上将 PETH 换回以太币。

太棒了!我们已经充分解析了最佳案例的真实场景,下面让我们深入研究一下各个部分吧:交易退出机制和 Plasma 运营者的作用。要注意的是不同的实施方案之间存在各种规则和差异,不过你可以从下文了解一些核心的 Plasma 概念和术语。

交易

Kanye 在发送代币之时必须将代币的历史记录一起发送出去。Plasma Cash 的用户只需下载并查看自己关心的代币的历史记录。分片客户端验证能够减少每位用户的数据加载量。

然而,如果一个代币经历的交易次数过多,会导致历史记录过大而无法交易。我们建议可以通过设置检查点来解决这一问题。 检查点(Checkpoint)会将原先线性大小的证明缩减成一个常量,一旦检验点敲定后,客户端就可以提供上面的证明。Plasma Cash 检查点建立在加密经济聚合签名之上,为代币在区块高度 Y 上由 X 所有这一纪录提供经济保证。

遗憾的是,在 Plasma Cash 上发送任意小额的代币会困难得多(Plasma Debit 或状态通道可以解决这一问题,详情见延伸阅读) 。用户通过调用押金函数来指定押金金额。虽然通过 Plasma Cash 发送 ERC721 代币比较好,但是 Plasma MVP 的 UTXO 模型可以更好地处理任意金额的代币交易。

退出机制

可以针对满足以下情况的退款发起退出挑战

  1. 要求退回已花费的代币
  2. 要求退回已退回的代币
  3. 要求退回有无效历史记录的代币

任何人都可以提交欺诈证明来挑战退出者,一经证实会没收退出者的保证金。

如果遭遇攻击怎么办?

如果 Plasma 链遭受黑客攻击,黑客必须提交”退出“交易才能成功偷走所有资金!在 Plasma Cash 上,黑客必须在“退出”交易中包括一张(作为安全保证金的)债券,他不能直接偷走所有钱。

Plasma 运营者

Plasma 运营者的主要作用是将交易聚集起来加入区块,将每个 Plasma 区块的默克尔根发布到根链上。

在更复杂的设计模型中,可以由 PoS 验证者代替中心运营者,从而减轻关于交易审查的担忧。不过,中心运营者带来的好处多多,而且 Plasma 运营者的债权有很多有趣的用处:

  • 即时经济确定性!由于运营者是区块的创建者,他们可以提供交易打包和排序的相关保证。为防作弊,运营者要提供保证金;交易一经打包,用户便知交易已然敲定
  • 惩罚无效退出:如果运营者许可了无效的“退出“交易,我们可以予以惩罚,并没收保证金。
  • Casper 验证:运营者可以是 Casper PoS 验证者!
  • 你还能想到其它用处吗?

Plasma 的设计模型

下图显示得更清楚一点:

延伸阅读

Minimum Viable Plasma

Plasma Cash

Plasma Cash Simple Spec

Plasma Debit: Arbitrary-denomination payments in Plasma Cash

Plasma XT: Plasma Cash with much less per-user data checking

Cryptoeconomic Signature Aggregation


阿剑评:在一些细节上这篇文章讲得仍不够清楚。现在看来,Plasma MVP 令人印象深刻的地方在于用户退出 Plasma 链时候的结算顺序;而 Plasma Cash 则在于用户给非 Plasma 用户发送代币时候的方法。还是要保持期待啊。


原文链接: https://medium.com/crypto-economics/what-is-plasma-plasma-cash-6fbbef784a
作者: Jinglan Wang
翻译&校对: 闵敏 & 阿剑

本文由作者授权 EthFans 翻译及再出版。


你可能还会喜欢:

PPT | Plasma MVP
干货 | Truebit:为可验证计算开辟市场
引介 | Counterfactual 项目:广义的以太坊状态通道

 
0 人喜欢