最小可行Plasma(MVP)
最小可行MVP是Plasma的精简版。它符合Plasma链的设计要求,同时足够简单,可以落地实施。
Plasma智能合约包含如下数据结构:
- 智能合约的所有者
- Plasma区块列表。每个区块有梅克尔根以及提交梅克尔根的时间。
- UTXO(未消费交易输出)位置
有了这些数据结构,我们还需要根据交易排序执行优先退出。这也意味着,在大规模退出发生时,UTXO交易将在主网上重放,重放会根据它们在Plasma链出现的顺序进行,直到所有资金都返还。这会确保没有利益相关者可以跳出伪造区块并在退出时候偷走Ether。
在MVP中有三个利益相关者:
- 以太坊主网矿工
- Plasma验证者,称为“操作者”(他们维持Plasma子链的运行,以获得费用)
- 在主网Plasma智能合约上抵押Ether的用户
通过这种MVP的设置,我们只是进行简单的token转移,并不具备通用智能合约能力。相反,我们获得强大的token安全保证。token不能被双花,不能被扣压,并且总是可以通过Plasma退出回兑到根链。
我们甚至可以运行一个MVP链,只有一个POA Plasma验证者,并保证安全退出。MVP的设计考虑了ERC-20的Token。未来,Plasma Cash的设计专门考虑了不可兑换Token,比如ERC-721 token标准。
Plasma Cash(现金)
不可兑换的token类似于你口袋中的现金。你口袋中的每张美元钞票都有一个系列号,这让它独一无二,每个ERC-721token也有唯一的标识符。没有任何两个ERC-721token是相同的。
这意味着,在存储数据的梅克尔树中,只有一个token有效的位置。任何其他人试图把该token退回到主链都很容易受到token真正所有者的挑战。
为了激励良好行为,每个Plasma链用户在加入时都会提出退出存款。如果他们试图退出不属于自己的资金,一旦被发现,他们会失去所有的存款,转给挑战者。
Plasma Cash 所有者只需跟踪他们独特代币的数据,而不是整个区块链状态。相反,MVP则要求所有者观察区块链的完整状态。两种设计都要求用户在检查点期间至少登录一次,以确保没有其他利益相关者试图错误地退出其token。
总的来说,Plasma Cash对需要简单UTXO状态的高吞吐量应用来说,具有良好的前景。
Plasma如何实现应用的扩展?
可以想到一些应用,它们有高吞吐量和UTXO状态,比如去中心化交易所和通用支付。
多年来,中心化交易所被黑客攻击过很多次。去中心化交易所可以提供解决这个问题的方案。Plasma具有高吞吐量,这让它成为构建去中心化交易所的有力竞争者,这些去中心化交易所可以连接到主链,由此移除对中心化交易所的需求。
目前也有去中心化交易所,比如IDEX,也有去中心化交易协议,比如0X,它们目前受制于以太坊吞吐量。目前,去中心化交易所根本不可能跟传统的中心化交易所竞争。
然而,构建一个Plasma去中心化交易所并不是简单。去中心化交易所,比如IDEX,它在以太坊主网有很多智能合约和状态对象,这允许它运行,并且为了构建一个能运转的DEX很可能需要智能合约的支持。
目前,Plasma相关的大多数想法都集中在有简单UTXO状态的高吞吐量应用上。因此0X和IDEX交易所还无法在Plasma上运行,直到它能支持更多复杂状态对象进行大规模退出。
特别是,一个交易所需要一个订单簿以最好的价格来匹配订单。它也需要做市商、交易者来给平台提供流动性,且还涉及到多种token,需要数百万数千万美元。此外,交易者希望可以从平台中快速提款,这也受制于Plasma挑战期的局限。
Plasma支付
支付更适合Plasma MVP和Plasma Cash。少于一美分的微支付可以很容易换手1000次,费用不多。但要记住,在Plasma,每次转移的速度仍受限于根链的最终时间。
除了微支付,任何一群用户之间,如果需要经常发生重复和昂贵的以太坊主网交易,他们也可以使用Plasma链以节省费用。支付是区块链可扩展性设计的重要领域。如果Plasma可以解决这个问题,它会是一个很大的成就。
如果我们希望用区块链来处理购买咖啡这样的微支付场景,我们必须找到一种可扩展的方法。
Plasma的局限
截止到现在,想让Plasma链拥有完整的EVM能力是不现实的,也不是正确方法。大多数研究聚焦于让UTXO模型首先发挥作用。
我们必须保持简单,其中一个理由是因为智能合约的所有权性质。
Solidity智能合约不擅长代表所有权。这意味着EVM dApp的用户会发现自己很难实现退出。
一个智能合约可以包含许多不同的功能和状态变量,这些变量由不同个人所拥有。
这会在大规模退出时带来问题,因为它要求保证Plasma链的安全。任何从状态A到状态B的有效状态转移将会导致任何状态A的退出无效。由此,子链智能合约的每个单一状态都需要有明确的所有权,否则,大规模退出总是可以被阻止的。
在Plasma链上拥有复杂智能合约是可能的,但它们必须是受约束的智能合约。
尽管如此,随着研究的深入,Plasma智能合约应该最终支持更复杂状态。它们需要经过深思熟虑的机制设计才能实现复杂的大规模退出功能。
大规模退出非常关键,因为即使你设计了一个非常安全的Plasma链,仍然有必要存在一个高效的方法来处理从Plasma到主链的交易。大规模退出如果花费太长时间或太昂贵,都将是不可接受的,因为它会把用户的资金置于危险之中。
白皮书中描绘的确认签名也是有限的。它们要求双方发送确认交易以确保最终性。这样的用户体验很糟糕,因为每一方不得不提交另一个确认交易以确认原始交易。然而,Plasma Cash和更多可行的Plasma目标在于解决这个问题。
对于Plasma退出,它也要求用户每个检查点在线一次,这是一种设计约束,它可能会让一部分用户不想忍受麻烦。
前言:区块链的扩展性是限制它走向主流人群的主要障碍。本文主要聚焦解释侧链模式和跨链模式的区块链扩展性解决方案。它们分别是如何来解决扩展性问题的?它们又有什么局限?本文仅代表作者观点。本文文作者Dave Kajpust,来源于medium.com,有蓝狐笔记社群“Leo”翻译。