Mastering of ZKP
Mastering of ZKP: Allowing a person without mathematical foundations and the basics of cryptography to deal with ZKP
OXORIO is a fast-growing company specializing in smart contract & zk audits, as well as security consulting. With a team of highly skilled auditors and researchers who have more than 10 years of blockchain development experience and 5 years of smart contract audit experience, it is committed to providing security services for all sorts of projects that are at any stage of development and maturity.
Since 2021, the company has provided high-level security audits for such well-known DeFi projects as Lido, 1Inch, Rarible, deBridge and others. Oxorio maintains a strong commitment to excellence and client satisfaction, valuing long-term relationships with it’s customers.
The company’s co-founders have received grants from organizations like the Ethereum Foundation and the Web3 Foundation. OXORIO is constantly engaged in research initiatives to stay ahead of emerging threats and vulnerabilities. The company is deeply committed to fostering trust and confidence in the blockchain industry by contributing to the R&D of security standards and practices, providing educational materials, and conducting research initiatives.
While diving into the topic of ZK, our team Oxorio studied many educational
resources and found that the material is either too superficial, covers the basics of
ZK but does not allow you to understand the value of the practical application of the
technology, or is so complex that it is difficult for a person without cryptographic
knowledge to master it.
How is our program different?
It is simple. We know how difficult immersion in ZK can be and want to develop a program in which we will explain how ZK-SNARK works in a simple, non-technical language and teach program participants to use this knowledge in practice. No special knowledge is needed. To pass the program, participants do not need advanced mathematical knowledge. Basic knowledge of programming is enough. We will explain to non-mathematicians how the ZK math works and why it works this way.
Mastering of ZKP: Our proposal for an educational program2Practical application of ZK technology. We will give an overview of the main components of the ZK-SNARK composite algorithm, analyze Groth16, and talk about the practical application of the algorithm. Systematic approach from simple to complex. We’ll start with the basics and finish with practical examples from the industry. We will also talk about current problems and tasks for research. A real contribution to the development of ZK. During the program, participants will see the potential of using ZK technologies in their projects and, under our guidance, will try to implement this solution.
The goal of the program:
While studying the lessons, the student must master the theoretical and practical
skills of working with ZK Proofs.The structure of our program allows a person without mathematical foundations and
the basics of cryptography to deal with ZKP. We will take a simplified version of the ZK rollup BabyRoll as an example and
will cover various aspects of using ZKP, the popular DSL language Circom for
building ZK applications, the mathematical foundations of ZKP, and the basic
compound algorithms of ZKP.
Technical Approach: Dive into the how of your project. Describe your approaches, components, workflows, methodology, etc. Bullet points and diagrams are appreciated!
All included in the Program description in the PDF attached above. - Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
Dependencies: What external entities is your project dependent on? What involvement is required from ZF, ECC, and/or other external organizations? Who would have to incorporate your work in order for it to be usable?
The course will be designed specifically for ZCash so it would be useful to get ideas on how to better cutomize it specifically for ZCash. The rest we’ll create our course ourselves with no external involvement, however we would like ZF and ECC to help us spread the course across those who might find is useful once it’s done. Anyone can use the course as long as they want to learn.
Execution risks: What obstacles do you expect? What is most likely to go wrong? Which unknown factors could jeopardize success? Who would have to incorporate your work in order for it to be usable?
We don’t expect any obstacles.
Anyone who would like to learn more about ZKP will find the course useful.
Unintended Consequences: What are the negative ramifications if your project is successful? Consider usability, stability, privacy, integrity, availability, decentralization, interoperability, maintainability, technical debt, requisite education, etc.
Since our course is entirely educational and is designed in a way to educate people only, it will not have any potential negative side effects on any parties.
Evaluation plan: What metrics for success will you share with the community once you’re done? In addition to quantitative metrics, what qualitative metrics will you commit to report?
The quantity of people completing the course. The more the better.
Our team who is going to get paid for the time that is going to be spent on the course.
Determine the technological stack: Identify and analyze the required technologies, libraries, and tools for the development and implementation of the SAM. Exploration of Recursive ZK-SNARK Usage • Assess the feasibility of utilizing Recursive ZK-SNARK to optimize proposal #1 and #2. • Evaluate potential advantages, including reducing the number of proofs to 1 and decreasing proof size. • Investigate the possibility of complete anonymization of the number of participants. Comparison of ZK-SNARK algorithms Conduct a comparative analysis of different ZK-SNARK algorithms, such as Groth16, Plonk, and others, to select the most optimal and suitable one for SAM implementation. Determining the optimal transaction sending method Perform a comparative analysis of methods like account abstraction and the use of relayer services to choose the optimal approach for ensuring transaction anonymity. Storage of pending proofs awaiting minimum threshold • Research and select the optimal method for storing proofs awaiting signatures from other participants. • Examine the potential risks of using the Transaction Service system. Exploration of alternative elliptic curves Investigate alternative elliptic curves that may be more suitable for proposal #1, including an analysis of SNARK-friendly elliptic curves and corresponding algorithms. Additional research on UI enhancements for SAM usability • Explore additional aspects to enhance the usability of SAM. • Address design and user experience considerations. Exploration of other subtle aspects that require investigation Investigate any other nuanced elements that demand research within the scope of the project. Write technical documentation of work performed • Record all findings. • Draw conclusions based on the findings.
ZK-SNARK circuit development Design and implement the ZK-SNARK circuit for proving the knowledge of a valid message signature (if using public keys) or proving knowledge of the “secret” (if using hashed secrets). Smart Contracts development • Design the SAM smart-contract that integrates the ZK-SNARK circuit verifier. • Design SAM proxy factory. • Develop the SAM and SAM proxy factory smart contract. Testing • Develop comprehensive unit tests to validate the functionality. • Simulate various scenarios to test the SAM’s behavior under different conditions Service for storing unprocessed proofs development Developing the backend part for storing pending proofs or integration with ransaction Service system. * The task depends on the results of the research and is therefore subject to change. Scripts and APIs development Writing scripts and APIs to interact with smart contracts and proof generation. Documentation and reporting • Document the design decisions, implementation details, and usage instructions for the backend components. • Prepare a detailed report summarizing the backend PoC.
User Interface Design Design an intuitive and user-friendly interface for interacting with the SAM. Frontend development • Provide a user interface for participants to submit their proofs and commits. • Implement a dashboard or transaction history section where users can monitor the status of their submitted proofs, including pending, approved, or rejected transactions. • Connect backend to frontend. • SafeApp integration. Testing • Correct interface display under different client stories. • Error handling
We evaluated our experiences with developing other courses.