This site is an always-in-progress repository for my thoughts and ideas. You'll generally find me writing about sustainability 🍃, urbanism 🏙️, programming 💾, vegan cooking 🍛, and whatever else pops into my mind.
A short summary of Plasma
Published on Mar 24th, 2018.

I recently was asked to do some research and give a short summary of an Ethereum scaling technology, Plasma. Since I had a blast writing it I figured I’d throw it onto my website just in case anyone else is looking for a brief, high-level summary of what it does and how it works.

Plasma offers a scaling solution which can increase transaction throughput on the Ethereum network by moving transactions off of the ETH blockchain and onto independent child blockchains. These child blockchains have the ability to process a larger amount of transactions off-chain with lower transaction fees by maintaining a separate network of block producers focused only on securing the child chain. This system allows for uninterested parties not to be bogged down with large volumes of unimportant transactions that may not require the full verification strength of the Ethereum network (eg the birth of a new Cryptokitty). At the same time interested parties can join/leave child chains at-will, allowing them to participate in smaller, domain-specific networks that are unimpeded by congestion from unrelated transactions as they would normally be on the Ethereum network. This system can even be nested, allowing for child blockchains within the child blockchains while still all relying on the “kernel of certainty” guarenteed by their parent networks (potentially bubbling all the way up to the root Ethereum network).

Under Plasma, child chains can rely on the integrity of their parent chain by periodically submitting merkleized commitments (eg block headers) to a smart contract stored on the parent network. This mechanism is the key to allowing a large number of trusted transactions to occur off-chain while also avoiding congestion on the parent’s network. This also allows for the creation of networks with increased privacy, as individual transactions do not need to be reported to the parent network and block producers on child networks do not necessarily need to consist of untrusted parties. In fact, participants on Plasma chains can be sure that their funds are secure even under networks consisting of 100% privileged/preselected block producers. For example, a bank desiring complete control over a network could create a Plasma chain consisting entirely of block producers controlled by them. They could even restrict their network to only allow certain participants by having their network of block producers censor unauthorized transactions. Participants of such a network could still trust the security of their funds even though the child chain is run by a network of entirely untrusted and centrally controlled block producers.

This is made possible by economically disincentivizing validators (block producers) on child chains from producing invalid blocks. Using a verified state stored on the parent chain, participants can be assured that they can always dispute any fraud occurring on the child chain and withdraw their funds. In fact, the worst case scenario for a participant affected by an attack on the child chain is that they are forced to withdraw and wait for a challenge period to expire on the parent chain (to ensure their withdrawl is valid and isn’t actually a malicious double-spend). In less dire cases, participants can submit a “fraud proof” to the parent chain smart contract, demonstrating that an invalid block had been produced on the child chain. If verified, the parent level smart contract can trigger a rollback, reverting the child chain to its last known valid state and punishing the fraudulent producer (through the loss of a deposit). Each of these mechanisms provide participants with a safe and trusted avenue of escape in case the child chain turns malicious.