Ethereum Plasma — Part 1: Scaling Problems
In this three-part series, I explain scaling issues with blockchain, what Plasma offers, how this architecture changes dapps, and why I think business needs Plasma now.
I started working in the blockchain space in earnest this past year. I had been following blockchain for years and was a very early adopter of Ethereum. I saw what was coming. I could see how blockchain will change — and possibly save — the world. I was between gigs and I was ready to commit, so I threw myself out there and eventually found a home with Animal Ventures in March. Once brought on, I had two days’ notice to pack up, get someone to watch the pets, and drive several states over to be on-site with a Fortune 100 customer ready to begin testing in blockchain.
It was there that I began learning more about, not just the technical needs, but also the business needs a company would have for fully adopting blockchain technology. This company, on one system alone, would need, not several millions, but billions of transactions per day. Just one system. How many other systems would they need? What would it take to integrate this technology with other partners who can also contribute billions of transactions per day? What would happen if this activity occurred on the main Ethereum network?
A Problem of Scale
VISA, a single company, says their average peak rate is 4,000 transactions per second but that they can support 56,000 transactions per second . This is only VISA. It is only for one specific type of transaction (exchange of value). It is only considering their external transactions, but not the sub-level transactions required with clearing houses to deliver a single financial transaction to a value exchange. In blockchain terminology using smart contracts, VISA is likely doing a couple billion smart contract-transactions per day. Will they need those “fluff” transactions in the future, who knows? Seeing as smart contracts can require many multiple transactions themselves, and when you factor in that most systems like VISA will require governance, identity, claims systems, and possibly insurance, I think you’re looking at nearly the exact same number of transactions on a decentralized system as you would a centralized system… billions a day. It will be simpler, more robust, more secure, more transparent, and ultimately, cheaper, but the transaction number will not decrease.
How many companies are like this? Virtually all Fortune 500 companies are likely looking at close to a billion blockchain-transactions per day, some many more. Now factor in social and content needs. If you want to track your identity on a blockchain, you’re sending at least 100 transactions a day, and that’s for a relatively light user of online materials. You want full global participation in those? That’s at least half a trillion blockchain-transactions, per day, right now.
Between companies and the general populace, we’re likely looking at 2–3 trillion transactions per day, right now, maybe more. We haven’t even discussed the future, where IoT becomes a regular part of our lives, where cars automatically pay for their own tolls and fueling, where your lightbulb orders itself a replacement on failure. Single-digit trillions are low numbers in the long-run. This is a problem of scale.
Can existing blockchain technology even remotely handle this level of scale? No. It cannot. Ethereum doesn’t scale — not like that anyway. At the time of writing this article, the highest transaction volume Ethereum has produced is 496,376 Transactions on Wednesday, September 6, 2017  (edit: this value changed to a new all time high on the day of publish to 505,611 dated 10/17/2017). This isn’t enough. Not by a long shot. Litecoin has a transaction speed of 4,838,400 per day , but does not include a robust smart contract system. This isn’t enough. Not by a long shot. Hyperledger claims their Sawtooth implementation will allow for over 86,400,000 transactions per day , but they’re not using publicly secured consensus algorithms. That’s not enough. Not by a longshot.
Let’s assume we made a blockchain that could sustain a level of scale in smart contract transactions of trillions per day. How quickly would these transactions be confirmed? Technically you can batch and resolve these contract executions once per day and you might get a pretty nice transaction per diem, but you also wouldn’t know if a transaction was confirmed for hours.
You cannot look at transactions per day as the pure metric of achievement. We need responsiveness as well. No one will wait 15 seconds for your login transaction to resolve, which is what you’ll need in Ethereum right now. We need super-fast, high-speed transactions, not just volume.
Another problem we’re currently dealing with is the cost per smart contract-transaction. Danny Ryan authored a great write-up on calculating costs to deploy smart contracts on Ethereum, and I urge you to read that article cited in the sources below . The long and short of it is this: the cost of sending transactions, deploying, and executing smart contracts on the main Ethereum network isn’t fixed and is relative to the fiat that you value Ether. A $0.06 gas cost for executing your smart contracts may sound nice until you realize that at millions of transactions per second, this is a tremendous amount just to move small amounts of value around. We need a simple, standard means of executing micro-transactions, in volume, and committing them to main network without costing an arm and a leg. This is especially true while we still live in a fiat world. As the value of Ethereum rises relative to, say, the U.S. Dollar, these network transaction needs do not adjust, so it will cost you more just because global demand for Ether has increased. From a business standpoint, this is unacceptable. We need a method of controlling our transaction expenses before they reach main Ethereum.
Let’s go further! What about the size of the blockchain itself. Assume we can process transactions at speed and volume, if it all resides in a single chain, how long would it take for that chain to reach 1 petabyte in storage? For reference, a petabyte is 1024 terabytes and the largest consumer hard drive on the market is around 10 terabytes. What’s the point of decentralization and a single point of truth if the entire chain cannot be held on decentralized systems? Sure, you could prune it, but how much pruning is acceptable when you’re looking at a transaction volume and speed of that size? How are you going to verify trust if you’re pruning your blockchain every hour (or less)? Not to mention the MASSIVE volume of network bandwidth just to keep your blockchain synchronized.
Solutions such as Joseph Poon’s Lightning Network or Raiden Network get us closer by building off-chain micro-transaction networks, but those transactions aren’t business-logic driven and are still missing some of the governance features we require to flow up the chain. No current blockchain technology will support this level of scale. Not even close… except… there’s one hope.
Plasma Wars: A New Hope
Vitalik Buterin, creator of ethereum, has often stated that there is value in private blockchains, going as far as to saying they are, “unquestionably a better choice for institutions.” [6;7] I think we all can recognize the value in the single source of trustless truth that ledgers like Ethereum provide, though. When you really think about it, that was the primary motivation behind blockchain: machine trust. How can we get all the benefits of a single source of truth without any of the scalability (and privacy) flaws that come with it?
Both Vitalik Buterin and Joseph Poon have been extremely vocal and reasonable about the flaws currently in blockchain while also retaining a constructive idealism that inspires progress. They also have, repeatedly, put their money where their mouth is and built things that are wonderful leaps ahead in terms of what was currently offered in the blockchain space. When someone shared a link to me for a site called Plasma  and tells me it’s a new 47-page whitepaper co-authored by Buterin and Poon, I dropped everything I was doing and I read it to try and understand it as best as I can. This was my reaction on our company Slack.
What got me so excited? Well, you don’t have to go far into the paper to see why. This gem is on page 2:
“…we seek to design a system whereby computation can occur off-blockchain but ultimately enforcible [sic] on-chain which is scalable to billions of computations per second with minimal on-chain updates.” 
Yahtzee! This is what we’re looking for!
Alright, So What Is Plasma?
Glad you asked! In short, the proposal is to make the Main Ethereum Network a “root chain” and to allow additional chains to register themselves and commit transactions to the root chain, either in batch or at-will. How does this work? Well these connected sub-chains, or “Plasma Chains”, are holding values of ETH for a chain owner.
The closest analogy might be a casino chip, where the chip itself is worth 1-to-1 with the fiat currency it represents, but to play within the casino you need to give them your money first to make sure you have it. This protects the casino, other players, and you by assuring the value being used within the casino is backed by something real. When you’re ready to leave the casino, you go to the cashier and “cash out”. Similarly, in a Plasma Chain, you can move your funds back to the root chain and even around to other chains. Since transactional demand has been delegated off the main network and onto the Plasma Chain, the supply of nodes can distribute their power in a much more reasonable and cost-effective way. You can play volume (penny-ante) or you can play in quality (high-stakes). You can even set up your own network to play with your friends at a table you own in your house.
Part two of this three-part series focuses on the solutions proposed by Vitalik Buterin and Joseph Poon by examining, on a mid-level, what Plasma offers the future of blockchain. In the third part of the series, I explore architecture opportunities that Plasma enables, and talk on some of the criticisms to the approach.