Advanced Cryptocurrency Topics: Ethereum’s Plasma Intro
Part I — Revisiting Ethereum & Digging Into Scaling Issues
Ethereum & Vitalik Buterin. Together, product & founder, exploded into cryptocurrency celebrity-status almost immediately after going live in mid-2015. They’ve since remained the universal poster children for the Blockchain 2.0 revolution. Bitcoin leveraged the concepts of a blockchain, a protocol (the Nakamoto Consensus), & a digital currency to to create an immutable, decentralized network that, at a high level, runs a single core feature: maintaining a public, universal ledger of verified transactions with said cryptocurrency.
Vitalik’s, Ethereum’s founder, brilliant insight was the realization that blockchain could be used for vastly more ranging forms of computation; as opposed to the somewhat limited functionality of Bitcoin’s blockchain which is limited to strictly Bitcoin-as-a-universal-currency functionality.
Ethereum, instead, leveraged the concepts of a blockchain, protocol, & digital currency to create an immutable, decentralized network that maintains the states of user-created decentralized apps. Building dapps (decentralized apps) on the blockchain, thus the 2.0.
Where Is Ethereum Today?
Unfortunately, with this revolutionary leap of blockchain adoptability came an equally drastic leap of scaling issues. Bitcoin, as a blockchain running what’s in essence a single banking dapp, is facing serious scaling issues — can you imagine what scaling issues a blockchain built to compute an ever-growing amount of dapps faces? For some quick math, here are a few relevant numbers: Ethereum averages 13 transactions per second; Ethereum tokens can handle roughly half that at 7 txs/sec. Facebook, for a frame of reference, makes about a whopping 195K requests per second.
By [my] estimate we’re roughly 250x off being able to run a 10m user app and 25,000x off being able to run Facebook on chain. A 100x scaling improvement would allow a 1–10m user app.
— Fred Ehrsam (prev. cofounder @ Coinbase)
The number of transactions per second is capped via the established gas limit. Ethereum miners can certainly simply increase the gas limit, however this is a symptom-stopper, not a long-term solution, because eventually this would compromise decentralization (only datacenters could afford to validate blocks). On the flip side, whatever scaling solution aligns with decentralization must also not forfeit a reasonable amount of security.
The challenge is what Vitalik calls the “scalability trilemma”: building a system that fulfills “decentralization”, “scalability”, and “security”.
Plasma is a package of specific smart contracts that can be used on top of a root blockchain, such as Ethereum, to create sidechains that periodically commits the updated settlement balance. Inside this plasma chain however, millions of transactions can occur off the root blockchain with shorter transaction periods & cheaper transaction fees.
Plasma is ultimately Vitalik’s & Joseph Poon’s next proposed tool in the long battle towards solving Ethereum’s scaling problems. But we’re getting ahead of ourselves. We now know that apparently Ethereum’s scaling issue stems from how much computational power is required to run smart contracts. So let’s backtrack a bit & ask why?
Consensus & Verifying Transactions — Proof of Huh?
The Nakamoto Consensus & Incentivizing Block Propagation
In Bitcoin world, since the general ledger is decentralized, every single transaction that occurs within the network is verified. This verification mechanism, or consensus algorithm, is the heart & soul of the blockchain revolution because it allows actors to interact, transact & trust complete strangers in a decentralized system without forgoing one’s identity.
Bitcoin, as the first purveyor of blockchain technology, set the standard for a consensus algorithm by introducing their Proof-of-Work protocol. Proof-of-Work, appropriately named, requires computation work to verify a batch of transactions. POW is actually years older than Bitcoin itself. It was first introduced in the 90s as a system that required a not-insignificant but feasible amount of effort from a server (computer) in order to deter spam & DDOS attacks.
It’s understandable why Ethereum launched with the default POW consensus algorithm, but today, many more consensus algorithms have been built, implemented, & in test-mode such as Proof-of-Stake & Proof-of-Authority. High computation required to verify transactions leads to high transaction fees to compensate miners, as well as high gas costs (ether required to run smart contract) which in turns leads to unscalable dapps.
This is why one of the most important smart contracts packed in any Plasma chain is the proposed Proof-of-Stake bond consensus algorithm. Rightfully so, we’ll spend a large amount of our time going over this proposed consensus algorithm first, then the meat of the rest of the Plasma standards afterwards.
Summarizing, Plasma is a collection of standard smart contracts that can create a tree of side-chains called Plasma chains that allow for off-chain transactions; these transactions only periodically commit a merkelized, updated balance to the root chain it’s built on. Within Plasma, we allow actors to interact with a token of their choice.
The interaction between actors in the network & the Plasma chain’s overall integrity, is pegged to a floating stake contract that allows users to earn interest by staking their tokens & propagating blocks at a future point in time. Scaling derives from removing the requirement (or computation) to watch the chains that one is not economically impacted by & therefore not likely a chain where one watches carefully in order to enforce correct behavior by submitting a fraud proof (more on this later) to the parent chain.
After covering POS bonds, I’ll go through the meat of the contract & the independent innovations that really make it stand out such as fraud proofs, a merkelized tree structure, withdrawal variations, & MapReduce. For clarity & visual representations, I’m going to move through the Plasma whitepaper assuming each key innovation is its own smart contract. So fair disclaimer: it’s very likely that the deployed smart contracts look nothing like the visual image I’m going to use next.
Plasma Standard Smart Contracts
If you made this far congrats! Part II focuses primarily on Proof-of-Stake bonds by creating a simple decentralized TicTacToe game that we’ll run on a Plasma chain. Let’s continue on: https://medium.com/@jesus_notchrist/advanced-cryptocurrency-topics-plasmas-proof-of-stake-proposal-9e08d347211f