1. 北竹林首页
  2. 资讯
  3. 技术指南

巴比特加速器AMA丨这里满足你对plasma的一切好奇心

巴比特加速器推出的全球线上区块链技术深度对话栏目Geekhub Global Online,定期邀请世界各地的资深技术大咖连线对话,旨在为技术社区输送前沿高质量的区块链技术内容;同时Geekhub技术社区成员也可以参与直播互…

巴比特加速器推出的全球线上区块链技术深度对话栏目Geekhub Global Online,定期邀请世界各地的资深技术大咖连线对话,旨在为技术社区输送前沿高质量的区块链技术内容;同时Geekhub技术社区成员也可以参与直播互动,共同探讨区块链的技术发展与未来。

Plasma是Vitalik和比特币闪电网络创始人Joseph Poon提出的区块链扩容技术方案,一经提出便受到区块链业内瞩目。这种可扩容的解决方案旨在通过创建能够与区块链交互的智能合约来提高以太坊的算力,有望将以太坊的性能提升至超越EOS的水平。那么Plasma扩容方案如何做到支持极高的交易,并且成为行业内最风靡的落地技术方案的呢?Plasma目前的核心技术进展如何?它和其他Layer 2扩容技术有什么区别?又遇到了哪些挑战呢?

Geekhub Global Online-Layer 2扩容周第二日的活动有幸邀请到Consensys的Plasma研究人员John Adler博士为大家讲述了《Plasma核心技术进展与挑战》。本次AMA活动原定计划为1小时,但在社区成员的积极回应下,最终顺延了近40分钟,于10月23日晚圆满结束。

2251540284462_.pic_hd

以下为AMA实录:

 

Q1.什么是plasma?

John:Plasma 应该最好被定义为一种设计模式(Design Pattern), 通过将每个plasma区块的区块哈希提交到以太坊主链上来保证子链借用主链的安全性。区块为子链生成了一组预先定义好的签名者(signers),通过一套(可能会很复杂的)退出机制来确保活跃度(liveness)。

在Plasma中,目前主要在讨论的是单一区块生成者或者运营者(operator),来做链下交易收集,将默克尔化(merklezed)的交易(区块的哈希)有序地保存到以太坊的主链中去。用户可以向以太坊坊主链上的合约中存入或取出ETH和其他Token,但是对于提款,用户需要完全退出(exit game)。

退出需要等待很长一段时间(可能要2周),直到可以确保Plasma的运营者和试图提取资金的用户都是诚实可信的。 如果不诚实地执行了提款(即用户尝试通过将token撤回到主链并将token在子链上重复使用,即双花问题),可以使用挑战来撤销提款。如果Plasma的操作者表现不诚实(例如扣压区块),则可以批量退出(mass exit),从而使得整个Plasma链退出。

在我看来,Plasma MVP是目前可用性最高和开发最好的Plasma 项目。它使用了标准的UTXO模型,就像比特币一样,允许用户存储、交易和提取ETH和tokens。

 

Q2. 能跟我们分享一下你最初接触区块链和以太坊生态系统,到现在开始研究Plasma的历程吗?

John:我第一次接触到区块链大约是在两年半前,以太坊开发者来到我的大学就区块链的基本原理进行了一些讨论。从那以后,我一直在不停的学习区块链世界里一切我可以接触到的东西。Plasma出现对我来说非常有意思,它使得某些应用程序更具有可用性。我目前的研究是关于区块链可扩展性技术,例如子链(child-chains)和状态通道 (state channels)。

 

Q3. 请你用简单的语言解释一下 Plasma 如何解决区块链可扩展性问题。

John:Plasma 的应用可以更准确地描述为区块链的扩容工具,而不是解决方案。Plasma可以用来增加区块链的交易吞吐量,例如在以太坊上。如果是扩容解决方案,则允许用户不受限制地使用区块链。而扩容工具仅增加了有限数量的可用场景。Plasma实际上非常受限于它目前支持的交易类型(即只有金融类交易,而不是通用计算),而且它对链上空间的可用性有要求以便及时和更少成本地退出。

