What is the OMG Network (OmiseGO) & The Plasma Protocol?
Originally called OmiseGo, the OMG Network started off as a spin-off of the traditional Thai payment system, Omise, which was launched in 2013. It previously held itself out as a “payment gateway for Southeast Asia, based in Thailand, providing a secure and white label solution to merchants and enterprise businesses”.
OmiseGo’s parent company is SYNQA, a Thailand-based Fintech firm, which in August 2020, secured $80 million in capital via a Series C investment round led by SCB 10x, a subsidiary of the Siam Commercial Bank. Japan’s Toyota Financial Services Corporation also joined as one of its major investors.
In 2017, OmiseGo ran its ICO, raising $25 million. Following the conclusion of the ICO, the developers announced an airdrop, where the Ether owners could participate.
On July 1, 2020, the project rebranded under the name, OMG Network, following its previous month’s first open-test. In its press release, the developers shared that the original name no longer reflected what the company was doing, as well as the crypto community confusing OmiseGo with the Omise payment system.
What Makes It Unique?
Excitingly enough, OMG Network has a stacked lineup of advisors, including, but not limited to Vitalik Buterin, Joseph Poon, Dr. Gavin Wood, Vlad Zamfir, and Roger Ver.
OMG Network uses Plasma as its blockchain scaling solution. Created by Poon, Lightning Network’s co-creator, and Buterin, Ethereum’s co-founder, Plasma’s proposed framework incentivizes and enforces the execution of smart contracts, which of course is scalable to a significant amount of state updates per second, according to its whitepaper.
In plain, Plasma is essentially comprised of blockchains built upon blockchains, serving as a series of contracts that run on top of the main ethereum blockchain. You can visualize Plasma in the image shown below:
Poon and Buterin’s goal in designing Plasma, is to have the main blockchain as the root blockchain, with every other chain (child chain), in addition to completely minimize trust. In other words, there are mechanisms in place for individuals to exit from child chains.
Plasma’s functionality depends on MapReduce, a programming model for processing and generating big data sets with a parallel, distributed algorithm on a cluster. If there is a large amount of data, parts of that data can then be delegated to smaller entities, who compute them in parallel and then return the result to you.
MapReduce can be broken down into “Map” and “Reduce:”
With Map, data is divided and handed over to different entities to be solved in parallel. Reduce, on the other hand, is where entities solve the problem and execute the “summary” function which considerably lowers the data size and returns the summarized value.
So, applying MapReduce, let’s explain the image above:
In the Map stage, two things are happening:
- (1) Plasma chain 1 gives its task to Plasma chain 2, and
- (2) Plasma chain 2 then assigns each page to Plasma chain 3
From there, Reduce kicks in:
- (1) Plasma chain 3 then computers what it just received from Plasma chain 2, and returns Merkelized data back to Plasma chain 2, and
- (2) Plasma chain 2 then gets final data, sending the final Merkelized data back to Plasma chain 1.
Your next question is most likely, what is “Merkelized” data? To understand this, you must look to the Merkle Tree.
So, what is the purpose of a Merkle tree?
Each block on a chain contains thousands upon thousands of transactions, making it extremely inefficient and impractical to store all the data in a block as a series. This makes it extremely cumbersome in potentially locating any particular transaction.
This is where the Merkle tree comes in, helping to find out whether a particular transaction belongs in that block (or not).
Let’s say you want to find the data in this particular block, illustrated in red above. Rather than going through the cumbersome process of looking at each individual hash, and seeing whether it belongs to the data or not, you can track it by following the trail of hashes leading up to the data.
When you hear the term “Merkelized”, it refers to the Merkle root, or the single node on the highest tier labeled “Top Hash”. Each child chain must send the Merkelized solution every once in a while to the parent chain.
Earlier, we mentioned that part of the developer’s design for Plasma was to ensure that it was completely trustless, providing mechanisms to ensure that individuals can exit the chain appropriately. Take a look at this image below:
Let’s say Alice has 1 ETH in Plasma Block #3, but for whatever reason, sees that she no longer has that ETH in Plasma Block #4.
Let’s assume that the person responsible for managing Block #4, acts in a malicious way, and assigns her 1 ETH to someone else. What does Alice do?
The Plasma smart contract will enable Alice to send a Fraud Proof to the root blockchain, to her or anyone else who notices this activity. From there, the root blockchain will then check whether the fraud is real or not, and if it is, it will “roll back” the malicious block, rendering it invalid. Thus, the state of the plasma chain goes back to Block #3.
And what happens to Block #4? The signer/creator of Block #4 gets penalized.
Exiting Protocol in Plasma
Now, this outcome is wholly dependent upon whether or not the individual has access to the fraudulent, which may not always be the case. In the event Alice didn’t have access to the fraudulent data, Plasma’s internal dispute resolution system kicks in, with its pre-designed exits.
Let’s assume for this second hypothetical, that Alice didn’t have access to the fraudulent data.
In this case, Alice has 1 ETH on Block #3, but she doesn’t have any access to Block #4.
So, Alice informs the parent chain (root chain) that she is going to exit the chain, if she is not given access in 7 days. In doing so, she will broadcast her intent of spending that 1 ETH within the 7 days. If she doesn’t spend the 1 ETH, she will then be able to exit the chain.
The exit happens in the order of the age of the inputs inside the plasma block, meaning that the older inputs will be able to exit first--creating a fair system. The idea is to protect the root chain at all costs, only having participants move to that block if all other blocks are compromised.
Now, when Alice informs the parent chain of her intent of either spending or not spending that 1 ETH, that “intent” needs to be stored somewhere, which brings in nested trees.
Source: Plasma whitepaper
Can you identify the three (3) levels of chains here?
- Level 0: Root Chain (e.g. Ethereum)
- Level 1: Child of the Root Chain (Plasma Blockchain, 1st Tree Depth)
- Level 2: Child Chains of Level 1 (Plasma Blockchain, 2nd Tree Depth)
- Level 3: Child of Level 2 (Plasma Blockchain, 3rd Tree Depth)
Now, let’s say a block in Level 2 is compromised; where will Alice move her 1 ETH?
Source: Plasma Whitepaper
Any participants in the compromised block will move to the preceding block, and that compromised block is removed from the chain. This is an economically more viable solution, leaving the root chain undisturbed.
The OMG Network uses OMG tokens. The 2017 ICO which took place from June 23 to July 23, raised $25 million. The company didn’t want to make the same mistake as BAT did, limiting the OMG sale to KYC, or people who could easily be identified to prevent the possibility of one or two rich people from buying almost all the tokens.
Arguably, the most popular feature of OMG Network is that it is a sidechain, scaling the work with ERC tokens using batch transactions through smart contracts.
This integration will result in a reduction of confirmation times, which deliver faster payments while fees are also reduced. The effect of which allows OMG Network to handle thousands of transactions at a third of the cost of Ethereum as a Layer-2 solution for Ethereum that batches transactions before settlement. Batching Ethereum transactions on secondary layers have become the preferred solution to help scale the network, according to CoinDesk.