Implementations of Plasma

As a framework, Plasma has nearly unlimited applications — the majority of which are still in the research stages. Below are very brief overviews of some of the latest proposed implementations of Plasma, which will be explored in greater technical detail in future articles.

Minimal Viable Plasma (MVP)

As the name suggests, Plasma MVP is a UTXO-based chain that possesses the basic principles of security and enables high transaction throughput, but relies on users being able to willingly interact with, validate and exit the chain themselves. In these early stages, users will also have to have a certain level of trust in the operator, as MVP uses a PoA mechanism.

More Viable Plasma (MoreVP)

More Viable Plasma builds upon MVP by improving the user experience. To transfer UTXOs in MVP, users would need to send them to another user’s address, wait for that transaction to be confirmed in a block and then send a confirmation signature. Not only is this ‘double signature’ system onerous on users, it reduces the block space available for other transactions. MoreVP, in essence, removes the need for these confirmation signatures due to its adjustments to exit priority.

The MoreVP specification is currently being expanded by the team at OmiseGo.

Plasma Snapp

Currently at the proof of concept stage, Plasma Snapp aims to effectively remove much of the complexity of Plasma integration through the use of ‘zero-knowledge succinct non-interactive arguments of knowledge’ (‘zk-SNARKS’), removing the need for confirmation signatures and even exit challenge games.

Vitalik has also recently elaborated on the use of zk-SNARKS in scaling, providing a proposal that wouldn’t require transacting parties to always be ‘online’. This makes progress in solving the data availability issues that would be present within current Plasma implementations, which is caused by their liveness assumptions regarding eventual consensus¹.

¹ In simpler terms, Proof-of-Work (‘PoW’) can essentially guarantee liveness, whereas other consensus mechanisms like PoA aren’t as guaranteed due to the requirement of ‘monitoring’.

Plasma Cash

Plasma Cash is an implementation that utilises non-fungible tokens as a representation of fixed amounts of fungible ones. For example, if I deposited 25 ETH into the Plasma Cash chain’s contract, I would receive a token on the chain worth 25 ETH. Each token on Plasma Cash is attributed a unique ID upon creation and cannot be divided or merged with other tokens.

Plasma Cash blocks are also different to those seen in MVP. Plasma Cash blocks save a ‘slot’ for every token in existence on the chain, meaning users can not only see what has been sent in each block, but also what hasn’t been sent. This allows the formation of sparse Merkle trees, which can act as a proof that a transaction isn’t part of a particular block.

As a slot in each block is unique to each token, no other token can be placed into that slot. This means that users only need to keep track of their own token(s), as no other tokens can enter their slots. This reduces the amount of data that needs to be transferred to clients, as they only need to download the data they are privy to, i.e. proof of their token history.

One of the issues with Plasma Cash is in its general flexibility — tokens on the chain must always have a fixed denomination, preventing the transfer of fractions of tokens.

Plasma Debit

Plasma Debit is very similar to Plasma Cash. One of the key differences is that it allows partial payments to be made, thus enabling arbitrarily denominated payments and, therefore, micropayments.

Plasma Debit is like a Lightning hub, where each token represents a bidirectional payment channel (as opposed to the deposit itself). Unlike the Lightning Network, the state of the channel is regularly notarised to the main chain, meaning these tokens can be transferred from one owner to another (as with Plasma Cash tokens). As these tokens are payment channels, this means that a new party can join the Plasma Debit payment network without having to perform an on-chain transaction themselves.

Plasma Debit is most suitable for payments, as all transactions will be fast and cheap. One of the projects that is researching a Plasma Debit implementation (alongside their Plasma Cash work) is the Loom Network.

Plasma Bridge

A theoretical project that should soon have a proof of concept, Plasma Bridge would be a way to connect two layer 1 blockchains together via a shared Plasma child chain. This would allow the conversion of different blockchain assets to a standard native token on the child chain, enabling free transfers of value between chains, i.e. atomic swaps.

Interoperability of blockchains

The interoperability of blockchains is another major discussion point for the future of the technology. Many people are fiercely loyal to their chosen chain, which can be detrimental to development progress as proponents fail to acknowledge their own chain’s objective weaknesses or other chain’s relative strengths.

Polkadot are aiming to address this issue, as are numerous Plasma-based projects. An example of the latter is OmiseGo, who are building — amongst other things — a Plasma DEX that will initially use clearinghouses for assets where Plasma child chains cannot be built, such as Bitcoin.