The gap is smaller than you think.
By bloXroute Labs Co-Founder and CEO, Uri Klarman
Proof-of-Work (PoW) or Proof-of-Stake (PoS)? Who cares, neither solves the real problem — scaling. When it comes to scale, the only thing that really matters is that whoever attempts to append a new block to the blockchain must be aware of the latest block mined, otherwise it cannot identify which transactions are valid and which are not. There’s little difference if the “right” to append a new block to the blockchain is semi-randomly selected from among participants based on the amount of stake they hold (PoS), or based on luck and amount of resources invested (PoW). This requirement — to be aware of the latest block — sounds simple, but it is the scalability bottleneck for all blockchains.
PoW, PoS: A Brief Explainer
Before diving into the matter, let’s first establish why blockchains have PoW, PoS, or any Proof-of-Whatever to begin with. The idea behind blockchains is to allow distrusting entities to agree (in other words, to reach a consensus) on who has how much, and which transactions took place. This agreement must also be continuously repeated as users transact.
So why not have everyone simply vote on which transactions they accept and every transaction accepted by the majority is considered to have “happened”? This way, everyone can simply follow the majority and maintain consensus. Easy!
Unfortunately, this naive “solution” has several flaws. First, it requires each participant (e.g. node) to know all other participants so it can identify their votes. Additionally it requires each node to know how many total participants exist, a mechanism to accept or reject new participants, and a way to keep everyone updated on the latest state of affairs. Even worse, it would not be difficult for an attacker to perform a sybil-attack — spinning up a large number of nodes to cheat and interfere with the consensus. Moreover, the attacker could also censor users by not including any of their transactions, or by double-spending — a situation where an attacker makes a transaction, receives goods, and then reverses the transaction by changing the consensus related to which transactions took place and which didn’t. There are many other flaws, but that summarizes the most obvious ones.
To overcome these issues, Bitcoin uses PoW, which removes the need for nodes to identify other participants (or even knowing how many participants are there!), while preventing participants from pretending to be numerous nodes. Instead, PoW only requires all participants to be loosely connected and to form a single peer-to-peer network. The basic idea is that the right to add blocks to the consensus is distributed among participants in proportion to the hash-power (e.g. mining hardware) they control, and each node can see whether a block is valid based on the PoW. Nodes don’t need to know who mined the block, how many participants there are, who did and did not see the block, or be worried about nodes artificially inflating their effect on the consensus — they only need to validate the proof that significant resources were invested in mining the new block.
PoS tries to advance this idea further by distributing the “voting power” proportionally to the funds each participant has, rather than to how much hash-power each participant controls. The basic premise is that the current state of funds is known to all participants and can also be quickly checked, and can provide the same properties without the need for purposeless power-consuming computations.
PoW, PoS: Scalability
In my talks about blockchain scalability (for example here, here, and here), I’m often being asked whether bloXroute solves the scalability problem only for PoW blockchains, and if PoS blockchains have different properties. The short answer is No, PoS has exactly the same scalability bottleneck, and here’s why:
The reason blockchains don’t scale is because miners and validators must receive the latest block before they can produce the next one. The reason is almost obvious — in order to include transactions in a new block they must know if the transactions have already been included in the latest block, or if the balances have changed so they are no longer valid (double-spend). Before having knowledge of the latest block, the miner or validator simply cannot extend the blockchain, regardless of whether it mined it with hash power or voted on it with stake. Regardless of PoW or PoS, sending larger blocks takes linearly longer to reach the entire network. Thus, sending 10x larger blocks take 10x longer to reach everyone, thus delaying the time required for miners / validators to be ready to produce a new block by a factor of 10x. Blocks 10x larger usually work, to some extent, but at 100x larger things really fall apart.
There are many types of PoS blockchains, so the details vary a bit, but here are a few examples. Imagine a blockchain like Ethereum Serenity, where validator sets are selected at random and each block requires 2/3rds of the set to be “accepted”. If the blockchain uses 100x larger blocks, it would require 100x longer to reach the 2/3rds they must reach, so the TPS remains pretty much the same: 100x larger blocks are produced 100x slower.
In a system where the “right” to add a block is awarded at random among participants based on their stake, things become uglier. If a validator produces a very large block which takes tens of seconds or minutes to propagate, some nodes will believe the node went offline and will fall back to the next producer, who will create a competing block (or fork/orphan). At the same time, the next randomly-selected miner must wait the same 100x longer period to receive the block, and its block is also likely to cause a fork/orphan.
The details vary, but it all comes back to the same simple problem — miners and validators must receive the latest block prior to mining the next one regardless of the Proof-of-Whatever they use to decide who gets to mine the next block. bloXroute solves this by propagating blocks for all blockchains 1000x faster. It is also provably-neutral and incapable of discrimination, censorship, or becoming a single-point-of-failure. You can find more on how bloXroute works here.
— — —
We’re always looking for good people!
If you’re equally excited to solve the scalability bottleneck for all blockchains, consider joining our team! We are always looking for passionate partners to help us on this important journey. Check out our available positions to work with us in our Chicago offices.