Ethereum looks at zk-SNARKs for quicker potential on-chain scaling
They might have the potential to make Ethereum quicker, quicker.
Ethereum developers are exploring the potential of zk-SNARKs for making Ethereum quicker, quicker. Scaling solutions such as Casper, Plasma and sharding are all part of the roadmap, but their implementation has been slow, complicated and unpredictable.
A new solution proposed by Vitalik Buterin on 22 September 2018 is potentially a highly effective, and comparatively quick and easy to implement, solution.
There was a lot of excitement around this kind of proposal and the potential of zk-SNARKs at DevCon 4, CoinDesk reports, and many are looking at it as a more immediate scaling solution than might be found elsewhere.
Zero knowledge proofs are essentially a way to digitally prove knowledge of something without actually saying what the information is.
For example, proving that one has enough cryptocurrency to complete a transaction without saying how much they have, or proving that one is sending to a certain private key without revealing that key. zk-SNARKs (or zero-knowledge succinct non-interactive argument of knowledge, if you're feeling formal) are a more recent implementation which can be more widely used.
Buterin's proposal is to use zk-SNARKs to prove knowledge of the correctness of an entire batch of transactions. With the ability to do this, the network can batch more transactions rather than process them more individually.
The proposal describes a "relayer" collecting a bunch of transactions in order, and then creating a zk-SNARK which proves that if they are all processed in sequence they are valid transactions.
Basically, using zk-SNARKs to batch transactions like this is like getting paid to pack a bunch of people's clothes into a suitcase and proving that it's all there, folded neatly and identifiable, and then putting that suitcase into a car boot. The suitcase packer then pays the driver a small amount to carry the suitcase.
The car boot is a block on the Ethereum blockchain and the driver is the miner receiving the transaction fees.
This is in contrast to the current way it works, which is more like a bunch of people throwing clothes at the boot of the car while waving money at the driver.
zk-SNARKs let users know that their clothes are going to be in the suitcase and pay the packer, and let the packer pay the driver. Without them, this new system wouldn't be efficient enough to be worth it.
One catch is that this batching of transactions creates some potentially centralised points of failure (the suitcase-packer). There's no real hazard from individual relayers failing, but there are some concerns that they might be vulnerable to what might be described as "regulatory attack vectors", where these transaction batchers are subjected to money transmitter-style concerns.
Disclosure: At the time of writing the author holds ETH, IOTA, ICX, VET, XLM, BTC, ADA