1.什么是Plasma?
众所周知,目前的主流区块链系统普遍存在可扩展性(Scalability)问题。解决该问题一般有下面两种思路:
-
Layer1技术:直接修改底层区块链,比如修改区块大小和结构(2MB区块/SegWit等)、修改共识机制(PoS/DPos/PBFT等)、分片(Sharding)等方案
-
Layer2技术:在底层区块链之上构造新的交易环境,分担主链的负载,代表方案包括状态通道和各种侧链子链技术。Layer2技术基于以下假设:并非每个人都需要知道网络上发生的每一笔交易。事实上,主链只需要记录交易的最终结果,交易的过程可以在更高效更经济的交易环境中完成。
Plasma属于Layer2技术中的一种,即侧链(sidechain)技术。具体来说,就是在主链上锁定一部分资产,然后在侧链上创建新资产,后续交易都在侧链上完成。当用户退出侧链时,销毁侧链上的资产,然后在主链上解锁剩余的资产。
那么由谁来创建新资产呢?共识机制。当然,侧链一般会选择效率更高的共识算法,比如PBFT/PoS/DPoS等。根据不可能三角法则,在可扩展性提高的同时,去中心化和安全性必然会出现一定程度的削弱。因此,Plasma需要解决一个重要的问题:在侧链安全性无法保证时,所有人都可以安全地回退(fallback)的主链上。
为了实现以上目标,Plasma框架包含以下三个主要组成部分:
-
链下执行:即在主链之外执行交易
-
状态提交:侧链状态的压缩版本(即交易的Merkle根),需要提交到主链上
-
退出机制:用户通过提供凭证(Merkle proof),可以随时、安全地退出侧链
2.Plasma MVP
MVP即Minimal Viable Plasma,是Plasma的一个最小实现版本。
Plasma MVP基于UTXO模型,只支持转账,不支持脚本或智能合约的执行。侧链共识机制采用POA(Proof-of