我们知道 Plasma 是以太坊扩容方案之一,那么,到底什么是 Plasma?什么是 Plasma Cash?本文给我们一些简要的说明。

原文标题:《什么是 Plasma?Plasma Cash?》
作者:Jinglan Wang
译者:Cipher

Plasma 是一种设计模式,它允许链外消息驱动链上资产的转移。它通过将交易吞吐量转移到 Plasma 链来实现对根链的扩展。你可以把它看作是一个教授需要在短时间内批改许多考卷。教授可以将这项工作委托给助教,他们查看考卷上的每个问题并计算对应的分数,但只向教授报告总分。

每个 Plasma 链将交易排序的信息压缩到单个哈希,并存储在根链上。像比特币和以太坊这样的就是根链——这些区块链具有更强的安全性和去中性化保证 (安全性和活性)。本篇文章将使用以太坊作为根链例子贯穿全文。

Plasma 不是在中心化服务器上贴上一个 Merkle 树。
——Vitalik Buterin,2018 年于 TechCrunch,瑞士 Zug

Plasma 设计的两个主要分支称为 Plasma MVP 和 Plasma Cash。首先,让我们了解一下背景信息,从宏观角度了解下简单的用户流,之后再更深入地探讨每个部分。

在开始之前,让我们先快速了解一下基本概念 :

图文详解以太坊支付方案 Plasma Cash 运作原理稀疏的 Merkle 树,来自 : https://doi.org/10.1007/978-3-319-47560-8_13

稀疏 Merkle 树 : 一种大小不变的完美 Merkle 树,之所以称之为「稀疏」,是因为大部分叶子是空的。

经济最终性 : 保证操作永远不会逆转,除非提供最终结果的一方将一大笔钱烧毁。

UTXO: 未消费交易输出(unspent transaction output)。每笔交易都必须具有来自有效 UTXO 集的输入。每笔交易的输出将成为新的 UTXO 集的一部分。比特币就使用 UTXO 模型。

现在开始阐述 Plasma。

1 运营者将 Plasma 合约部署到主网

图文详解以太坊支付方案 Plasma Cash 运作原理

像交易所这样的实体,如希望拥有高交易吞吐量和低延迟 (甚至实现即时的经济最终性) 的实体将受益于运行 Plasma 链并成为运营者。合约所有者包含在合同的初始化中。

2 Plasma 运营者创建区块

图文详解以太坊支付方案 Plasma Cash 运作原理

运营者的众多角色之一是聚合和排序交易,并将其打包到区块中,然后将 Plasma 区块的哈希提交到根链。

实现 Plasma 的方法有很多种。不同的 Plasma 链可以有不同的治理规则、不同的 token、存储状态的方法等,但所有 Plasma 链会定期向根链提交哈希,以便继承根链的安全性。

3 Kanye 是一个新用户,将 ETH 存入 Plasma 合同,并分配返回 PETH

图文详解以太坊支付方案 Plasma Cash 运作原理图片由阿里·格雷厄姆提供

在两种主要的 Plasma 设计中,你可以将任何 token 存入 Plasma 链并接收到与之相对应的 token。所以,如果 Kanye 存入 ETH,他会得到 PETH!如果他存入 BTC,他就会得到 PBTC!(Plasma Cash 的规范更好地支持 ERC721 资产,如加密猫,但并非所有 Plasma 规范都支持存入任何 token)。

4 Kanye 向 Donald 汇款,但 Donald 还不在 Plasma 智能合约中

Kanye 并不仅限于汇款给那些已经是 Plasma 合约成员的人 ! 他也可以汇款给 Donald 这样的以太坊巨鲸。

在 Plasma Cash 规范中,你存入的每个代币都会被分配唯一的 ID。这些唯一 ID 存储在稀疏 Merkle 树中。代币有所分配的(Merkle 树的)叶子的索引,而这些索引是这些代币可用于交易的唯一位置。

想想买卖房产——当你交易房子时,房子不会移动,但拥有房子钥匙的人会改变,房子的契据是当事人的记录以及所有权易手的频率。这使得它非常容易检查 token 的历史记录,因为你能够轻易的在 Merkle 树中查找到这些记录!