Plasma扩容方案的好处是:传统区块链的局限性在于网络上的每个交易都必须由每个节点来进行验证。Plasma允许对特定Plasma链或链上运行的应用感兴趣的用户(节点)验证这些交易。

 

Q4.什么情况下会产生子链?会不会增加区块链的复杂性?

John:Plasma不是侧链,而是子链。侧链是独立运行的,但通常具有某种用于和对应主链跨链通信的机制。它们使用自己的共识机制获得担保。子链通过将子链的区块哈希提交到主链来从其主链中获得安全保障。

单独的Plasma 链可以并且应该用于每个需要额外交易吞吐量的应用程序,并且独立使用。这不会以任何方式增加以太坊主链的复杂性或攻击面(attack surface)。但是如果智能合约中存在执行Plasma 链规则的错误,它可能会使使用子链相应的用程序变得可攻击(open up attack vectors to the applications)。

 

Q5.Plasma Cash是什么?

John:Plasma Cash 是Plasma的另外一个有意思的版本。 Plasma Cash使用单个不可拆分单元来代表每个存款,而不是Plasma MVP中使用的旧的UTXO交易模型。在用户(地址)之间交易这个coin是很简单的:coin的所有者只需要跟踪从初始存款到当前所有者的数字签名链。这个数字签名链必须在发送时传递给coin的下一个所有者。

Plasma Cash的问题在于,它的历史信息可以涨到非常大,随着交易次数的增加,可能会达到1 GB,甚至1TB。同时,该历史记录必须由用户安全地存储,否则用户不能访问自己的coin,也不能交易。并且它要在在用户进行交易时才能在用户之间传递,而且只有在coin交易时才会持续增长,除非coin被移除或者换到另外一条plasma链上。

 

Q6.Plasma Cash有哪些退出机制?如何保证代币的安全性?

John:Plasma Cash的退出机制与Plasma MVP的实质上并没有根本的不同。只要退出提供有效的数字签名链并且不会造成双花问题,它就会通过。

 

Q7.Plasma debit是什么?与Plasma Cash,Plasma MVP相比有哪些区别和优势?

John:Plasma Debit是Plasma Cash的扩展,允许用户支付交易费用。回想一下,Plasma Cash中的Coin是不可分割的,所以你不能向运营者支付费用。Plasma Debit 将coin的余额定义为0和Coin初始值之间的值。

Plasma Cash和Plasma Debit 可以被认为比Plasma MVP更容易实施,Plasma MVP使用完整的通用UTXO模型进行交易。相比MVP,Cash和Debit的缺点是,coin的交易历史记录可能会变得无限大,无法传输。

 

Q8.Plasma上实施智能合约的主要挑战在哪里?如何解决?

John:在最抽象的意义上,退出涉及验证子链的有效状态转换(state transition)。当状态转换的范围有限并且定义明确(即只是存款、交易和提款)时,很容易在主链上编写可以强制执行这些规则的智能合约。如果允许的状态转换是图灵完备的——如果我们允许在子链上进行类似EVM这样的计算——那么我们需要在EVM上运行EVM解释器(interpreter)。除了需要完整、正确地实施并且运行成本高操作复杂之外,还存在这样的问题:只允许状态转换在单一以太坊区块的gas限制内被验证,这意味着子链的区块大小实际上受限于主链的区块大小,而这种限制并且这个限制不是在对抗条件(adversarial conditions)不是固定的,可以变大或变小。目前还没有可行的解决方案。

 

Q9. 快速退出和批量退出是什么意思?两者有什么不同?

