Scaling NOW!

Scalability is still the key obstacle facing blockchain. Both short term and long term scaling solutions are required if the vision of web3 is to materialise. At the Web3 Foundation, we’re cultivating discussion around scalability. Our initiatives aim to provide guidance to teams searching for immediate scaling solutions and foster collaboration between projects currently working on those solutions. With this in mind, this article has two aims:

1) Investigate Proof-of-Authority chains and propose them as a viable short term scaling solution, and

2) Invite teams currently working on scaling solutions to the forthcoming event: ScalingNOW! that we’re co-hosting with Giveth on 5th and 6th March in Barcelona.

What is ‘Scalability’?

In the context of Ethereum, we define scalability as the capacity of the mainchain to improve performance (throughput, latency) as the number of users (DApps) increases, without making a difference to the users experience (gas prices, transaction times). The network architecture must be able to adapt to new demands as adoption increases, not the other way around.

Current State of Ethereum

Today, Ethereum isn’t scalable. But it’s worth remembering, it was designed this way, the same way as all blockchain protocols. Every full-node stores all the state data while processing transactions which include smart contact code, account balances, and storage. This ensures a high level of security but scalability is compromised. Fortunately, the scaffolding required to scale Ethereum is under construction. Examples include, Cosmos, Sharding, Plasma, Raiden and Polkadot, to name a few. These technologies have been well covered elsewhere. Instead, in this article we will focus on one example of a readily available scaling solution: Proof-of-Authority chains.

The Problem

DApps need immediate scaling solutions. Without one, problems start to arise: first, a roadblock is created for testing and launching. Heavy traffic equates to low throughput and high transaction fees. This makes it prohibitively expensive to deploy a DApp on the mainnet. Second, a lot of mainnet-ready projects are in limbo, searching for an immediate solution. Finally, network congestion and high transaction fees discourage future projects from building on top of Ethereum, in favour of other networks. Currently there is no magic wand and all chains suffer from the same problems which Vitalik Buterin has labeled the ‘Scalability Trilema’:

The trilema maintains that blockchains are currently limited to possessing only two of the following three attributes:

Scalability Decentralization Security

Vitalik believes there are two questions: 1) Can we conceive a new system where only a few nodes verify each transaction? Security could be maintained by ensuring enough nodes authenticate each transaction. 2) Could throughput be maximised by having sufficiently few nodes laterally verifying multiple transactions? Vitalik was asking these questions in the context of sharding, however, his intuition is also relevant to describing Proof-of-Authority chains, in our view.

Proposed Interim Solution

At Web3 we support the following short-term solution: deploy a Proof-of Authority network and connect to the mainnet using a bridge (example bridges include Parity and Grid+). The advantage is PoA doesn’t rely on nodes finding solutions to subjective mathematical problems. Instead a pre-selected group of authorities called ‘validators’ secure the blockchain and are allowed to create new blocks. They are the actors with notary public license who steward the network. In other words all their identities are public and verifiable by any third party.

Although Proof-of-Authority is a more recent idea in the blockchain space, it is gathering momentum as an interim scaling solution due to a number of advantages. First, it is arguably more secure (a compromised validator cannot take control of the network or reverse previous transactions in the chain). Second, it is much more efficient in block production due to lower levels of friction on the network. Finally and most importantly, bridged chains imply that operations on the PoA chain can be transacted almost without cost.

Thinking About Trust and Governance

PoA chains change the trust equation. No longer is trust ensured by the proven Ethereum Proof-of-Work consensus. Now trust resides in the supermajority of the validators. Whilst the number of validators impacts the networks distribution, more important for security is the level of diversity amongst the validators. The point is not to have your validators concentrated in one industry sub sector since they could be tempted to collude together.

Source: Proof of Authority: consensus model with identity at stake, November 2017. (POA Network, Medium)

PoA is an adapted version of Proof of Stake where a validator’s public identity performs the role of proof of stake. The validators could be well known startups, DApps or blue chip organisations. With their identity at stake, they are incentivised to act in the best interest of the network. In terms of consensus, a super majority must be reached by the validators in order for the chain to be signed off. When this is the case it becomes a permanent part of the chain. In summary, PoA consensus is a good fit for private chains. It may facilitate a quicker, more scalable and more cost effective blockchain, thereby enabling DApps and prospective blue-chip projects to launch or test their innovative ideas freely and easily.

PoA Chain Examples

PoA is readily available and is either being considered or utilised by a number of projects within the ecosystem. Some examples include: Giveth, POA Network, TomoChain, Rublix, Swarm City, Colony and GoChain. The two ethereum testnets Kovan and Rinkeby also use a PoA consensus algorithm.

Limitations of Proof-of-Authority

