The ability for the Ethereum (ETH) network to scale and provide a greater throughput than the current 15 – 25 transactions per second (tps), has been the subject of debate for quite sometime now. Some have even postulated that Ethereum could continue dropping in the markets as other fresh and faster blockchain projects are being developed to handle higher tps.
Proposed Ethereum Scalability Solutions
There has been three methods that have been proposed to increase the throughput on the Ethereum network:
- Sharding – allows for nodes and transactions to be divided into smaller groups rather than having the entire network to validate the transaction
- Raiden – by scaling it off-chain using state channel technology. Off-chain transactions allows a collection of nodes to establish payment channels between each other to facilitate transactions without involving the Etherem network
- Plasma – uses a series of smart contracts to create hierarchical trees of sidechains. The sidechains can be governed using thier own set of rules and only relay information back to the parent chain of Ethereum
VItalik’s Proposal to Use ZK-SNARKS
In a post on the Ethereum Research site, Vitalik Buterin proposed a new method of scaling without using any layers as proposed through Plasma. His proposal is to use the ZCash technology of ZK-Snarks.
In the post available online, Vitalik stated the following:
We can actually scale asset transfer transactions on ethereum by a huge amount, without using layer 2’s that introduce liveness assumptions (eg. channels, plasma), by using ZK-SNARKs to mass-validate transactions. Here is how we do it.
There are two classes of user: (i) transactor, and (ii) relayer. A relayer takes a set of operations from transactors, and combines them all into a transaction and makes a ZK-SNARK to prove the validity, and publishes the ZK-SNARK and the transaction data in a highly compressed form to the blockchain. A relayer gets rewarded for this by transaction fees from transactors.
The system is managed by a contract, whose state consists solely of two
bytes32values representing Merkle roots: address book (A) and balances+nonces (B). A starts off as a Merkle root of 224 zero entries, and B as a Merkle tree of 2^24 (0, 0) tuples.
What exactly are ZK-Snarks?
ZK-Snarks are defined as follows:
zk-SNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” and refers to a proof construction where one can prove possession of certain information, e.g. a secret key, without revealing that information, and without any interaction between the prover and verifier.
“Zero-knowledge” proofs allow one party (the prover) to prove to another (the verifier) that a statement is true, without revealing any information beyond the validity of the statement itself. For example, given the hash of a random number, the prover could convince the verifier that there indeed exists a number with this hash value, without revealing what it is.
In conclusion, the new suggestion by Vitakin is the evidence many Ethereum community members were waiting for in terms of knowing there is research being done to solve the scalability issues on the network. This then means that the network should be able to implement one of these solutions in the near future.