One of the biggest challenges we’re tackling here at OmiseGO is scaling the blockchain. We're trying to achieve this through plasma, a blockchain scalability framework that doesn’t sacrifice security.
At present, Ethereum can only support 12 transactions per second (TPS). By contrast, most major credit card companies regularly process thousands of transactions a second. Scalability is a major obstacle holding back crypto and blockchain from mainstream adoption, which is why we have been working hard on plasma. With plasma, our network can currently handle up to 4,000 TPS, and with future iterations we plan to do more.
Think of plasma like its own blockchain that can have whatever functionality the builder desires.
Plasma groups up several payments off-chain so Ethereum (root chain) can verify transactions in batches instead of individually. This equals to faster throughput and low cost transaction fees.
Moreover, users can exit funds from a plasma chain onto the root chain whenever they wish.
During the Bank of Thailand Fintech Fair 2019, Kasima, OmiseGO CTO, discussed two versions of plasma: Minimal Viable Plasma (MVP) and More Viable Plasma (MoreVP).
Both share the following features:
- Fungibility: Fungibility is a feature of a commodity or a good, which, if possessed, means that the units of the particular good or commodity are interchangeable.
An example of a fungible commodity is the dollar bill. There are millions of dollars in circulation, yet every single bill has the same value, and can be exchanged for one another (interchangeable).
- UTXO-based: An Unspent Transaction Output (UTXO) is the output of a transaction that a user receives and is able to spend in the future.
Here’s an analogy that explains UTXO’s well:
Let’s say you have $25 in your wallet, you must have a combination of bills because there’s no such thing as a twenty-five dollar bill.
In this simple example, you could have any of the following combinations of fiat bills:
- Twenty five $1 bills
- Five $5 bills
- Two $10 bills and one $5 bill
- One $20 bill and one $5 bill
- And so on.
There are many more combinations of bills that add up to $25 but you get the idea. In each case, you have exactly $25 despite the fact that you have a different number of bills in each scenario.
This combination of bills is called UTXO. So even if you see $25 in your crypto wallet, you may have different UTXOs sitting in your wallet. The UTXOs vary in size, but when added together, equal the total balance of your wallet.
- Exit priorities: Exit priorities are an underlying mechanism that secure the plasma chain. They use exit-games, which ensures that all parties sign-off and validate transactions. This prevents bad actors from stealing user funds, and allows for the plasma chain to be scalable while remaining secure.
The two flavors of plasma share a few similarities and may seem interchangeable. However, the big difference between the two plasma chains start with their treatment of confirmation signatures and how MoreVP exit games determine transaction authenticity.
Confirmation Signatures in Minimal Viable Plasma
In Minimal Viable Plasma, transactions are considered invalid until they are signed twice.
Whenever a user makes a transaction, they will first sign a signature to be included in the block. Once the transaction is included in a valid block, the user will sign a second signature, known as the confirmation signature.
Both signatures then, must be sent to the operator as part of the Proof of Authority consensus.
If a user wants to exit to the root chain, he or she also has to provide the confirmation signature. If the operator includes a user's transaction after an invalid transaction, the user simply opts out of signing the confirmation signature. Because a transaction included after an invalid transaction does not have a confirmation signature, it is thus considered invalid.
Confirmation Signatures in MoreVP
In MoreVP, there are no confirmation signatures, simply because the process through which users withdraw their funds is modified.
Transactions on MVP assumed invalid. A sender needs to see the transaction mined and reported back into the root chain before it is accepted. This slower reporting process is called a confirmation signature, a design which involves a concept called exit-priority. With MoreVP this isn’t the case. MoreVP assumes all transactions are valid by default. Here users can exit their funds through an in-flight-exit-game. This verifies transactions by rewarding parties when they challenge a “non-exitable” output with one challenge condition. This faster alternative provides users with an overall better design and experience than MVP.
Learn more about OmiseGOs Plasma MoreVP by watching Kasima’s explainer during the Bank of Thailand Fintech Fair 2019.