John:我相信这个问题是指快速提款,具体资料可以参考:https://ethresear.ch/t/simple-fast-withdrawals/2128
它主要通过一个可立即交易的token来延长提款,该token可以在之后退出时兑换为完全价值(full exit value)。由于Plasma 退出需要很长的退出时间(可能要2周),用户将需要等待很长时间才能获得他们的资金。这种快速取款方案立即允许用户退出非同质的token(non-fungible token),该token在成功退出时可以由token持有者兑换退出的全部价值。这个token可以在兑换之前在公开市场上进行交易,可能价格较低,但可以缩短用户必须等待以获得大部分资金的时间。

批量退出(Mass Exits)本身理论上很容易做到:让Plasma的每个用户退出就行。但是由于需要让Plasma 链上的每个用户退出,因此大规模退出是非常困难的。协调批量退出是很有挑战性,因为通知每个用户必须进行复杂的行动,而且在通知后必须让他们确信他们需要这样去做。这甚至都还没有涉及到在实际完成中所有这些退出所必须进行的链上交易数量相关的成本,以及区块空间的可用性问题

关于如何解决这个问题有一些建议,比如聚合签名(signature aggregation)和使用zk-SNARKs批量验证退出签名,但目前还没有一个确定可行的解决方案。

 

Q10.那么状态通道和plasma之间的主要差别是什么?

John:Plasma和状态通道的区别大体上就是子链和状态通道的区别。两者有很多相似的地方,状态通道也包含签名者,但是它不需要维护一个共享的区块链历史记录,从而可以让用户随机的加入或者退出,减少多方之间的延迟,但是也使得通道开启后很难让用户再加入进去。

 

Q11.如何在plasma上实现更快的经济最终确定(economic finality)?

John:像Plasma这样的子链本身就受到规范主链的可观察性/确认时间的限制。简单来说,子链的“确认时间”甚至比以太坊主链更长,可能需要等待几个区块。Plasma上没有“最终确定性” (finality)的概念

如果想要低延迟交易,那么支付渠道(payment channels)和状态通道(state channels)是可行的方式,而不是子链。

 

Q12. Plasma的架构是怎样和以太坊交互的?Plasma的使用又将如何影响以太坊?

John:Plasma是设计模式,如果Plasma可行的规范实施之后,以太网每秒交易将以量级扩展。这应该会为生态系统的更多的实用案例提供解决方案,而现在的很多实用案例的最大瓶颈是受限制于当前的吞吐量。不过这还有很长的路要走,特别是在广义计算的情况下(想想几年,而不是几个月)。

 

Q13. Plasma支持代币吗?

John:MVP和Cash有支持机制,你只要遵照UTXO模式就能在Plasma上运行自己的Token。

 

Q14. plasma未来几年开发进度计划是什么?

John:目前还有很多问题有待解决。比如其中一项开发工作就是减少退出机制所耗费的时间和精力,如果能在不牺牲去中心化和其他plasma优点的情况下大幅减少的话,可以让plasma更具可用性。目前退出机制的主要缺点就是操作复杂,耗费高。

 

Q15. Plasma的节点会是哪些人,会是来自以太坊的节点吗?

John:通常每个应用都会有自己独立的plasma chain,所以这个应用的开发者他们应该都会设置自己的node。应该不需要终端用户或者以太坊的节点来运行plasma的节点。

 

Q16. plasma自白皮书公布以来到现在有哪些变化?

John:Plasma 的白皮书是一个很学术的白皮书,不太能实现。现在有很多简化的设计,使得plasma的使用更加容易、费用更低。第一个主要的简化模式就是Plasma MVP,它没有花哨复杂的功能,只能进行简单的基本操作:存入、取出和交易。简化后可以让plasma更容易实施。

Geekhub Global Online-Layer 2扩容周继续进行中。欢迎大家踊跃参加。

geekhub-02

声明:登载此文出于传递更多信息之目的,观点仅代表作者本人,绝不代表北竹林赞同其观点或证实其描述。

提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

联系我们

QQ:

1739447883

邮箱:

1739447883@qq.com