图文详解以太坊支付方案 Plasma Cash 运作原理图片由亚当·埃利斯提供

在这里,我们具体看 Kanye 发送给 Donald 的 token 的索引。Kanye 在发送 token 时必须包含 token 的历史记录。如果 token 被多次交易,其历史记录可能会变得非常冗长!稍后我们将讨论如何改善这种情况。但就目前而言,这对 Donald 来说可以接受,他只需要下载他关心的代币交易历史。

5 Donald 有两种选择:继续花费 PETH 或创建退出交易以在根链上兑换出 ETH

Donald 不需要向运营者提交消息成为 Plasma 合约会员,以实现退出 PETH 并赎回 ETH。Donald 想立即换掉代币以保持匿名,所以他不想继续使用他的 PETH。

他拿到了 token 的历史记录,以证明所有权,并将记录放入提交到 Plasma 合约的退出请求中。他的退出交易还包括 gas 费和作为抵押的保证金(以防止撒谎)。当一切停当,如果没有人挑战 Donald,他能在根链上用 PETH 赎回 ETH。

图文详解以太坊支付方案 Plasma Cash 运作原理

棒极了!我们已经在宏观上阐述了一个理想的场景,因此让我们深入探讨这一工作流中的每个部分:交易、退出和 Plasma 运营者的角色。请务必注意,它存在多种规范,不同执行方案的规范之间存在差异,但以下内容会让你熟悉一些核心的 Plasma 概念和词汇。

交易

每当 Kanye 发送 token 时,他还必须同时发送该 token 的历史记录。在 Plasma Cash 中,用户只需下载他们关注的代币的交易历史。分片客户端验证允许每个用户的数据负载更轻。

但是,如果一枚代币被花了很多很多次,那么该代币的历史就会变得很长并难以在交易中传输。解决这一问题的一种提议是引入检查点。一旦检查点最终确定,客户只需提供从该检查点(有最终性)开始的证明,这样可以将证明的大小变成常数,而不是线性增长。

Plasma Cash 检查点基于加密经济聚合签名,为在 Y 区块高度的用户 X 对代币的所有权提供了经济保证。

遗憾的是,在 Plasma Cash 中发送任意小面额的代币更加困难 (Plasma 借记或状态通道是对这一缺陷的改进方案)。当调用存款函数时,用户指定其存款的面额,这一方案使得 Plasma Cash 适合发送 ERC721 非同质 token,而 Plasma MVP 的 UTXO 模型更适合处理任意面额交易。

退出

当提款被认为是如下情况,退出就产生了挑战 :

  1. 退出一枚已经花过的代币
  2. 双重退出代币
  3. 退出有无效历史记录的代币

任何人都可以提交欺诈证明来挑战退出者,如果他们在撒谎,他们将失去他们的保证金。

黑客攻击怎么办?

Plasma 链安全保证与根链一样好。 如果 Plasma 链被黑客攻击,黑客必须提交退出交易,以得到他想窃取的所有资金 ! 在 Plasma Cash 中,黑客必须在他的退出交易中包括保证金,他不能带着所有窃取的资金潜逃。

Plasma 运营者

Plasma 运营者的主要作用是将交易聚合到区块中,并将每个 Plasma 区块的 Merkle 树发布到根链。

在更复杂的设计中,中心运营者可以由 PoS 验证者取代,从而缓解对交易审查的担忧。然而,拥有中心运营商有很多好处,而且我们可以用 Plasma 运营者的保证金做很多有趣的事情 :

  • 即时经济最终性!由于运营者负责创建区块,因此他们可以提供有关交易包含和排序的保证。运营者会因为撒谎而付出失去保证金的代价,因此用户会立即知道他们的交易是否包括在内。
  • 无效退出处罚 : 可以惩罚运营者允许无效退出的通过,并消减其保证金中的资金。
  • Casper 验证 : 运营者可以是 Casper PoS 验证者(验证者有保证金)。
  • 你能想到其他的吗?

Plasmas 总结

图文详解以太坊支付方案 Plasma Cash 运作原理图片由海登·亚当斯提供

来源链接:mp.weixin.qq.com