Scalability Issues at First Glance
Blockchain’s scalability and a whole bunch of solutions to the problem — one of the most fundamental aspects that you should focus on to learn in the space, yet doesn’t seem like very approachable for newbies to catch up all of them. That was what I have been seeing all the scaling solutions as.
When I first got to know about blockchain technology (more specifically Ethereum blockchain), I was really fascinated by all the decentralized applications and their philosophy behind it, dreaming of the Web3.0 created by Ethereum. Even though I knew that scalability is one of the most important criteria to consider while running a project (for now, I’ll skip explaining it but you can see where the issue comes from and the significance of it referring to an article here), I have been distancing myself from the topic because it seemed too difficult for someone who was just looking at application layers to comprehend fully.
Got advised by pro researchers
Ever since I started reading online resources on Plasma on my own, however, professional Plasma researchers around me from Cryptoeconomics Lab proposed me a very approachable way for complete beginners to start learning Plasma from the very scratch. They provided me with a whole bunch of article references with the right order to read them. They know the topic comprehensively even from a beginner’s point of view since they’re currently working on to implement an off-chain transaction verification protocol called ‘Plasma Chamber’ in order to guide any engineers towards effortless development of their own Dapp on top of Plasma. The source code of their ongoing development can be found via their Github page.
I’d like to share their thorough guide here with all the blockchain intermediates who know much about application layers, yet want to gain a deep dive of the technology leaning more of what is going on with the protocol layers. So let’s get it started!
Study Guide Framework on Plasma
First, you gotta know the whole structure of Plasma and which part the article is talking about. There are a variety of specific topics that authors are focusing on to discuss in the article, but essentially you can classify them into several categories so let’s decompose the whole system into 3 parts as follows;
1. Ethereum as rootchain -> UTXO-based childchain with Merkle Tree
Important point: you can reduce a gas cost by putting all the transactions in a Merkle Tree without verifying them and only submitting Merkle Hash of it onto the root chain (Ethereum chain). The Merkle hash must be submitted to the rootchain after every single block is generated so that UTXO on the childchain (your partial balance) belongs to a certain block height.
2. Merkle Tree -> Exit Procedure
Important point: since you only have to verify each transaction when you exit from the childchain (thus you can reduce the gas cost!), incorrect transaction information can be published by childchain PoA single group of operators unless you can inspect those transactions in an efficient way. There have been numerous studies discussing how to reduce its inspection cost.
3. Exit Procedure -> Usability/User Experience; Aiming for the adoption of Plasma (as its final goal!)
Important point: Considering the exit procedure, how long of challenge period would it be necessary to prepare?
In addition to acquiring the whole picture and understanding each category within it, you should also know that drawing will really help you to visualize how the whole system works clearly while reading articles. Trust me, it is surely better than just imagining the intricate system inside your head, it will prevent yourself from being lost on the way.
Useful Study Tools
Second, you should keep in your mind that there are many different types of approaches that Plasma research projects are employing; there is a map that listed all different kinds of Plasma projects that are currently on research and categorized each of them along with branches as how they evolved from previous proposes’ pros and cons and for what specific purpose each project is implemented for. You can refer to an article for more information here; Plasma World Map
It is a good starting point to the two major categories of numerous studies; Simple Transfer and General States & Computation as this article stresses.
You should also note that every project is ever growing, hence the map might not be perfectly reflecting the current status of each project, but it will definitely help you understand how each has evolved from which previous solution’s weak points (cons) and mitigation towards it in the next-proposed solutions.
Third, you should have a ‘dictionary’ that you can always look up a term that you didn’t know in a credible source; ‘Mastering Ethereum’
Now you are done with getting everything ready before starting studying Plasma. Here are the all credible sources you should use to study plasma
- Learn Plasma: it will allow you to learn two major UTXO-based solutions in pursuit of simple transfer. https://www.learnplasma.org/en/learn/
- Ethereum Research: Under the ‘Plasma’ category, there are a whole bunch of proposed Plasma schemes titled like ‘Plasma xx’ edited by the core members of its researching teams. https://ethresear.ch/c/plasma
- A series of videos by Ethererum Foundation’s core developers, ‘Plasma Implementers Call’ on Plasma Youtube Channel. https://www.youtube.com/channel/UCG2MeKuKDJRK4gFNk-dQuZQ
I’m still on a long journey to the full understanding of Plasma myself, so please leave any comment on if you have any suggestions/ better idea on how to keep learning. Thank you!