What is Plasma, where is it going, and when?

Last month, my colleague Ben Edgington wrote an article called “State of Ethereum Protocol #1”. He dives into the past and present progress of sharding and general changes in the base protocol. In this post, I will discuss the same information in regards to Plasma to provide readers with a better sense of its progress and what’s to come.

Introduction to Plasma

We often talk about layer 1 and layer 2 solutions for Ethereum. Layer 1 solutions — as Ben talked about in his post — are built into the core infrastructure of the blockchain itself. Layer 2 solutions — one of which I will be talking about — are built on top of the blockchain without changing any rules of the blockchain.

Plasma is a layer 2 technology built on top of the Ethereum protocol using a combination of smart contracts and cryptographic verification. Together, these enable fast and cheap transactions by offloading these transactions off the main Ethereum blockchain into a “child” chain. These child chains periodically report back to the main chain and use the main chain to settle any disputes (almost like a higher court). The main chain will use mathematically verifiable methods to handle disputes and reward the correct party with their funds.

A fundamental criteria for Plasma is security: your funds will always be retrievable by you and not anyone else (companies/hackers cannot steal your funds). Some applications of Plasma include decentralized exchanges (peer to peer exchange of assets), faster payments enabling a richer commerce ecosystem, and applications that require transfer of assets in a many-to-many model.

Vitalik Buterin recently said it is a “bad idea” to build (sophisticated) features into the base layer of the blockchain. He writes, “…it would create a high level of governance overhead as the platform would have to continually discuss, implement and coordinate newly discovered technical improvements.” The time intensive task to add a new feature into the base protocol might cause Ethereum to stagnate. We should not only be relying on changes to the base protocol to continue progressing Ethereum. “I do think that as blockchains become more and more mature, layer 1 will necessarily stabilize, and layer 2 will take on more and more of the burden of ongoing innovation and change.”

Ethereum Plasma symbol Source: Youtube

Where is Plasma Now? The Past and Present

Plasma White Paper [August 2017]

Vitalik and Joseph Poon published the Plasma whitepaper. The general consensus at the time of announcement was a little confusion but lots of excitement as seen on reddit. Shortly after, it was announced that OmiseGO would build a decentralized exchange using Plasma.

Plasma Implementers Call Source: Youtube

Minimum Viable Plasma [January 2018]

Vitalik — along with the help of Joseph Poon and David Knott — released the specs for “minimum viable plasma” on ethresear.ch. The purpose of Plasma MVP was to simplify and provide the basic security properties of Plasma to implementers and jumpstart development. At this point, a selected few developers were invited to join the “Plasma Implementers Call.” From there, a bi-weekly call on Wednesdays at 10:00AM EST began and has continuously been run by Joseph Poon and Karl Floersch. The calls are used to bring attention to new theories and proposals, discuss technical feasibility, sing happy birthday, etc.

T-shirt spotted in the wild Source: Teepublic

Plasma Cash [March 2018]

Plasma Cash was announced by Vitalik alongside Karl Floersch and Dan Robinson. Plasma Cash is commonly mentioned with the quote “Plasma Cash is Plasma”. Plasma Cash gets its name because it is perceived to act similar to cash — i.e.bills that cannot be divided or cut up to represent different values. Right now, we have “bills” that are denominated in standard values, such as $10, $20, $50, and $100, and are represented as non-fungible tokens. Each deposit into the Plasma Cash smart contract will be treated like a bill and indivisible. Plasma Cash utilizes unique identifiers when depositing ETH into a Plasma contract that allows users to only store information about their coin. But even then, the storage requirements from a user standpoint can be excessive, as one is required to store and maintain an ever-growing history of transactions, inclusion proofs, and non-inclusion proofs.

Plasma XT [May 2018]

Kelvin Fichter — along with the help of Dan Robinson, David Knott, Joseph Poon, Karl Floersch, Vitalik Buterin, and Justin Drake — introduced Plasma XT, a method to reduce the storage requirements and maintain finality using cryptoeconomic aggregate signatures and checkpointing. Successful checkpoints allow users to discard the history prior to the checkpoint and significantly reduce the storage requirements from a user standpoint as the checkpoint is viewed as final and transactions prior to it cannot be reversed or challenged. Cryptoeconomic aggregate signatures allow operators to efficiently get sign-off from the users on a proposed checkpoint using bitfields.

Visualization on the differences between Plasma MVP and Plasma Cash Source: Kevin Zhang

Plasma Debit & More Viable Plasma [June 2018]

