A private blockchain is a great way to achieve consensus between independent companies on transactions they do between each other. It brings decentralization into the equation, where no single party is responsible for maintaining master records and running business logic, and therefore has to be trusted.
While usually, parties are cooperating, they live in an open market’s competing environment, hence no chance they will open up all business activities to each-other, therefore giving up competitive advantage. This single fact has proven consortium chains to be useless if there’s no confidentiality.
On another side, just obfuscating data doesn’t solve a majority of the use-cases, which require more than just proof of existence.
Many efforts so far have failed to address the issue, majorly because the technology wasn’t there.
Demand increases as regulators are pushing industries, like pharmaceutical, into an interoperable system, which will allow to verify an authenticity of a product (drug).
So, the question is: can we solve the problem at all or is blockchain not suitable?
Turns out there are multiple ways to achieve that.
Oracles can be introduced, who will verify all the data and business rules execution and approve obfuscated state changes on the blockchain, but this is an introduction of a clearing house and therefore centralization.
While we were figuring this out another technology has emerged, which were paving its way to the stars for the 4th decade, namely zero-knowledge proof, i.e. ZKP.
Research in ZKP started around 1982 as interactive proof systems. Great, truly magical, technology but cannot be applied in a public environment because of the requirement of direct interaction with the prover each time one wants to verify a statement (apart from being bulky). This means that on the blockchain prover would need always be online to interact with everyone who’s on a network (apart from scalability issue).
Fortunately, series of scientific breakthroughs introduced the world to the non-interactive ZKP. Further improvements (zk-SNARKs) followed making it practical for the blockchain, culminating in Zerocash protocol, eventually implemented in Zcash and most recently in Ethereum.
Zcash is successfully proving in production that math concepts behind ZKP are strong while providing an enormous incentive ($1.5B at the time of writing) to prove opposite. Independent academic work publishing on the topic hasn’t found any vulnerabilities in the technology.
What’s the intangible beast is that anyway?
It is similar to digital signature, which you’re using on a daily basis while surfing the internet. You can verify that signature (proof) corresponds to a public key, without (zero) learning the private key (knowledge). ZKP is applied to a broader set of problems, hence allowing to verify somewhat arbitrary logic, as of whether private key starts with 7 true bits, etc.
Another analogy is having a trusted regulator who has full visibility, but without interest or stake, disincentivized to any other behavior and blindly following the rules.
Here are some of the applications:
- Trusted computing, allowing to outsource a computation task and being sure in its results, which in turn allows next point.
- Scalability solution for the blockchain — executing complex parts of the smart contract externally or even running public or anonymous sub-blockchains with a little footprint to the hub.
- Decentralized anonymous voting.
- Independent mutable anonymous identity, allowing to prove that:
– you live in a certain country without revealing where exactly;
– you’re older than a particular age;
– you have master’s degree from one of the Ivy League universities, etc.
- Proving that you know the key to the encrypted data, revealing neither key nor data, which in-turn proves that the data is indeed an encryption. This also allows proving that encrypted data has a phrase like “New York” in it.
- Medical records, allowing trusted sources to update it while preserving full ownership and sharing only what’s necessary.
I’ve been pondering about ZKP since the first time I heard about it and year 2017 was the right timing: there’s a real problem at hand that could save people’s lives and there’s right technology. So, at Chronicled, we’ve been succeeding at solving drug movement in a supply chain between trading partners on blockchain with the same business logic one would put into a smart contract, but running it within ZKP realm.
Not only does the solution reveals no raw data, indifferentiable from random data pieces, it is also resistant to statistical analysis, which we’re very proud of. But we didn’t stop there and interacted with respected applied cryptography experts (David Schwartz and Zaki Manian) and academia (Alessandro Chiesa, one of the inventors of zk-SNARKs and Zerocash) to verify the solution.
Bottomline: technology solves the confidentiality and finally enables full-scale production deployment for private blockchains. It is really a major milestone, which gives green light to both consortium blockchains and to decentralized future overall.
Personally, I would like to thank all the researchers who have worked and working on ZKP, they’re truly bright people.
It’s worth mentioning, there are some downsides to the technology. It is currently notorious for expensive computation, costly setup stage (ceremony) and non-trivial implementation. Confidentiality has its price and it’s well worth it when you can’t compromise on privacy. However I’m happy to admit that we were able to achieve production-level scalability.
Changes coming up this year:
- Zero knowledge will become much cheaper, allowing execution on mobile platforms.
- Setup stage is being improved.
- A generic framework is coming up, where there will be no need for setup stage for each different use-case.
- Infrastructure development around ZKP: more tools, an ecosystem of ZKP programs (Zapps as Andrew Miller suggested).
Most importantly it will be the year of enabling consortium blockchains.