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

Layer2技术-Plasma MVP图例介绍

最近在看Layer2技术(扩容技术)。目前的公链技术(Layer1技术)存在TPS性能不够,无法满足大规模交易的需求。Layer2技术主要还是分片,状态通道,侧链,Plasma,雷电网络等等。Layer2技术的主要思想是利用“Off-Chain”的高性能计算,只把计算结果存储在链上(“On-Chain”),从而实现可扩展性的高性能。

VK在2017年提出了Plasma的想法。想法的文章可以从Plasmas的官网(现在还很简陋)下载:https://plasma.io/plasma.pdf。Plasma,用VK在文章中的描述:

Plasma is composed of two key parts of the design: Reframing all blockchain compu- tation into a set of MapReduce functions, and an optional method to do Proof-of-Stake token bonding on top of existing blockchains with the understanding that the Nakamoto Consensus incentives discourage block withholding.

Plasma由两部分设计组成:1)类似MapReduce分布式计算的区块链计算能力 2)PoS的共识。简单的说,Plasma负责分发计算需求,搜集以及将计算结果记录在主链上。计算过程由PoS共识完成。

VK的文章比较晦涩,特别喜欢用非常长的英文句子。Plasma的介绍的文章,有点像VK对Plasma的思考笔记。后续的文章会针对Plasma进行细节的介绍,本文图例介绍Plasma的MVP系统。

Plasma的相关的代码目前并未公开,目前在Github上只有Plasma的MVP系统(最小可行产品)的实现。

1)Plasma智能合约在主链部署

Plasma必须在主链上部署智能合约,完成主链和子链的交互。

2)子链的资金初始化

2.a)用户Sam向Plasma智能合约转账,作为子链的资金

2.b)子链的Operator(“操作员”),发现智能合约交易后,在子链上创建对应的资金交易。在子链上所有的交易都是采用“UTXO”模型。

2.c)在子链的交易打包生成区块后,Operator向Plasma智能合约提交区块的验证信息。

2.d)Sam查看Operator的所有操作,如果有误操作,直接退出(MVP的这部分实现比较简单,如果Operator有误操作,子链用户只能选择退出子链)。退出子链的逻辑在后面描述。

3)子链转账

如果Sam向转账给Alice,大体步骤如下:

3.a)Sam通知Operator具体的转账交易内容

3.b)Operator将交易打包生成区块

3.c)在子链的交易打包生成区块后,Operator向Plasma智能合约提交区块的验证信息。

3.d)在Operator发现区块验证信息已经提交到主链后,通知Alice查验。

4)子链用户退出

退出子链,必须向Plasma智能合约提出申请。如果申请,在一个星期内,没有人挑战,则退出成功。注意,在子链中资金都是用UTXO表示,而且区块的证明信息能用来证明一个UTXO包含在一个区块中。

4.a)Sam向Plasma智能合约提出退去请求(提供退去请求的金额以及被挑战需要支付的保证金)。

4.b)如果Alice发现Sam的退出请求有问题,在一个星期内向Plasma智能合约提交证据。

4.c)如果证据正确,Alice获得Sam的保证金。Sam退出失败。

如果申请退出成功,Plasma智能合约将释放资金回到主链上。

5)Operator提交错误的区块证明

子链用户在发现Operator提交错误的区块证明信息时,向Plasma提出退出请求。如果Operator也提出退出请求时,必须等到其他退出请求完成后才能执行。

总结:Plasma是Layer2的扩容技术,在2017年由VK提出。Plasma的主要思想是实现链下的计算能力,并将计算结果记录在链上。Plasma的实现目前还没有公开。在Github上有一些Plasma的MVP实现,其主要的思想:账户模型采用UTXO,区块的证明采用UTXO交易的Merkle Root。

近期会写一些Layer2技术的总结和梳理文章,对Layer2技术感兴趣的小伙伴,可以关注我的公众号或者微信一起讨论。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券