FreeTon Crypto3

from 18 Oct 2021 to 28 Oct 2021
Event Info

FreeTon team proposes to take part in the contest and earn from ~$17,500 to ~$70,000.

Event details

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:
  1. 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.
  2. Submission: Apart from uploading a submission, a code should be submitted in accordance with
  3. 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.
  4. Tests: If a test does not cover some scenarios, then jurors can develop their own tests, but it should reduce such a submission score.
  5. 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).
  6. Uniqueness: Submissions must differ from each other by at least 10%, or else they should be rejected.
1 Oct 2021 03:00(UTC+3) - 28 Oct 2021 03:00(UTC+3)