At the very beginning of the meetup, the participants agreed that the DeNS refinement contest proposed by Mitja at the last meeting would be launched as soon as possible. Then they talked about who will judge the contests on the ZKP system, delved into the technical nuances, and made suggestions on the topic for the future.
Contests On The ZKP System: Who Are The Judges?
Peter Korolev promised to bring a certain number of teams that will take part in the ZKP contests. The meetup participants decided that the second contest (Solidity to TVM Compiler Groth16 zkSNARK Proof Verification Instruction Support Introduction) should be launched in parallel. There are 20 days to vote for both proposals.
Mikhail, a representative of NilFoundation, the initiators of the contests, believes that a normal design is needed: “There must be requirements for the design, some kind of formal proof, statements. There should be a separate article, which will not be published anywhere”. As a result, changes were made to the draft of the contest.
If both Mitja and the NilFoundation team will formally take part in the contests, there was a suggestion to ask them to be on the jury based on the results of the Formal Method SG contests. Mitja: “We need to describe the format and process of judging, give the tools and write it in the contest, that we will judge using such-and-such tools and such-and-such criteria, which should be more or less formal. It will be very useful, and for testing, too”.
Mikhail promised to write a similar instruction for two proposals.
Mitja suggested, to think about having optimization for creation time, generation of proof. Mikhail agreed they could do it: “For the current instructions, we can bring what we did for filecoin. But it will be turbo-expensive because we will open private code. We have a project where we de facto supply the filecoin prover (proof-of-storage) to miners. The code is substituted, the guys see it, audit it, they all have the competence to understand that there is nothing wrong. And without being too modest, it is one of the fastest on the planet, otherwise, we would have died a long time ago”.
Mitja asked to clarify what “fast” means in this sense. Mikhail did not hesitate to answer: “180 GB circuit is proofing on AMD 7542 CPU and RTX 3080 in less than 8 minutes. The point is: IPFS is just a graph protocol. Each uploaded file is broken up into data chunks of a few Kbytes, and then people throw these atomic chunks to each other. Like staking.
I can give you the known results of an experiment on this topic. The 180 GB circuit is a de facto proof of a 32 GB sector, i.e. 32 GB of this stater is preprocessed and fell apart on 180 GB as a circuit.
There are tricks on the test network, we debugged this entire story on 512 MB sectors. It all fell apart in a 2 GB series and lasted less than 30 seconds for sure”.
ZKP: A Proposal For The Future
Pavel P made his proposal that it is necessary, though not right now, to launch contests for tooling to automate the compilation of circuits and Proof-of-Storage.
Mikhail noted tooling is in the process, but more formal requirements are needed for it. He promised to show two options: the first one solves an engineering problem (take a ready-made one and port it), and the second one is more of an engineering research problem.
Pavel P suggested making two options at once: “Basically, just adapting the current compiler is an understandable task with clear deadlines. One does not contradict the other”.
Mikhail believes that in any case, it will come down to adapting existing compilers.