美文网首页
Plasma:确保跨链资金安全回流的设计模式

Plasma:确保跨链资金安全回流的设计模式

作者: Buffalo_Lv | 来源:发表于2018-10-29 20:05 被阅读58次

在上一篇文章《简析跨链划转的工作原理》中,已经阐述了资金如何在根链与应用链之间流转、应用链可以变相扩展根链的交易处理能力并降低交易成本等等。然而如何确保应用链上的资金能够安全回流到主链则是一个关键难题。Plasma就是Joseph Poon和Vitalik Buterin针对这个关键难题给出的一个解决方案。

其文档下载地址为 https://plasma.io/plasma.pdf

其标题为 Plasma: Scalable Autonomous Smart Contracts

Plasma文档及其标题定义都写得比较学术化,晦涩难懂。然而对于任何一项技术,只要我们能够清晰地明白这项技术应用在什么场景,解决了什么问题,理解起来就会轻松很多。在很多时候,深刻理解问题本身可能会比理解该问题的一个解决方案更重要。我们可以尝试着暂时抛开Plasma文档,独立思考如何去解决跨链资金安全回流的问题,遇到不可逾越的思维或工程障碍时,再去参考Plasma文档,就能理解的更快速、更深刻一些。

简单来说,Plasma其实是一种设计模式、解决方案、指导思想与框架。按照Plasma模式建立应用链(Plasma-Chain)及根链智能合约(Plasma-Contract),则可确保用户的链外资金能够安全回流到根链。由于Ethereum是图灵完备的智能合约平台,我们可以将Plasma-Contract想象成是用合约编程语言(比如Solidity)实现的Plasma-Chain的轻量级特殊客户端,这可能就是Plasma标题“Scalable Autonomous Smart Contracts(可扩展的自治智能合约)”的由来。Plasma模式整体上可以分解为四个运作步骤:

1)根链资金划转到Plasma-Chain

用户存入ETH或ERC20-Token到Plasma-Contract,然后Plasma-Chain就会释放出对应量的资金,因为真正的Plasma-Chain客户端会持续监控/查询根链的交易区块及状态变化;

 2)在Plasma-Chain上执行计算任务

用户在Plasma-Chain中拥有资金后,就可以执行具体的计算任务,包括转账、执行职能合约、运行区块链游戏等等;

3)提交Plasma-Chain状态变更到根链

若把区块链系统看成是一个去中心化的状态机,那么在Plasma-Chain中执行计算任务后,将会导致一定量的状态改变,为更好地适应不同量的状态改变(少量改变、大量改变、没有改变),可将状态变更情况进行一定的压缩后再提交给根链,比如采用Merkle-Tree的方式将交易数据、状态变化数据组织起来,并将Merkle-Tree的Hash-Root提交到Ethereum根链,进而触发运行Plasma-Contract代码进行验证并保存起来;

4)Plasma-Chain资金安全回流到根链

即使Plasma-Chain去中心化的程度不够高,甚至出现安全事故,用户仍然可以提交证明数据到Plasma-Contract中取回属于自己的资金。这就类似于用户退出了网络游戏之后,仍然保留了自己的账户充值余额、装备、道具、积分等信息,如果游戏项目关停,那么用户可以无条件退回充值余额。对于用户和Plasma-Chain运营方,若任何一方作弊(比如提交给Plasma-Contract的数据不正确),那么对方都可以向合约提交欺诈证明(fraud proofs),只要合约代码没有设计缺陷和漏洞,那么合约代码就会给出正确的仲裁结果。

由于Plasma技术文档只描述了设计思想和实现框架,说明资金安全回流到主链是存在解决方案的,但并未给出特别具体的实现细节,因此后来又发展出若干个更具体的实现方案,比较著名的有Plasma MVP、Plasma Cash、Plasma Debit,对于这些内容,后续文章会给出进一步的分析阐述。

相关文章

网友评论

      本文标题:Plasma:确保跨链资金安全回流的设计模式

      本文链接:https://www.haomeiwen.com/subject/eisitqtx.html