首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链扩容方案(三):以太坊的Plasma

之前我们介绍了

链上扩容方案Sharding

和链下扩容方案状态通道,今天我们来讲讲另外一种链下方案:以太坊的Plasma

Plasma和状态通道类似,也是一种在链下进行交易并通过以太坊区块链来保证交易安全的扩容解决方案。不同之处在于,Plasma通过创建多条子链和以太坊主链连接来实现扩容这些子链还可以再生成自己的二级子链,进一步增加可扩展性。这样一来,我们可以把复杂的运算放到子链上去运行,从而减少用户和主链的交互频率。Plasma子链不需要让所有区块链节点验证并复制交易信息,可以更快速地运算并收取更低的手续费。

我们举个例子来详细解释下Plasma是如何工作的。

假设有家公司想在以太坊上创建一款集卡类游戏,这些卡片基于ERC 721标准(和之前的区块链养猫游戏一样),但拥有一些特别的属性并支持一系列特定的操作。这些复杂的操作运算在以太坊上直接进行成本太高,因此可以被移植到Plasma子链上。

我们在以太坊主链上创建一系列的智能合约,作为Plasma子链的“根”。这些“根”合约包含了子链中基本的交易状态转换规则,比如交易不能使用已经被使用了的数字资产,如何记录子链状态的哈希函数,如何桥接子链和主链中用户的数字资产。

我们创建Plasma子链。子链可以使用和主链不一样的共识机制,极大增加了灵活性。假设我们在子链上采用权威证明(PoA)的机制,依靠信任的区块生产者来达成共识。区块生产者类似于工作量证明中的矿工,他们接收交易,生成区块,并收获交易费用作为回报。我们假设一种最简单的极端情况,即整个系统中只有发布游戏的公司这么一个区块生产者,来验证交易并生成区块。当子链被激活使用后,区块生产者定期将Plasma子链上发生的交易发布到以太坊主链中的“根”合约中,作为交易状态的证明。

当子链完成后,我们可以继续创建集卡游戏的其他元素,如游戏规则、逻辑、和所支持的操作。这些实际游戏的规则和逻辑会被包含在智能合约中并发布到子链上。需要特别说明一点,Plasma帮助我们扩容基于区块链的数字资产的交互,但这些资产本身必须首先在主链上创建。在我们的例子中,集卡游戏的逻辑在子链中,但卡牌的创建是在主链上完成的。

当用户玩游戏时,他们只和子链进行交互。他们可以买卖卡牌,和其他玩家互动比赛,或进行任何游戏规定的操作。所有这些都在子链上进行;无需直接和主链通讯。由于处理这些交易的节点数量很少(例子中只有那唯一的一个区块生产者),交易速度显著提高的同时也大大降低了交易成本。

可是,安全性如何得到保证呢?在刚刚介绍的方案中,只有少数的区块生产者进行交易的验证,这难道不是一个极端中心化的系统吗?游戏公司可不可以直接篡改交易信息来偷取用户的数字资产呢?

好问题。恭喜您,已经入门区块链了!

简短的回答是,即使在只有一个区块生产者这样的极端情况下,Plasma也可以保证用户数字资产的安全性。刚刚我们说过,所有数字资产必须先在主链上创建,因此最坏的情况是,用户离开子链(游戏)并将自己的资产提现回主链。下面我们假设几种偷窃用户资产的情况,来看看Plasma是如何应对的。

首先,假设游戏公司通过创造一个假的新区块来控制并窃取用户的数字资产。由于该公司是唯一的一个区块生产者,因此他们可以随意生成一个不符合区块链规则的新区块并写入虚假的交易信息。和其他的有效区块一样,公司可以将该区块的信息发布到主链的“根”合约中,企图证明该假区块是真实存在的。之前提到过,用户有最终将数字资产提现回主链的权力。在这个场景中,用户(或者应用的自动监督机制)发现有人尝试窃取资产,因此会在被盗的资产被使用掉以前将它们提回主链。

此外,Plasma也提供了错误证明机制,允许任何人向“根”合约发布错误证明来告发区块生产者的欺诈行为。该证明中会包含先前区块的信息,所有人根据子链的状态转换规则,可以证明新区块的无效性。一旦作假被证实,区块生产者寄存在主链上作为担保的数字资产将会被没收。

但是提交错误证明需要有权限去获取历史区块信息,如果区块生产者不共享先前的区块信息来防止用户提交错误证明,那该怎么办?

在这种最坏情况下,用户向“根”合约提交一份“资产证明”,把所有数字资产提取回主链。之后的一段时间(即挑战期)内,其他用户可以对此提出异议(比如此用户在稍后的一个有效区块中已经花费了一定的资产)。如果没有异议被接纳,资产会被成功的提取回主链。

另一方面,提取资产也会有一定的危险。假设区块生产者对所有用户的资产作假,所有的用户会在同一时间发送提现请求。大量的交易会使得以太坊主链在规定的挑战期内无法处理完所有的交易请求,导致用户资产的损失。

于此Plasma有一系列的预案,其中最有效并简单可行的方案是:将挑战期的长度等比于提现请求总数进行增加。再次强调,我们介绍的是一种极端不安全的情况(因为只有一个区块生产者)。现实中可以通过增加不同的区块生产者实体来极大程度降低资产被盗的风险。

状态通道和Plasma有很多相似之处,那最大的不同点在哪里呢?

首先,状态通道可以进行即时提现。如果点对点交易的双方达成了共识,他们可以签署交易并立刻在主链上更新状态,Plasma却不行。用户提现时必须经历挑战期,才能将资产从子链转移到主链。

此外,状态通道的运行由于不涉及共识机制,因此比Plasma更经济快速。和以太坊主链一样,Plasma子链也可以拥有自己的状态通道来提升可扩展性。因此,状态通道和Plasma并不是两种存在竞争关系的解决方案。

本文意见仅供参考,不构成投资建议。

据此入市,风险自担。

本文原创,转载本篇请注明出处

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180719G0NPK300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券