Groth16 zkSNARK - contest part 2
Free TON Dev Experience launched the second Groth16 zkSNARK Zero Knowledge Proofs Part 2 Challenge. The first competition attracted 4 applications from participants and showed some examples of the use of zero knowledge proofs. While voting is in progress, you can familiarize yourself with the works of the contestants:
- https://firebasestorage.googleapis.com/v0/b/ton-labs.appspot.com/o/documents%2Fapplication%2Fpdf%2F3op8bcb06aekr5i031g-Privacy_preserving_Credentials_with_zkSNARKs.pdf?alt=media&token=ab40f1fc-9992-4599-9117-7f6e6fac6c7e
- https://firebasestorage.googleapis.com/v0/b/ton-labs.appspot.com/o/documents%2Fapplication%2Fpdf%2F34yi1fut5z3kr5dmyj6-zkp_covid_tracker.pdf?alt=media&token=cb05ab82-cb38-4a06-b05f-b6ede6003261
- https://firebasestorage.googleapis.com/v0/b/ton-labs.appspot.com/o/documents%2Fapplication%2Fpdf%2Fyetnaazky8kr5ca6nc-Anonymous%20Vote%20-%20A%20ZKP%20Use%20Case.pdf?alt=media&token=7da85ad7-26a5-4231-af12-7e3faffda182
- https://firebasestorage.googleapis.com/v0/b/ton-labs.appspot.com/o/documents%2Fapplication%2Fpdf%2Fuaw6elz64t9kr538q99-submission.pdf?alt=media&token=cc619b2f-402f-4d60-8292-57b2c9e76b65
Since zkSNARK have great prospects in the future, it was decided to launch a second competition, where each participant will also be able to provide their vision of the application of zero-knowledge proofs and possible integration with the FREE TON blockchain
Description
=nil; Foundation as an initial member of Free TON community developed an upgraded version of TON Virtual Machine, which includes cryptographic primitives required for usage zero knowledge proof verification within the virtualized applications. =nil; Foundation also prepared C++ (GitHub - NilFoundation/cpp-ton: Cryptography-enhanced Telegram Open Network Protocol C++ Implementation) and Rust-y (GitHub - NilFoundation/rust-ton: Cryptography-enhanced Telegram Open Network Protocol Rust Implementation) ZK proof verification instruction-enhanced TON protocol implementations
A test protocol instance was launched using the C++ ZK proof verification instruction-enhanced implementation. Network configuration used for the contest is available at: ton-proof-verification-contest/testnet.config.json at master · NilFoundation/ton-proof-verification-contest · GitHub
ZKP test network visualization is available at https://live.freeton.nil.foundation and at https://nil.ton.live
Before the Free TON community will be able to patch a mainnet node-clients this ZKP clients should be tested for security and stability
This document proposes the first in a series of “ZKP contests” aiming motivation of Free TON developer community to try prepared tools and to crowdsource simple ZKP use cases for testing purposes
Instructions for participants
Participants are expected to create any trivial sample case which uses Groth16 proofs.
Contest repository (aka place to start) is available at: https://github.com/nilfoundation/ton-proof verification-contest
Advanced proof generation and circuit definition documentation is available at: Crypto3 Cryptography Suite
General requirements
Solutions provided are expected:
- To be a correctly functioning FreeTON LSCS deployed on a test network (https://live.freeton.nil.foundation)
- Not to be a TONCash-alike or any anonymous transactions/token proposal. There is a separate contest for that
- To involve VERGRTH16 TVM instruction usage
- To contain circuit definitions done (preferably) with =nil; Crypto3 Blueprint library (GitHub - NilFoundation/crypto3-blueprint: Component module for =nil; Foundation's Zero-Knowledge Cryptography) or as a formal statement
- To contain proving/verifying key and the statement being proved (primary and auxiliary inputs)
Evaluation criteria and winning conditions
- Apart from uploading a submission, a code should be submitted in accordance with GitHub - freeton-org/readme
- A participant should do a presentation of her solution at a convenient time agreed with DevEx members. A solution should include tests with clear instructions
- If a test does not cover some scenarios, then jury members can develop their own tests, but it should reduce such a submission score
- The solution should have an open source license
- The solution has to comply with formal requirements introduced by the instructions for jury members
- Each submission should be rated by jury members based on its:
○ Easy to use
○ Suitability for real use
○ Innovativeness
○ Complexity
○ Tests completeness
Application period
Aug 1, 2021 00:01 UTC - Aug 31, 2021 at 23:59 UTC
Reward
1th place … 35,000 TONs
2th place … 30,000 TONs
3th place … 25,000 TONs
4th place … 20,000 TONs
5th place … 15,000 TONs
6th place … 10,000 TONs
7-10th place … 5,000 TONs
Links
Landing page — https://freeton.support/sharki
Official news - https://forum.freeton.org/t/contest-proposal-groth16-zksnark-proof-verification-use-cases-part-ii/11291
Developers Chat - https://t.me/freeton_dev_exp
FREE TON wiki - https://ru.freeton.wiki/Free_TON_Wiki
Introduction to FREE TON (short course) - https://freeton.academy/courses/introduction-to-free-ton-ru/