FreeTon Crypto3-Blueprint library to TVC compilation Contest
Add to Watchlist
$17,500 - 70,000
50,000 - 200,000 TON
Normal, Low Risks
As part of the integration of Groth16 zkp scheme into Free TON, it should be possible to generate proofs in DeBots.
The proof generation itself can be added as a TVM instruction, but to generate proof you must first generate an auxiliary (and sometimes public) input which satisfies the R1CS circuit.
This functionality is implemented in the C++ library crypto3-blueprint by =nil; foundation
Since the auxiliary input generation differs significantly between different circuits it cannot be added as an instruction, instead it has to be done using in-TVM logic.
Fortunately, there’s a C++ to TVC (TVM bytecode) compiler. However, as it is it can’t be compiled, and various included file not found errors can be seen when trying to do so for example. This is a contest to patch the compiler sdk and the crypto3-blueprint or its dependencies in order to get it to compile.
Instructions for participants
Participants are required to write patches if needed to crypto3-blueprint (GitHub - NilFoundation/crypto3-blueprint: Component module for =nil; Foundation's Zero-Knowledge Cryptography 1) and its dependencies as well as the C++ compiler so that it would be possible to compile and run a C++ smart contract which uses this library. You are recommended to use a template repo 2 as a basis.
It should be possible to use all the capabilities of the library which can currently be used, the library contains a few incomplete components, so if a file does not compile/run correctly with a regular C++ compiler to machine code, it is not required to patch it.
It should still be possible to compile the patched library with a regular C++ compiler to machine code and run it. Its performance should not be decreased.
Only submissions with an average score equal to or more than 6.0 can get a reward.
- 1st prize 200,000 TONs (~$70,000)
- 2nd prize 100,000 TONs (~$35,000)
- 3rd prize 50,000 TONs (~$17,500)
Requirements for works
To participate in the contest, you must comply with the specified requirements:
- Library: Making the library perform better in TVM would make your score higher, you might want to use native TVM types for that, for example, using Preprocessor Definitions.
- Submission: Apart from uploading a submission, a code should be submitted in accordance with https://github.com/freeton-org/readme
- Presentation: A participant should do a presentation of her solution at a convenient time agreed with Cryptography SG members. A solution should include tests with clear instructions.
- Tests: If a test does not cover some scenarios, then jurors can develop their own tests, but it should reduce such a submission score.
- Solutions: The solution should have an open source license. The solution should contain at least a draft of an architecture description. (There must be a better way to say it in this kind of patching contest).
- Uniqueness: Submissions must differ from each other by at least 10%, or else they should be rejected.
FreeTon team proposes to take part in the contest and earn from ~$17,500 to ~$70,000.
1 Oct 2021 03:00(UTC+3) - 28 Oct 2021 03:00(UTC+3)