巴比特论坛

Plasma概述

发布者: 币学院| 发表于: | 查看: 565| 评论: 0 |来自: 星海

565 0

本文是区块链扩展性讨论的第四篇,前三篇链接如下:
  1. 以太坊上的扩容方案:概述
  2. 分片概述、Zilliqa和QuarkChain
  3. 状态通道概述、例子和相关项目

Plasma

上篇文章中我们提到了链外扩展的根本假设:

链外扩展(第二层解决方案)的根本假设在于,我们可以利用链上提供的确定性作为锚点,并于其上附加其他经济学模型以扩展公链已有的能力

与状态通道类似,Plasma也是锚定在以太坊网络上的第二层解决方案,区别在于,Plasma允许构建依附于以太坊上的子链,其本身可以衍生出新的子链,如此一直延续下去。每个子链通过智能合约创建,依其定义的规则进行管理。如果子链上存在恶意节点,交易甚至可以被取消。

这种特性使得我们可以在子链层次上进行很多复杂的操作。理论上子链的数量没有限制,所以Plasma能实现几乎无限的扩展能力。与雷电网络类似,Plasma子链运行快且手续费低,因为其上的操作无需扩展到整个以太坊上。

例子


假设我们要在区块链上创建一个卡牌游戏,使得用户能玩类似炉石传说的游戏,此种复杂操作不适合在以太坊进行,我们决定使用Plasma。

首先我们在以太坊上创建一系列的智能合约,作为Plasma子链的锚定,其中包含子链上的状态转移规则。此智能合约也将记录子链上的状态哈希,并且作为中继让用户在以太坊和子链上进行资产转移。

接着我们创建子链。子链可以拥有自己的共识机制,例如权威证明(PoA: Proof of Authority)。使用PoA时,我们将依赖于可信的区块验证者,这与PoW中的矿工类似:接收交易、形成区块并收集手续费。为简化问题,假设我们是网络中唯一的区块验证者。

一旦子链创建并开始使用,区块验证者将定期向智能合约提交状态,这些提交作为子链上的事件证明记录在以太坊上。重要的是:Plasma上的资产需首先在以太坊上被创建出来并转移到子链上。最后我们在子链上部署游戏相关的智能合约。当用户参与游戏时,他们只和子链交互。

安全性

在以上的例子中,子链上只有单一节点控制所有区块的产生,难免让人怀疑此节点将通过恶意操作盗取用户资产。实际上,即使单一节点控制了子链上全部区块的产生,通过Plasma提供的方法,我们总可以在以太坊主链上取回资产。

首先,我们假设区块验证者通过创建假区块进行欺骗以控制子链中的资产,但按照规则他们需要向Plasma智能合约提交此区块存在的证据。这种情况下用户将发现此盗窃行为,并且在区块验证者能获取并使用资产之前把其取出。

Plasma同时也引入了另一种方法,允许任何人向智能合约提交一个欺骗证明(fraud proof)。此证明包含了前一区块的信息,使得我们可以根据子链的状态转移规则推测出假区块。在欺骗证明被证实的情况下,子链将回滚到之前的状态。

提交欺骗证明要求我们能访问较为底层的数据。假如区块验证者不分享上一区块的信息,我们应如何向智能合约提交欺骗证明呢?在这种情况下,我们的方法就是取出自己的资产并离开子链。我们将向Plasma的智能合约提交“资产证明”,在一定的挑战时间(challenge period)后(保证无人能挑战此声明),我们的资产将被移到以太坊主链上。

最后,区块验证者可以审核子链上的所有用户,例如可以排除特定用户的交易从而阻止任何用户在子链上的操作。对这种情况,我们的操作也是移出所有资产到以太坊主链上。

资产移出在某些情况下是有风险的。子链上所有用户的移出操作可能导致以太坊无法在规定的挑战时间内完成所有交易,这意味着用户会丢失资产。一种可行的方式是根据请求的数量来延长挑战时间。

所有的区块验证节点都被控制是极端情况,我们可以创建更为去中心化的子链使得发生以上情况的概率更小。

Plasma与状态通道的区别

Plasma和上篇文章讨论的状态通道一样,也是链外解决方案中重要的一部分,这两者的区别如下:
  • 当状态通道中各方达成共识后,我们能实现即时资产转移;这在Plasma中是不可能的,如前文所述,用户需经历一个挑战时间。
  • 状态通道比起Plasma在平均交易成本上更便宜且速度更快。这意味着我们可以在Plasma子链上建立状态通道。用户间的一系列的小额交易,比起直接在子链上进行操作,在其上建立状态通道更为合适。
| 邀请
网友评论

0条评论

已有0人参与讨论

巴比特图书
返回顶部
分享 发帖