TLDR: Using existing protocols on Ethereum to enable faster Plasma exits while creating a sublime user experience.
The blockchain ecosystem suffers from two major issues:
- Slow and Expensive transactions — Scaling issue
- Poor usability of DApps — UI/UX issues
We at Matic Network are trying to address both. This post is to highlight how a user can have a better Plasma exit experience by integrating and tweaking some of the protocols and projects already building on Ethereum.
For people new to Plasma, here is the flow for asset transfers in the Plasma environment:
- User sends tokens/funds from the mainchain (Ethereum) to the Plasma chain/contract
- User receives funds on Plasma chain
- User transacts/uses funds on the Plasma chain
- User submits an exit request whenever she needs to withdraw funds to the mainchain
- User receives her tokens after a 7 day challenge period
Plasma for general state transitions is under active research, and we are also working on that front — but that’s a topic for another day.
Most Plasma implementations have a minimum proposed challenge period of 7 days, which means that the users initiating the Plasma withdrawals will have to wait for a week to have access to their funds.
Although the challenge period is in place to guarantee security and provide a window in which exits can be challenged, this creates a poor user experience.
We need to ensure that the user experience is not compromised while ensuring the safety guarantees of the Plasma framework.
The smart way to do this is to not reinvent the wheel but leverage the existing Ethereum based protocols that can come together to create a more fluid user experience.
So how do we solve this ?
Can we figure out a way to have a user get access to funds before the maturity of the lookout period?
Well as it turns out, it is possible!
We have been working towards enabling such a process by generating the Exit Token in the form of an NFT so that represents/contains the assets that are locked up in the Plasma contract for the duration of the challenge period.
How does this help the user? This opens up a host of possibilities:
Case 1 — User obtains a loan (i.e. gets funds early) via a lending protocol using the NFT as collateral
Case 2 — User sells the NFT in a secondary market
Both these cases ensure that the user has an ‘option’ for access to instant liquidity if she desires albeit with a minimal fee. So they can either wait for the 7 day challenge period to end or opt for the faster exit mechanism.
Let’s delve deeper into these cases:
Case 1 — Obtaining a loan via a lending protocol using the NFT as collateral
Lending Protocols enable borrowers to obtain loans from lenders by putting their crypto holdings as collateral.
This protocol can be leveraged in the Plasma exit scenario if we have a token that represents the user’s funds that are locked up in the withdrawal process but are yet to pass the challenge period before being sent back to the main chain.
This token (Plasma exit token) allows a user to leverage funds on Plasma side chains during an exit event to be used as collateral for sanctioning a loan on Dharma Protocol which the lender later redeems for the locked tokens once the lookout period ends.
What components do we need to enable this? This list can be a starting point :
- A Plasma exit NFT token (ERC 721) that represents the tokens/funds in the process of being withdrawn from the Plasma chain
- A lending protocol that supports loans against NFT collaterals
- A mechanism that can verify the sanctity and veracity of the exit being valid, and not fraudulent
Now lets see where we are currently with respect to these infrastructure requirements.
I) The first step is to have a NFT token to denote funds locked in the Plasma exit . Have a look at the tweet below:
We at Matic have created a NFT for Plasma exit withdrawals on Matic Plasma chain. A smart contract enables the NFT to be minted on initiating withdrawal and also to burn the NFT once it is used to claim funds once the lookout/challenge period ends.
When a user submits an exit from the Plasma chain, the funds in the withdrawal request are represented as an NFT (ERC 721). The funds still reside on the Plasma chain but the NFT now represents the tokens of the user who has initiated withdrawal.
The NFT is minted by the Plasma smart contract deployed on the mainchain once the user has submitted the exit transaction. This NFT resides on the main-chain and is freely transferable as any ERC721 token.
Once the holder of the exit token uses it to reclaim the funds from the Plasma contract, the exit token will be burnt and the funds will be released to the corresponding NFT holders address.
II) A lending protocol that supports loans against NFTs (ERC 721)
Dharma Protocol is working on enabling loans against ERC 721 NFTs as collateral. Check out the related code on Github:
Mentioned below are the details on their ongoing bug bounty to for ERC721 collateralization.
Dharma Bug Bounty: ERC721 Collateralization
Up to $5,000 in bounties for critical exploits
III) Lenders can attest to the sanctity of the NFT by running watchtowers, which will help protect them against the NFTs associated with fraudulent transactions.
Initially the Plasma chain operators could run the watchtowers, while making the code open source to allow for security audits and improvements. Subsequently anyone who is interested to run a watchtower can run a node and participate in verification.
We need to enable lenders to objectively check the Plasma chain for fraudulent transactions.
Third parties/Lenders can run nodes with software to detect frauds and thereby attest to the authenticity of the NFT owner’s claim to the loan.This enables the lenders to verify the validity of the exit token themselves and earn interest for the service provided.
Once it is verified that the exit token is valid, the usual process of a obtaining a loan utilizing the Dharma protocol follows and and a user can obtain a loan against their Plasma exit NFTs — thus effectively enabling a faster exit, albeit with a small fee (Relayer fees and lender interest on Dharma/Any lending protocol)
This opens up a huge market to lenders in case of exits from the side chains increase as people would be willing to pay a small interest fee to have instant access to their funds, as compared to waiting for 7 days to access them. This is akin to invoice financing/ which is a huge business for banks of today. The banks function as lenders and take a % of fees for providing liquidity to businesses based on their accounts receivable.
In the future, when credit scoring and reputation systems are in vogue and there is a crypto-economic mechanism in place to keep these systems in check, there could be an underwriting layer — attesting potential loan requests, by independently verifying transactions. We could also introduce some sort of staking mechanism for underwriting later — but there is sufficient incentive currently to watch and report fraud transactions in terms of bonds to be taken on-chain by way of fraud proof challenges.
Case 2 — Selling the NFT in a secondary market
0x protocol has already launched ERC 721 trading in their protocols V2.
Below is an excerpt from their protocol V2 release.
To start, we’re launching with support for ERC-20 as well as ERC-721, the standard for Non-Fungible Tokens. This means you can trade your Ethmoji, Fan Bits, CryptoKitties, LAND, or any other unique, collectible assets using 0x.
Also they have an ongoing bug bounty for the same.
The Plasma exit token can therefore soon be traded directly on the decentralized exchange relayers.
Thus it creates value for both parties, by creating liquidity for the individual trying to exit the Plasma chain and by helping the trader make a profit as he buys the NFT at a small discount on the original value. The buyer can redeem the token on the Plasma main chain contract to unlock the collateral once the challenge period ends.
Although in this case the risk and burden of due diligence falls on the trader making the decision of buying the Plasma NFT. To enable that the trader can run a watchtower node to check the validity of the exit tokens without having to trust any third party.
As we have seen, by integrating with the existing protocols on Ethereum the process of exiting a Plasma chain can be made smoother by allowing faster access to liquidity. Be it via obtaining a loan using the exit token as collateral or by selling the exit token directly in a the market, in the process creating a secondary market for Plasma exit tokens.
Once Plasma chains attain adoption, there will be a lot of withdrawals triggered and the above mentioned use cases could potentially become multi million dollar businesses.
Scaling and enabling a smooth user experience on the blockchain will be a joint effort. We are proud to be a part of the journey alongside not just 0x and Dharma protocol but also the other researchers working on Plasma.
Including but not restricted to the ones mentioned by our friends at Spankchain in this tweet.
Cheers to a decentralized future!
Please reach out to siddhartha(at)matic.network for any queries or suggestions.