0x0a. Confidential transactions with zkSNARKs [Blockchain Developers Meetup]

Blockchain Developers Meetup 10 - Confidential Transactions with zkSNARKs
Blockchain Developers Meetup 10 – Confidential Transactions with zkSNARKs

After a recent talk Milen had on Zero Knowledge Proofs in front of the Bulgarian developers community, we decided to dive deeper into this topic and discuss further on our monthly meetup how on-chain confidential transactions could be achieved using zero knowledge protocols.

So last week on our 10th Blockchain Developers Meetup we did that.

Developers news digest

As usual we stared with covering the latest news in the blockchain space which directly relate to us as developers:

  • Pocketh: a “pocket knife for auditing smart contracts” from Zeppelin
  • Sandcastle, an Eth SQL language pre-alpha available in Remix.
  • A Scratch3 extension to make it easy and kid-friendly to build games on Eth
  • Solidity v0.5.8 “further completes ABIEncoderV2, SMTChecker and Yul and improves the optimizer.” Also Solidity v0.4.26 backports bugfixes for v4
  • Truffle and Ganache new releasesVitalik’s design for a minimal mixer
  • Prysmatic labs – new update on ETH 2.0 – they’ve outlined a number of milestones saying new developers are welcome to come on board for testing
  • ZCash – Significant effort put towards final review, testing and documenting this week’s 2.0.5 release. Several bugs were discovered so they are taking the time to properly address.
  • Bitcoin Core 0.18.0 released
  • Proposal for support of Schnorr signatures and Taproot script commitments: Pieter Wuille posted to the Bitcoin-Dev mailing list a proposed BIP for Taproot (using Schnorr signatures) and a proposed BIP for Tapscript, a small variation on Bitcoin’s current Script language to be used with Taproot encumbrances.

Zero-Knowledge

Then we’ve proceeded with the actual topic that brought us together on this particular meetup – zero-knowledge based confidential transactions with zkSNARKs. We’ve talked briefly about the history of zero knowledge proofs – from their first paper appearance at the Forum of Computer Science (FOCS) back in ’85 – invented in 1982 by three scientists – Goldwasser, Micali and Rackoff, to what turned out to be one of the most beautiful and influential concepts in computer science ever since.

Zero knowledge proofs nowadays find various practical application, such as signature schemes, protocol designs, identification schemes and more.

Blockchain Developers Meetup 10 - zkSNARKs with snarkjs and circom
Blockchain Developers Meetup 10 – zkSNARKs with snarkjs and circom

During our meetup we’ve actually focused more on zkSNARKs which stands for Zero-Knowledge Succinct Non-interactive ARgument of Knowledge, and built up a cryptographically secure on-chain (ethereum) implementation of proof, written in Solidity.

We used two libraries/tools in order for us to generate the witness (secret string for the proof) and built our proof function: snarkjs and circom.

Resources

Further read


Also published on Medium.

About the author

CEO

Milen Radkov has experience building and delivering successful complex software systems and projects for big enterprises and small startups. Software developed by him and his colleagues is being used by over 1000+ retail stores today. Milen has also extensive experience in blockchain development and is a well-known figure in Bulgaria’s blockchain ecosystem.

Milen Radkov

Let's build the decentralized future together!

Subscribe for updates from the blog

Leave a Reply

Your email address will not be published. Required fields are marked *