Plasma protocol review
What is Plasma?
Plasma is a blockchain scaling solution created by Lightning Network co-creator Joseph Poon and Ethereum co-founder Vitalik Buterin.
Plasma is a framework for incentivized execution of smart contracts. It is able to scale to a significant amount of state updates per second. It enables blockchain to be utilized in decentralized financial applications worldwide.
There are two key parts of the design: Reframing all blockchain computation into a set of MapReduce functions, and an optional method to do Proof-of-Stake token bonding on top of existing blockchains.
It can be visualized as blockchains built on top of blockchains. It is a series of contracts that run on top of the root chain (main Ethereum chain).
The seven design principles of Plasma are:
1.One blockchain to rule them all
-root chain is the dispute resolver
2.Minimization of trust
-child chain is not dependent on other child chain
3.Ledger scalability
-child chain takes up the data
4.Child chain is scalable
-compatible with various scaling solutions.
5.Localized computations
-child chain does its own calculations
6.Fraud Proofs
-victim party can send a proof of fraud to the root chain
7.Unique chain
-child chains can have their own consensus algorithm
Plasma Architecture
The root chain comes into play only when there is a dispute that needs to be settled in the child chain. Child chains do their own computations and periodically feeding state information to the root chain. Once a child chain is established, users can deploy smart contracts on to the child chain independent of the main chain.
Key Components
Plasma is consisted of five key components.
1.An incentive layer for computing contracts in an economically efficient manner, structure for arranging child chains in a tree format to maximize low-cost efficiency and net-settlement of transactions
2.MapReduce computing framework for constructing fraud proofs of state transitions within these nested chains to be compatible with the tree structure
3.Consensus mechanism which is dependent upon the root blockchain which attempts to replicate the results of the Nakamoto consensus incentives
4.Bitmap-UTXO commitment structure for ensuring accurate state transitions off the root blockchain while minimizing mass-exit costs
5.Allowing for exits in data unavailability or other Byzantine behavior (cheating behavior)
Plasma Chain
Plasma chain is a chain within a blockchain. It is enforced by bonded fraud proofs. Plasma chain does not reveal the contents to the root blockchain, instead the block header hash is submitted to the root chain. The operators of the Plasma chain receive fees from broadcasting transactions on-chain. It is possible to create commitments for funds transferred or computation in the child chain, which propagates up. This allows parent chains to charge for computation in child chains. If there is an incorrect commitment, the block data is invalid and unenforceable.
Only merklerised commitments are broadcasted periodically to the root blockchain during non faulty states. This enables incredibly scalable, low cost transactions and computation.
MapReduce
A series of map and reduce functions allow for the blockchain to operate in such a way whereby there is obligation to process data. This requires the parent and children to create obligation of processing. Children must include the parent data or else the chain will halt. The parent can enforce computation in children. If the children halt, enforcement of computation can occur by broadcasting the data in the parent chain and attesting to the proof of data in the parent chain.
By constructing blockchain computation in a map and reduce framework with child chains, it is possible to take existing computer science research and directly apply it to distributed systems problem sets which exists for blockchains.
Fraud Proof
Fraud Proof means any party can expel invalid blocks when there is dispute. Alice has 1 ether in Plasma Block 3. Suppose Block 4 acts in a malicious way and assigns her 1 ether to someone else, when Alice discovers Block 4 acting maliciously, Alice can send fraud proof to the root chain.
For the minimal fraud proofs construction, all blocks must provide a commitment to a merklerized trie of the current state, a trie of outputs spent, a merkle tree of transactions, and a reference to the prior state being modified.
Note: The origins of the term `trie` comes from retrieve. Trie is a database structure used in Ethereum.
Exiting Protocol
Alice broadcasts to the root chain that she is going to exit the chain if not given access in 7 days (the 7 day challenge period). She broadcasts an intent of spending this money within the time limit. If she doesn’t spend this money, then she will be able to exit. The exit happens in the order of the age of the inputs inside the plasma block. This means that the older inputs will be able to exit first. This creates a fair system. The challenge period protocol is followed.
Assuming blocks in second tree depth is malicious, Alice broadcast to the immediate parent of the malicious block, i.e. block in first tree depth. The participants in the faulty block will move to preceding block. The faulty block will be removed.
Issues
- Mass exits in child plasma chain might lead to congestion on the main network, and congestion delays crossing the challenge period.
- Closing of transactions on main chain even before they are closed on the child chains.