Ethereum Co-Founder Vitalik Buterin shared SNARK-utilizing scaling solution that aims to achieve certainty of block validity. An Ethereum Scaling Solution SNARK is a zero-knowledge proof, meaning that a person can prove the truthfulness of a value without having to reveal the value.
25 September, 2018 – Earlier last week, the core developer of Ethereum network, Afri Schoedon, stated that Ethereum has been operating at maximum capacity and that Dapp developers should create on other chains. However, the co-founder of Ethereum disagrees, stating that most Dapps are not gas-optimized. He added that competition within the sector will “push out” suboptimal Dapps.
Layer 2 scaling solutions on Ethereum
Buterin further highlighted the importance of layer 2 solutions and also posted a potential SNARK-fueled scaling solution on Ethresear.ch to provide support for his argument. His proposition aims to solve some of the major challenges that are linked with existing second layers solutions. The majority of layer 2 scaling solutions on Ethereum emerge with an assumption of liveness. This is the first problem Vitalik’s SNARK-utilizing strategy tries to solve.
What is liveness, you’ll ask? It refers to a certainty of eventual consensus in a distributed system. Speaking differently, if all nodes in a Blockchain network would come to a consensus, it is possible to say that there will be a guaranteed liveness. There is a reasonable guarantee of liveness with the established proof-of-work consensus mechanism.
Yet, second layer solutions feature different consensus mechanisms, and the current structures for guaranteed liveness do not match them since they rely on transacting parties to be online.
The issue arises from mechanisms of consensus, which usually vary. They can be proof-of-authority (PoA), or some kind of Byzantine fault-tolerant (PBFT) algorithms. These strategies for consensus are not guaranteeing liveness.
What is a zk-SNARK?
This Saturday, on September 22, Buterin posted a possible on-chain scaling solution to allow users to carry out 500 transactions per second. The idea is to use zk-SNARKs in a bid to achieve certainty of block validity. A zk-SNARK is a zero-knowledge proof, meaning that a person can prove the truthfulness of a value without having to reveal the value.
Vitalik’s solution implies that there must be two types of users, namely relayers and transacting parties. The latter group consists of individuals or entities that transact with each other. Relayers are individuals that record all the transactions and send them to the main chain to be mined. In this case, a relayer combines the transactions and creates a zk-SNARK. Then, this person submits that SNARK to the main chain to be mined there.
“To actually verify that what was posted in logs corresponds to the state update that is proved by a zkSNARK you have to include every field of the transaction as a public input to the snark verification. It is an extra one point multiplication per input parameter. If the transaction is short you can pack and reduce this number of inputs, but still, right now it’s 40000 gas per multiplication in G1 of BN256.”
This mechanism makes sure that a relayer can’t lie. This also means that transacting parties doe not need to be always online to watch for bad behavior.
Buterin also added the following:
“At this point, it’s widely known that optimizing SNARK/STARK provers is super-important so I’m sure there will be more and more software engineering work going into it over time. Agree that proof generation time needs to be fast enough and this could be the limiting factor! Though if this becomes a problem then the chain as a whole could still reach ~500 tx/sec with multiple transaction batching gadgets of this type (eg. for different tokens) running in parallel.”
Think we missed something? Let us know in the comments section below.