One property of Plasma Cash is that it cannot be divided up or merged. Generally, this made Plasma Cash difficult to manage as a mechanism to transfer funds for payments. In June 2018, a mechanism called Plasma Debit was introduced by Dan Robinson with assistance from Kelvin Fichter, Vitalik Buterin, Joseph Poon, and Karl Floersch to allow for divisible amounts to be exchanged. This mechanism is similar to paying with your debit card, therefore named appropriately after that. Each Plasma Debit coin is essentially equivalent to a bidirectional payment channel (similar to the multisig-based payment channels used in the Lightning Network) between the current coin owner and the operator. This allows the operator to record microtransactions in the payment channel of arbitrary amounts. This method currently only works with single-operator run Plasma chains.

Also in June 2018, More Viable Plasma was introduced by Kelvin Fichter and Ben Jones with assistance from Vitalik Buterin, Li Xuanji, David Knott, Eva Beylin, and Kasima Tharnpipitchai. With the same acronym as Minimum Viable Plasma, it is generally known as MoreVP. It is an extension of MVP but reorganizes the exit priority from output-age priority to youngest-input priority and removes confirmation signatures. There is also an additional special exit game that requires users to post bonds and piggyback off the transaction.

There are currently over 100 Plasma-related topics being actively discussed on ethresear.ch and I encourage everyone to jump in there if you want to learn more about the pain-points and discuss potential solutions relating to Plasma. If you are new to this space but want to learn more about the basics, I highly suggest learnplasma which is a site started by Kelvin Fichter and maintained by the community.

Screenshot of learnplasma.org Source: learnplasma.org

Market Participants

OmiseGO started development of Plasma MVP in the beginning of January with the plasma-mvp repo. OmiseGO is building out Plasma to enable a DEX to exchange tokens in their future payment network. In their July update, they stated they have, “spent some time cleaning up the repository and preparing to convert it into a “hackathon-ready” Plasma MVP implementation. Basically, this means that `plasma-mvp` will be used as a learning tool to make Plasma more accessible. The motivation for this is to enable more people to play around with Plasma and abstract the nuances of the protocol, thus enabling developers to rapidly prototype and build applications on top of Plasma.

Late June, Loom Network released their version of Plasma Cash to enhance their NFT functionality. Plasma Cash is a great use case for NFT’s as they provide unique identifiers on the Plasma chain and do not require divisible amounts to operate. Loom has built PlasmaChain which is a layer 2 hub that bridges multiple sidechains to Ethereum, allowing for faster and cheaper token transactions and a more performant chain for developers to deploy their Solidity DApps to. You can find their repo here.

In July, my colleague Simon de la Rouviere of UjoMusic and notable for his work in Curved Token Bonding in Curation Markets wrote up a Plasma primer.

Notable Active Plasma Implementations

OmiseGO (MVP-Python, Cash-Python):

https://github.com/omisego/plasma-contracts

https://github.com/omisego/plasma-mvp

https://github.com/omisego/plasma-cash

Loom Network (Cash-Python):

https://github.com/loomnetwork/plasma-cash

BankEX (MVP-JS):

https://github.com/BANKEX/PlasmaParentContract

https://github.com/BANKEX/PlasmaETHexchange

Blockchian @ Berekley (MVP-GO):

https://github.com/FourthState/plasma-mvp-rootchain

https://github.com/FourthState/plasma-mvp-sidechain

DeepBlockchain (Cash-N/A):

https://github.com/wolkdb/deepblockchains

Lucidity Tech (Cash-JS):

https://github.com/luciditytech/lucidity-plasma-cash

Notable People

- Joseph Poon (Plasma Author)

- Vitalik Buterin (Plasma Author)

- Karl Floersch (Ethereum Foundation)

- David Knott (OmiseGO)

- Kelvin Fichter (OmiseGO)

- Dan Robinson (Chain)

- Xuanji Li (L4 Ventures)

- Georgios Konstantopoulos (Loom Network)

Wrapping Up

Plasma is continuously evolving. The beautiful and exciting part is that developers can implement it in various ways. Plasma is not a product itself. It is an idea, a specification, a guidance to developers on how to think about layer 2 technologies that guarantee funds to the user that don’t require a trusted operator. Many of you will probably ask, “When will we be able to use Plasma in production?” You would be hard pressed to find someone that can give you an answer to this. Many implementations have come a long way, particularly with Plasma Cash via Loom Network and OmiseGO. There is much work that still needs to be done, especially in the user experience area as many of these implementations rely heavily on the user to actively participate to eliminate fraud.

If there is one thing you should take away from this article, it is that there are great developers out there constantly pushing the boundaries of scalability to bring forward solutions that are safe, secure, and economically viable. We will arrive at a solution — various solutions, likely — but we will do so methodically and carefully to ensure we do not jeopardize the blockchain community. If you want to get involved, ConsenSys is hiring Plasma Researchers to push R&D forward and bring it to life.