From Vitalik's article "An Incomplete Guide to Rollups" (https://vitalik.ca/general/2021/01/05/rollup.html):
Additionally, Plasma and channels share a key weakness in common: the game theory behind why they are secure relies on the idea that each object controlled by both systems has some logical "owner". If that owner does not care about their asset, then an "invalid" outcome involving that asset may result.
I just didn't get it. Can anyone explain this implication to me, please?
So how I understood Plasma:
- Users sends here tokens to the L1 smart contract, let's say 10 ETH for Alice
- Smart contract locks them in
- Same amount of "bridged" tokens are minted on the L2
- Now Chain Operator builds a Merkle tree for all transferred assets (Alice has 10 ETH, Bob has 20, etc)
- Periodically Operator publishes a Merkle tree root to the L1
- Operator can generate a Merkle Proof for each asset owner. If Alice ask Operator, then he can generate one for her
- Now Alice can move her assets on L2
- To withdraw assets Alice should send her Merkle Proof to the L1 smart contract
- After the withdrawal period (say, 7 days) if no one provided a proof that this asset is in his hands - smart contract unlock assets to her
If Alice doesn't care about here ETHer or some other assets - how it leads to the "invalid" outcome? Can you please provide an example?
Finally, this drawback lead us to Rollups...
Why Plasma can not build a fully general system:
Plasma and channels are "full" layer 2 schemes, in that they try to move both data _and_computation off-chain. However, fundamental game theory issues around data availabilitymeans that it is impossible to safely do this for all applications. Plasma and channels get around this by relying on an explicit notion of owners, but this prevents them from being fully general (i.e. for ANY SMART CONTRACTs).
Why rollups are better:
And most importantly, the lack of data availability issues means that there is no longer any need to map assets to owners, leading to the key reason why the Ethereum community is so much more excited about rollups than previous forms of layer 2 scaling: rollups are fully general-purpose, and one can even run an EVM inside a rollup, allowing existing Ethereum applications to migrate to rollups with almost no need to write any new code.