A Quick-and-Dirty Intro to zk-SNARKs
Maybe it sounds like some sort of alien weaponry, but zk-SNARKs are actually of deep importance to the modern world, and to the BANKEX environment in particular. But what exactly are they?
A Few Words of Explanation
First off, zk-SNARK stands for Zero-Knowledge Succinct Non-interactive Argument of Knowledge. The elucidation of the acronym, while informative, isn’t necessarily useful as a method of explanation, so let’s talk about it more deeply and more broadly. Simply, a zk-SNARK is a method of proving that an individual has specific knowledge without revealing the contents of the knowledge itself. Probably the best way to approach this is through the example of the Ali Baba cave.
The Ali Baba Cave Example
In the zk-SNARK environment, there are two main agents interacting: the prover and the verifier. For our purposes, let’s name the prover Pamela and the verifier Vicky.
Pamela and Vicky are in a cave like the one pictured above. Pamela says that she knows the secret password that will open the door between points C and D. Vicky doesn’t believe her, and wants her to prove it. However, Pamela is unwilling to divulge the secret password. They devise a solution: Pamela goes to either point C or D randomly and Vicky, waiting at point B, calls out and tells her to come out of the hallway either on side C or D. This test is then repeated several times. If Pamela doesn’t know the password, then the likelihood of her consistently coming from the side named by Vicky, after numerous iterations of the experiment, becomes almost zero. Thus, after coming from the correct hallway numerous times, Pamela has proven to Vicky that she indeed does know the password to open the door in the middle of the cave without divulging that secret data. To bring this to a more technological context, simply replace Pamela with prover and Vicky with verifier and the process of circling the cave with a series instructions represented by lines of code.
Real-world Implementations of zk-SNARKs
The cave example, while convenient to bring understanding to the implementation of the solution, is hard to associate with real-life uses. So let’s get concrete. Thinking about BANKEX and its Proof of Asset Protocol specifically, the importance of this sort of protocol cannot be understated. Since BANKEX is unifying the worlds of banking and crypto, it has to maintain the benefits of both — that is, both transparency and information security. The cryptosphere is eminently transparent, but not all data required by banks should be recorded and available for public viewing on the blockchain. For example, banks require clients to undergo Know Your Customer (KYC) procedures before using the banking services. But not all of the data provided during KYC procedures should be recorded on the blockchain — for example, age. Using a zk-SNARK protocol within the BANKEX environment, the customer will be able to prove he or she is of age to use the integrated banking and blockchain environment without being required to divulge his or her exact age. It will be enough for the zk-SNARK to confirm that the customer is of age to use the services and this confirmation will be recorded on the blockchain as opposed to the customer’s actual age. This maintains privacy while enabling the full functioning of the BANKEX environment. In addition, once companies start taking part in the BANKEX environment, zk-SNARK protocols will enable companies to provide financial information to prove solvency and success without divulging the exact numbers, thus maintaining their competitive edge.
But this is only one small part of the environment BANKEX is developing to integrate blockchain and banking. To find out more, stay tuned and follow us on social media. If you’re interested in things like zk-SNARKs, be sure to check out our GitHub.