研读了 @VitalikButerin关于Plasma回归的新作,使用类UTXO的账本来实现“退出游戏”机制,引起了作者的兴趣。作者认为Vitalik也在引导市场朝着ZK+Plasma的方向探索,避免市场停留在Rollup阶段内卷。
1)Plasma链之所以适用于支付场景,是因为其具备高度可扩展性和低廉的交易成本。Plasma链通过将一部分交易外包到侧链上来减轻主链的负担,从而实现更高的交易吞吐量。同时,Plasma链采用类UTXO模型,确保账本的安全性和正确性,使得支付交易更加安全可靠。
2)Plasma支付场景的运作方式是基于类UTXO的模型。用户首先将资金锁定到一个主链上的合约中,然后通过创建Plasma通道,在侧链上进行快速、廉价的交易。通道内发生的交易并不会实时提交到主链上,而是在关闭通道时,将最终状态提交到主链上进行结算。这种方式保证了支付的高吞吐量和低成本。
3)退出游戏机制对Plasma非常重要,因为它解决了侧链中的安全问题。退出游戏机制允许用户在发现侧链中存在不正常行为时,可以安全地退出侧链,并且能够保留其正确的资产状态。这种机制确保了用户的资产安全,防止作恶者操纵侧链的资产状态。
4)Plasma链难以集成EVM的无主状态,主要是因为类UTXO模型带来的限制。由于Plasma链的设计目标是实现高度可扩展性和低廉的交易成本,为了提高效率,Plasma链忽略了EVM中与账户状态转换相关的功能,采用了更为简化的UTXO模型,这导致了无法直接集成EVM的无主状态。
5)ZK+Plasma可以释放许多想象空间。ZK表示零知识证明,它可以帮助验证交易的正确性而不需要透露具体的交易信息,这为Plasma链带来了更高的隐私性和安全性。ZK+Plasma的结合可以为实现可扩展性、隐私性和安全性提供更多可能性,例如可以实现更高级的智能合约、跨链互操作、保护用户隐私等。
目前Plasma受限于支付场景,部分原因是由于其设计初衷是为了解决支付场景下的扩容问题。Plasma链通过类UTXO的账本模型,结合侧链的方式,可以实现高度可扩展性和低廉的交易成本,在支付场景下具备一定的优势。但与此同时,Plasma链的设计也有一定的局限性,例如作为侧链,主链和侧链之间的数据同步是一个重要的问题,如果同步不及时或者存在中心化的依赖,可能会影响安全性和性能。另外,Plasma链虽然具备一定的智能合约能力,但与以太坊主链相比,还存在一定的局限性。所以,Plasma链目前仍然以支付场景为主,但未来仍有可能扩展到其他领域。
确实,Plasma在支付场景下的运用可以保证账本状态被有效追踪和记录。这主要是由于Plasma采用了类UTXO模型,保留了账户余额状态。相比较其他场景需要保留全部链下状态数据,采用UTXO模型可以减轻存储空间的压力,同时也提高了交易的效率。而Plasma链在安全性方面依赖了“退出游戏”机制。如果运营方作恶,用户可以发起挑战提出自己的资产,从而保证资产状态的正确性。但是,如果资产状态非常复杂,则生成Proof的成本和复杂度也会相应增加,从而降低系统的运行效率。此外,目前Plasma很难兼容EVM的诸多无主状态,用户很难用Plasma的默克尔状态树账本来对应很多非交易状态,例如LP和CDP,这也是限制Plasma在其他领域应用的一个较为明显的问题。 在Plasma支付场景中,运作的方式是使用Plasma Cash。Plasma Cash将每个Token视为非同质化代币(NFT),每个Token都有唯一的编号。当用户进行转账时,运营方会在默克尔树中记录一笔更新状态。每个用户都可以保存自己的全局默克尔树状态,这样就可以准确地追溯账本的变化,确保数据的一致性。
对于同质化的Token,如何解决多次拆分和合并时可能导致的默克尔数据冗余的问题呢?可以为每一次资产拆分或合并状态匹配一个类UTXO ID,这样无论怎么拆分都能即刻定位到相应的交易树叶,从而避免数据冗余和挑战验证的成本过高的问题。
关于安全性和退出游戏机制,由于Plasma没有像Rollup那样独立的链系统,它需要确保自己的侧链记账和主网保持同步。因此,Plasma支付场景中的运营主体并不需要追求完全的去中心化,只要有一个可高效记账的运营主体即可确保安全的退出游戏机制的实施。 确实,如果运营方发布了无效区块、记假账或者窃取用户资产等问题,会对Plasma支付场景的安全性产生威胁。为了应对这些问题,Plasma支付场景中引入了“退出游戏”机制。
用户可以通过“退出游戏”机制,将在2层的资产withdraw回到1层,类似于Rollup的逃生舱安全机制。具体做法是,用户可以晒出自己的默克尔树状态证明,证明资产转移过程,并发起7天的挑战期。主网验证节点会检测用户是否为最终的资产Owner,以及用户是否存在资产双花等问题。由于主网节点存储了更多的默克尔树状态,因此可以核对用户的Proof是否存在恶意退出的情况。
通过“退出游戏”机制和挑战期的存在,可以有效约束2层运营方作恶,避免用户恶意退出,从而确保Plasma链的正常运行和资产的安全。 确实,Plasma难以兼容EVM中的“无主状态”,这是一个难点。因为Plasma是一种可类比为UTXO模型的记账,而EVM则是账户模型。在UTXO模型中,可以记录每一次余额状态刷新,但EVM状态机中的很多“无Owner”场景很难用Plasma的方案来实现。
对于存入Uniswap池子的USDC、放在MakerDAO的CDP中的资产等场景,用户很难证明哪一笔资产属于自己,一旦出现运营方宕机问题,合约被锁,用户就无法正常“退出游戏”。因为无法证明用户在合约里有钱,主网只能监测合约的余额,如果运营方给合约增发了一部分钱,用户无法证明哪笔钱是自己的,哪笔钱是被恶意增发的。
如果一个layer2侧链只能实现Payment转账交易,那么构建应用和生态就会受到很大限制。因此,需要针对这些问题进行深入研究和解决,以克服这些难点,实现对EVM中“无主状态”的兼容,同时扩展Plasma的使用场景,让其在更多的应用场景中发挥作用。 如果Plasma底层被彻底ZK化,用户的操作将以zk-SNARK证明形式存在,那么就能释放很多EVM的状态机场景。例如,对于用户向Plasma某合约存入的一笔资产,可以构造一笔zkSNARKs证明并向主网发起“退出游戏”,即使池子受安全威胁被冻结,用户也能撤出自己的合法资产。因此,zk-SNARKs的引入可以提高Plasma支付场景的安全性。
在涉及隐私DEX的交易场景下,用户可以使用zk-SNARKs来证明自己拥有某些资产,而不需要暴露个人隐私,这也有助于提高交易的匿名性和隐私保护性。
同时,在进行复杂升级时,Plasma的智能合约也可以使用zk-SNARKs来提供其状态升级的正确性证明,而不需要暴露细节,这有助于提高合约的安全性和减少作恶的可能性。因此,采用zk-SNARKs有助于提高Plasma链的安全性和灵活性,在更多的应用场景中发挥 Plasm 的作用。
综合来看,Vitalik在文章中清晰地描述了Plasma的现状和存在的问题,并提出了未来可能的ZK化方向。然而,你认为Plasma并不新颖,而且在支付场景中已经找到了自己的位置。对于Vitalik提出的ZK+Plasma的新方向,你表示不太乐观。
你认为当前市场上,Rollup作为一种综合考虑了投入成本、开发难度和生态兼容性的解决方案,已经成为最优解。虽然ZK+Plasma可以算作更高级的ZK-Rollup,但目前ZK-Rollup的发展并不乐观,直接跳到Plasma可能过于仓促。
另外,你提到Validium作为一种独立链扩容方案,其在ZK的应用程度上相对更高级。尽管ZK+Plasma可能与以太坊主网的黏性更高,但你认为Vitalik的呼吁可以理解,因为成熟的ZK开发者们放弃Validium而选择ZK+Plasma的动力可能不足。 总之,你对Vitalik提出的ZK+Plasma的前景持保留态度,并提出了对当前市场情况的看法。 Note:请务必细读下Vitalik的文章,再来理解本文,觉得我分享有价值,欢迎一键三连支持一下,感谢。
原文链接: https://vitalik.eth.limo/general/2023/11/14/neoplasma.html