The creator of the open-source blockchain platform Ethereum is exploring ways to fix an innate issue with the technology – the inability for processing capacity to effectively scale.
And the Ethereum Foundation is seeking outside developers to help solve the scaling problem.
Ethereum and Hyperledger are the world’s leading blockchain platforms and the basis for a myriad number of applications, from cryptocurrencies such as Ethereum’s Ether to “smart” or self-executing online contracts.
While open and efficient because all transactions in the peer-to-peer distributed ledger technology can be seen in real time, one performance problem has been that every entry on a blockchain requires every node to process it. This has the potential to slow transactions such as payments.
Due to its chain nature, each new record inserted into a blockchain has to be serialized, which means that the rate of updates is slower than traditional databases, which can update data in parallel.
“This expensive and slow process is justifiable for a global network where all participants are potentially malicious,” Bharath Rao, founder of Ethereum exchange Leverj, said in an earlier interview with Computerworld. “In a corporate environment, where all participation is controlled, it does not make sense to spend a lot of energy and time for essentially no additional benefit.”
While requiring all nodes (servers) to process each transaction makes blockchain natively resilient to cyberattacks – as hundreds or thousands of nodes would have to be hacked to gain control of the network – it also slows transaction processing and, ultimately, its scalability.
Ethereum creator Vitalik Buterin wrote in a blog this week that the blockchain network has reached one million transactions per day, and with both it and other blockchain projects frequently reaching their full transaction capacity, “the need for scaling progress is becoming more and more clear and urgent.”
So far, Ethereum is exploring two possible fixes for the problem. The first, “sharding,” would require a small percentage of nodes to see and process every transaction, allowing many more transactions to be processed in parallel at the same time; sharding also isn’t expected to diminish the native security of a blockchain because it maintains “most of the desired decentralization and security properties of a blockchain,” Buterin wrote.
The second solution involves creating data-link layers or “layer 2” protocols that send most transactions off-chain and only interact with the underlying blockchain in order to enter and exit from the layer-2 system, as well as in the case of attacks on the system. Layer 2 protocols transfer data between nodes within a LAN or an adjacent WAN.
A specification for an initial prototype is close to finalized, Buterin said, and a roadmap has been created that allows it to be slowly introduced into Ethereum – first as a “loosely coupled” sidechain anchored into the Ethereum base chain through a “validator manager contract,” later introducing tighter and tighter integration with the Ethereum base chain over time.
“A reference implementation is being built in python on top of Py-EVM, and a testnet in python is not too far away,” Buterin wrote.
The Ethereum Foundation, however, wants outside developers to get involved in the next step: the sharding testnet and, following that, the sharding mainnet.
“We want [them] to be a multi-client ecosystem right from the start, with the Ethereum Foundation not supporting any single privileged production implementation,” Buterin wrote.
To that end, Buterin said on top of working to solve the problem internally, Ethereum is offering subsidies to programmers who can help find the fixes; subsidies will range from $50,000 to $1 million depending on the scope of the work involved.
For developers, there will also the pride in knowing their work could be used in the next iteration of Ethereum’s blockchain.
“The Ethereum Foundation-funded research team will continue to build an implementation in python and possibly other languages, but this is intended as a reference and proof of concept first and foremost,” Buterin said. “While we aim to continue to focus heavily on research and specification, we do not want to ultimately ‘win’ the competition for which client gets the most actual users once the network goes live.”
The first step in applying to participate in the development project is to send an email to firstname.lastname@example.org, with this information:
- Official name of project, applicant and core developers
- Further information on the team, including previous activity if any in the Ethereum or blockchain space or distributed systems, mechanism design or cryptography;
- Proposal and impact on scalability;
- Estimated timeline for development milestones and completion, request for grant amount and estimated total overall budget.