The key to PoA is that trust is predetermined. Consensus is achieved by a preselected number of validators, unlike Proof-of-Stake where the consensus is achieved amongst the parties which submitted a security deposit. The PoA model introduces a centralised element to the equation. We accept this, but argue that this is appropriate within a consortium setting. Take the banking industry as an example. Is anything gained by using validators from totally unrelated industries’ validating blocks? For example, why should a consortium of coffee producers in Central America be required to validate blocks on the banks private chain? One possible answer: in order to prevent collusion, the network should be as distributed as possible. Agreed — but what if we could achieve just enough decentralisation so as to fully secure the network, but not too much so as to compromise the network’s scalability? For example, trust could be distributed across an industrial network such as banks, regulators, unions, custodians, lawyers, exchanges etc. With their identity at stake, all actors would be incentivized to act in the interest of maintaining their public reputation, which in turn is in the best interest of the the network. Further, additional layers of protection could also be added such as fines, removal of regulatory permissions and other preventive measures could be written in smart contracts which execute the moment any malicious actors are detected by the network.

We appreciate more work is needed to explore fully the trust equation and the intricacies of the governance model. It will likely be slightly different for every network application. We also see PoA chains as part of an interim solution, not the final solution. Any shortcomings with regards governance and security will most likely be filled by future protocols such as Polkadot.

Polkadot: a Long Term Scaling Solution

Polkadot is being designed as a fully scalable blockchain which will act as a deployment and interaction testbed for new blockchain technologies. Polkadot is a scalable multichain. Which means that unlike current blockchains which focus on providing single chain solutions, Polkadot is designed to provide no inherent functionality at all. Instead Polkadot provides the bedrock ‘relay chain’ upon which a large number chains can run in parallel, these are called ‘parachains.’ In terms of trust, parachains connect to the security offered by a relay chain, instead of providing its own. Relay chains offer security to attached parachains and also certify the security of messages travelling between them. Unlike a proof-of-authority style network, Polkadot is envisaged to be deployable as a network in a fully open and public situation without any particular organisation or trusted authority required to maintain it.

In preparation for the arrival of Polkadot, developers may need to test how their application functions across multiple chains. Features such as token migration from one chain to another will require development and testing. Launching private PoA chains could be one option allowing for such testing to be carried out. Whilst we admit PoA networks are not the holy grail in solving Vitalik’s ‘Scalbility Trilema’, they could at the very least be useful as part of the preparation for the arrival of multichain scalability solutions such as Polkadot. This is another reason we believe experimenting with private chains and PoA consensus could add value both in the short and long term.

Engaging With The Community

As advocates of a decentralised web, the Web3 Foundation acts as a resource and a support network to the community working on it. We are actively looking to engage with projects within the ecosystem who are abutting the limits of Ethereum. We aim to be a critical source of information regarding the various scaling challenges projects face, and more importantly, how we can tackle them. We are looking to connect with projects and individuals on an ongoing basis on the needs and challenges they face when considering implementing a PoA network.

With this is mind, on 5th-6th March we are hosting, in collaboration with Giveth, a two day ‘ScalingNOW!’ Gathering in Barcelona. Representatives from Cosmos, POA Network, Parity, Truebit, Counterfactual, Giveth and Raiden are joining and the invitation is extended to all DApp developers in need of immediate scaling solutions. Please find the invitation for the 5th (for those working on immediate scaling solutions) here and for the 6th (for all DApp developers needing immediate scaling solutions) here.

Where Next?

Ethereum isn’t ready for DApp deployment which leaves a lot of projects in limbo, unable to test or launch their products. While we wait for more extensive scaling solutions, such as Polkadot, to arrive, we advocate launching a PoA chain. We firmly believe that rolling out a PoA chain will allow for a faster, more cost effective and a more expandable blockchain. Finally, at Web3, were looking to promote community collaboration via our upcoming initiatives. We encourage you to join us at ScalingNOW! in Barcelona. We hope you are able to attend, contribute and bring fresh ideas to the ongoing scalability debate thereby enabling forward progression towards a fully decentralised web.

Connecting With Web3

For those of you unable to join us in Barcelona, we welcome you to join our Riot channel to ask any questions or collaborate:

#ScalingEthereum:matrix.org

As always with our Web3 workshops, we’ll be sure to post a recap of our collective findings and next steps.

Anything you think we missed in our post? Questions about PoA chains or Polkadot? We encourage you to reach out:

Web3 Foundation

Twitter: @Web3Foundation

Web3 Foundation Chat: #web3foundation:matrix.org

YouTube Channel: https://www.youtube.com/c/web3foundation

Polkadot

Twitter: @PolkadotNetwork

Polkadot Riot Chat: #polkadot-watercooler:matrix.org

YouTube: https://www.youtube.com/c/polkadotnetwork