How Will Ethereum Scale? Top Talks from Devcon3 Summarized
Devcon, also known as the Ethereum Foundation’s developers conference, is one of the most important annual events in the cryptocurrency space. It is a conference “by developers for developers” which “is designed to help inform, educate and address interests of the Ethereum R&D community”.
It should be noted that even though it is a technical conference, individuals interested in familiarizing themselves with Ethereum and blockchain technology should not be discouraged from attending. As stated in the official page, “this year’s participant demographic is also the most international and globally diverse one to date” which shows how individuals are increasingly getting involved in Ethereum research and development.
This article will discuss the most important talks on scalability that were presented this year. If you have the time, I strongly recommend that you watch the whole talks — look for the timestamped “Link” in every section. But if not, this article will give you the broad strokes.
Designing Maximally Verifying Light Clients and Sharding, Vitalik Buterin
Day 1 | Link | Sharding & Ethereum’s future| 30 minutes
Firstly, Vitalik performs a recap on Ethereum’s achievements so far:
- Steady increase of adoption
- Lack of attacks to the network
- Successful hard fork to Byzantium.
North America and Europe have the most concentration of nodes, but nodes are starting to appear across every corner of the world.
He then proceeds to talk about how scalability in Ethereum is tied to solving the scalability trilemma (previously mentioned here). Furthermore, solving the trilemma requires also solving the so-called Data Availability Problem. That is, for a secure blockchain infrastructure, you need not only to be able to verify the validity of data, but you need to ensure that the data is available to all the network participants (Joseph Poon’s talk below discusses this in more detail). Then there are other bottlenecks towards scalability such as disk reads and the fact that every node has to validate the whole state. He also mentions that smart contracts not being parallelizable at the moment is a huge problem.
The answer to these issues is sharding, essentially splitting the state of the blockchain into “universes” called “shards” that are allowed to communicate only asynchronously and split the load.
“Hard-forks” that make deep changes are hard since they take a long time to code and test and due to the 7 different client implementations might introduce consensus bugs. However, in order to reach a highly scalable network with new features these deep changes are much needed.
The slide above is a potential visualization of the sharding system that is currently being implemented. In addition to the current system, there will be a Validator Manager Contract (VMC), running Proof of Stake consensus for a sharding system that exists inside the mainchain. It will keep track of Validators and manage the rights of when someone is allowed to create blocks in each shard (also called collations). It will not verify the full blocks of each shard or contain a copy of all consensus rules. Essentially the VMC acts as a light client for the proper communication between shards and the mainchain, and between shards themselves (he later shows the communication between mainchain and collations potentially happening via an RPC interface).
That way, you have C shards, each being able to process C transactions, essentially achieving C² scalability, compared to the mainchain’s C (simplified version without big O notation). The mainchain shall slowly transition to full Proof of Stake, while each shard shall function under Proof of Stake via the Validation Manager Contract. The “main shard” will be the version of Ethereum focusing on security while the new shards will be focusing on fast evolution and deployment of new features.
Finally, he proceeds to give a total roadmap for sharding and the planned changes for Ethereum as a whole (Binary Merkle trees, EVM upgrades, Parallelizability, Stateless Clients).
Casper the Friendly GHOST: A correct-by-construction blockchain, Vlad Zamfir
Day 1 | Link | Casper & Consensus protocols | 25 minutes
Vlad’s talk is about building secure consensus protocols, and how Casper achieves that. Firstly he describes consensus safety (i.e. how to transition from one consensus state to another in a smooth manner, refer to the draft release for more details). He specifies a “binary consensus protocol” which is able to decide on the value of a bit (0 or 1) and then proceeds to extend that to a blockchain-based consensus protocol for deciding on valid blocks.
He compares traditional Byzantine Fault Tolerant (BFT) protocols with Blockchain consensus protocols and argues how Casper provides both the high safety from the first and the low latency of the latter. Should note here that traditional BFT protocols aim for finalization per block, while in blockchains it is accepted that a block cannot be reverted after enough blocks have been “chained” to it.
The talk concludes with a demo illustrating how consensus is reached while forks happen continuously and by Vlad stating that other consensus protocols can be derived based on this specification.
Note: I found this talk very complex and hard to follow, however I believe its concepts will become more clear as the ideas get more formalized and further research is done.
Plasma Overview and Transaction Data Availability, Joseph Poon
Day 1| Link | Plasma & Sidechains | 20 minutes
Joseph Poon’s talk on Plasma revolves around using plasmachains to achieve scalability. There will be a Plasma Smart Contract that will be used as a base layer in order for participants to spin up their own sidechains with custom rules and participants. The difference here is that these rules are fully enforcible on the mainchain, implying that if an actor acts maliciously in a plasmachain then he can get punished on the mainchain.
The idea is that a plasmachain’s block hashes get periodically submitted to the main chain. Many state changes might occur between some Plasma Blocks but only a few of them get included to the root chain. The goal is to be able to sustain billions of transactions per second. As long as someone does not dispute the data being broadcasted, the root chain does not do any computation. In the case of fraud, a merklized proof is submitted and if it is valid, the state gets rolled back and the actors who committed the fraud get penalized.
He provides interesting points on the data availability problem. What do you do if some plasma block is being witheld or a state is invalid? I highly suggest you watch that part of the talk as me paraphrasing it would do more harm than good.
For greater scalability, he states that you can create “blockchains of blockchains” achieving further decentralization and increasing throughput. The presentation concludes with a step-by-step process of how a transaction would be executed in a plasmachain, and how a dishonset actor would get penalized by the mainchain’s contract.
“Ethereum can basically be the Supreme Court of computation across the world.”
The Raiden Network, Augusto Hack, Loredana Cirstea
Day 2 | Link | Raiden & State-Channels | 20 minutes
While Plasma describes scaling by using sidechains with specific rules, Raiden leverages payment channels which can scale Ethereum to handle up to millions of transactions per second. In short, payment channels are a way to repeatedly transfer value between parties by offchain transactions without having to pay the huge transaction fees induced by transacting multiple times.
The first part of the talk covers guidelines on Raiden’s RESTful HTTP API, and how it can be used to build applications that implement micropayments. It is currently available only for Linux (and soon for MacOS). In order to use it you first need to download Raiden and have a synchronized Ethereum node (with an exposed JSON-RPC interface).
- Automatic channel management: PUT /api/1/connections/<token>
- Manually open a channel: PUT /api/1/channels
- Change the channel state: PATCH /api/1/channels/<address>
- Make transfers: POST /api/1/transfers/<token>/<target>
- Watch for events: GET /api/1/events/tokens/<address>
In the second part of the talk μRaiden (read micro-raiden) is presented. It is an offchain unidirectional payment channel framework, currently available on the Kovan test network and will be deployed to the mainnet by the end of November.
μRaiden’s use cases include but are not limited to paywalled content (by paying per minute/second) and implementing machine to machine micropayments with two onchain transactions — one to open the payment channel, and one to close it. That way, APIs, data storage and data usage can be monetized, on the blockchain. This also opens up a lot of monetization opportunities of IoT applications.
Loredana Cirstea then proceeds to do a live demo of a car-robot which is connected to μRaiden that gets paid for each movement command that gets sent to it via a payment channel. When the channel closes, an onchain transaction gets executed, paying the robot for its services.
Devcon gave us a lot information to process. At the end of Vitalik’s talk he mentions that applications which do not require maximum security can proceed to “Layer 2”, for rapid development and experimentation, without having to go through “Layer 1” where they’d have to go through rigorous testing and long fuzzing periods in order to ensure stability.
This strongly aligns with our vision of scalability at Loom Network. To build large decentralized applications on the scale Twitter or Youtube, developers will need strong layer 2 solutions. We envision a network of sidechains, where each sidechain can make its own trade-off between cost/speed and decentralization/security, and developers can split up their application according to which parts of the app require the highest levels of security and which require the highest speeds.
We’re excited to see the progress in scaling Ethereum, and look forward to continued efforts to make it the backbone for the new decentralized web!
Loom Network is the multichain interop platform for scaling high-performance dapps — already live in production, audited, and battle-tested.
Deploy your dapp to Loom’s Basechain once and reach the widest possible user base across all major blockchains today.
New to Loom? Start here.
Want to stake your LOOM tokens and help secure Basechain? Find out how.
Like what we’re doing here? Stay in the loop by signing up for our private mailing list.