基于将子区块链变为树形的想法Plasma
扫描二维码
随时随地手机看文章
在比特币和以太坊等主要区块链中,随着参与者数量的增加,交易数量不断增加,需要很长时间来验证交易并形成共识。
这称为可伸缩性问题,它是由可以包含在块中的少量交易和慢块生成时间引起的。为了将分布式游戏平台MOLD作为未来的公共区块链实际应用,解决这个问题至关重要。因此,在构建分布式平台MOLD时,我们在上次使用Hyperledger Fabric和Tendermint的一致算法之前考虑了第1层的可扩展性解决方案。在这个时候,作为第2层解决方案,我将考虑吸引注意力的Plasma,并且还要验证即使在Tendermint基础上开发的MOLD也可以采用Plasma。
什么是图层?
首先,为了理解区块链的协议区域,有必要了解层次结构。 第1层(区块链的主干区域)包括一致性算法,其是用于生成和验证诸如PoW和PoS的区块的协议,以及扩展区块链上的各种功能的虚拟机。 第2层包括用于扩展区块链上的通信区域并增加处理能力的机制。 特别有望在偏离主干区块链的第2层区域中解决可扩展性。 虽然不是本次的主题,但在这之上还有作为一般应用领域的第3层和作为实际服务应用领域的第4层。
什么是Plasma?
Plasma是一种将子区块链变为树形(层次结构)的想法,其中一个主要区块链作为母区块链,如下图所示,Plasma区块链以分层方式连接到根链,如Ethererm。
在每个Plasma区块链中处理交易,并将结果发送到连接的母区块链,以便最终将状态记录在根链(例如以太坊)中。 此时,不传送区块中的整个信息,而是传送区块顶端的哈希。 这非常有效,许多状态更新由单个哈希(以及一些小型相关数据)表示。
使用Map缩小格式处理
Plasma旨在通过Map Reduce表单中的并行计算显著提高交易的执行速度。
在MAP的第一阶段,计算处理的作用从母区块链发送到子区块链。 在REDUCE的第二阶段,所有子Plasma区块链将计算过程的结果提交给更高层次的Plasma区块链,直到它们到达Root区块链。
由于这种MapReduce形式的并行计算,Plasma可以提高交易的处理速度。
存款和提款到Plasma链
存款代币直接发送到根链上的Plasma合约。根链上的合同通过掌握当前状态(状态)和欺诈证明(如下所述)确保对无效提交的资金的处罚和取款。 在Plasma链中,会处理存入的代币交易。为了提取存款代币,存款人需要在Plasma链上签署交易,并且最终可以在达成共识形成的阶段退出。
关于Plasma链上的交易,在Plasma的白皮书当中存在着以下的解释。
1、Alice希望将她在Plasma链中的输出用于同一Plasma链中的Bob(没有在区块链上提交完整的交易记录)。 她创建了一个交易,将其中一个输出花费在Plasma链中,对其进行签名并广播交易。
2、该交易由Plasma链的验证器包含在区块中。 标题包含在母Plasma链或根区块链中作为区块的一部分,最终被提交并密封在根区块链中。
3、Alice和Bob观察交易并签署确认他已经看到交易和阻止。 此确认被签名并包含在另一个Plasma区块当中。
第三步中的预期是确保参与者(在这种情况下是Alice和Bob)的交易的最终性。在第一步中,Alice仍然不能确定交易是否包括在块中,并且即使在第二步中,也存在关于交易是否存储在块中的不确定性。因此,在没有第三级确认签名的情况下,Alice甚至可以在获得根链中的最终结果之前提取资金。
Plasma的优点
Plasma最终实现时,预计如下。
· 存储在根链中的数据大小减少了
· 交易费用减少
· 交易执行速度(汇款速度和智能合约执行速度)得到改善
· 可以平滑地执行具有较大数据大小的交易
不再需要在根链中存储额外数据,并且通过与Plasma链连接,可以判断更多交易并显著提高计算能力。换句话说,Plasma有望显着解决根链中的可扩展性问题,例如第2层中的Ethereum。
涉及Plasma的非法退出
由于Plasma判断多个区块链的交易,因此会发生双重支付和已经使用过的UTXO撤销等风险。 此外,可能会发生Plasma链运营商的欺诈行为(扣留攻击问题)。因此,我们需要一个流程来持续监控参与者是否不会造成欺诈并在发生时提交证据。
欺诈证据
Plasma块链中的所有状态均根据欺诈证据执行,并解决诸如双重支付问题和非法使用废弃UTXO等问题。
由于参与者拥有所有区块数据的副本,因此可以通过向根链提交区块顶端哈希来证明。 实际上,如果证明欺诈已经提交到根链,那么该区块的创建者将被授予惩罚。
扣留攻击和大规模退出
虽然人们认为它对解决可扩展性问题有很大帮助,但在实施Plasma时,会发生一种名为“扣留攻击”的攻击。扣留攻击是一种攻击,可防止Plasma块被故意批准,防止提取存放在区块中的资产(代币),或批准非法交易,如双重支付交易。在Plasma链中,采用任何人都可以参与网络的PoS,并且一个节点在一个周期内创建区块。也就是说,恶意节点有可能不生成区块或批准非法交易,这可能导致网络延迟和欺诈性交易。此外,可能难以判断它是恶意节点还是刚刚断开的节点。为此,请参阅另一篇文章(关于拜占庭故障)。
当遇到恶意的Plasma链操作员时,较低层的参与者可以将资产移动到其他Plasma链并留下有问题的Plasma链。
在未来,据说Mass Exit将作为协议/安全模型实施,以防止欺诈和延迟,例如对Plasma链的扣留攻击。 它通过收集所有希望退出(撤回)的人的签名来执行,以保护资产免受恶意操作员的攻击或阻止扣留攻击。 由于撤销是在优先级队列中执行的(按旧UTXO的顺序),非法交易或访问之前的金额将返回给正确的所有者。 因为会产生用户丧失,所以为了尽量避免大规模退出,存在着会往不出差错的方向发展的机制。 在Maas退出之后,Plasma链基本上停止,因此此时会应当产生另一个链(在Massexit之后有可能会重新启动同一条链)。
紧急补救措施
背景
Plasma链中的参与者需要将所有区块数据保留在Plasma链中,以便在区块操作发生欺诈时提交欺诈证据。因此,诸如用户的数据大小之类的产生的负担等问题,至今还不能说是实用的。Plasma还需要确认签名,并且交易利益相关者有一种机制,只有在签署后才能获得终结,持有此确认签名也是一个沉重的负担。因此,发明了一种称为Plasma现金的机制来减少用户拥有的数据。
什么是Plasma Cash?
来自根链的存款在Plasma链当中被作为不可替代的代币使用,如NFT(非伪造代币)。因此,用户仅需要对与他/她拥有的代币的ID相对应的merkleTree的节点感兴趣。基本上用户仅只用监视与自己的代币ID相关的数据。
什么是Plasma XT?
为了减少用户拥有的数据量甚至超过Plasma现金并防止欺诈,计划定期记录签名提交状态以及要收集的人数的位数据大小。在中间,palsma运算符组成检查点数据,并且用户只需要在检查点之后保存和监视数据,因此最终具有特定代币的人的信息会被正确共享。但是,当运营商不显示除Mercle Root之外的交易历史时,存在欺诈不明显的问题,并且目前没有呈现特定的检查点设计。
Plasma Cash和Plasma XT都是如此,因为它们使用NFT代币,因此不应该进一步细分已发行的代币。因此,难以适应需要替代的应用,例如结算和分散交换(DEX),并且使用方法受到限制。
什么是Plasma Debit?
为了实现所发布代币的划分,通过生成由Plasma现金链的运营商管理的状态信道,在Plasma借记中生成P2P交易。通过将部分存款存入Plasma现金链给运营商,可以在状态渠道内以存款金额作为上限进行交易。同时,人们担心信任运营商的必要性,运营商可能成为单点故障的可能性,以及在根链外进行大量脱链交易的重要性。
所有Plasma Cash/ TX /Debit卡技术都处于研究阶段,因此预计未来会有所改进。
Plasma在模具中的可能性
在Plasma的可扩展性解决方案中,对Root链没有限制,并且使用智能合约的功能,Plasma的想法也可以用于除以太坊之外的区块链。 因此,即使在第1层采用一致性算法(如Tendermint)的区块链中,它也可以成为一种强大的可扩展性手段。
分散式游戏平台MOLD正在关注Plasma作为扩展解决方案。 当实施Plasma时,可以在Root链之外同时并行处理,因此通过在MOLDEX中结合Plasma链,这是游戏内物品分布式交换,游戏ICO系统,游戏结算相关等,可以在每个根链上进行加载扩展。
此外,例如即使使用像Plasma现金这样的NFT代币,也不需要在已经决定了MOLD中的发行数量的项目代币的交易中进行划分,因此有效使用Plasma现金的可能性很高。
对于MOLD,首先要解决实现使用基于Tendermint的EVM虚拟机和ABCI协议来决定对于第1层一致性算法,但由于在第2阶段中像Plasma这样的可扩展性解决方案依然带来了利用价值,所以Plasma今后的发展还是值得我们来一同关注的。