over budget
Incorporating Plonk into AK-381 Zero-Knowledge Library
Current Project Status
Unfunded
Amount
Received
₳0
Amount
Requested
₳100,000
Percentage
Received
0.00%
Solution

Integrating the PLONK scheme into the ak-381 zero-knowledge library, represents a significant advancement in the development process for zk-dapps.

Problem

The creation of Zero-Knowledge applications is still a hard process with high technical barriers. This prevents the development of innovative and disruptive dapps in Cardano.

Impact Alignment
Feasibility
Value for Money

Team

3 members

Incorporating Plonk into AK-381 Zero-Knowledge Library

Please describe your proposed solution

¿What is Zero-Knowledge cryptography?

Zero-Knowledge technology allows one party to prove the truth of a statement to another party without revealing any additional information. In blockchain, this technology enables new applications that weren't possible before, specifically the creation of solutions that improve the scalability and privacy of blockchain networks. For this reason, this cryptography will propel blockchain into a new revolution.

¿What is ak-381 library?

ak-381 is a library featuring functions and utilities for building Zero-Knowledge applications. Written in Aiken, this library aims to provide various types of verifier functions and Zero-Knowledge proof utilities. It also includes tools for achieving interoperability between popular front-end libraries like circomjs and snarkjs with the Plutus virtual machine.

The proposal

Currently, the ak-381 library only supports the Groth-16 scheme. While this scheme is one of the most efficient within the zk-SNARKs family, each time a new application is designed, a multi-party ceremony must be initiated to derive the proof and verification keys of the scheme. The need to perform this ceremony every time a new application is designed delays and impacts the developer experience when designing applications with this cryptography.

However, there are other zk-SNARK schemes such as PLONK that do not require this ceremony to obtain the keys. Thus, the goal of the proposal is to incorporate this scheme into the ak-381 library. This enhancement would enable easier and faster development of Zero-Knowledge applications. Firstly, there will be an investigation into the elliptic curve mathematics necessary to implement PLONK. Once this research phase is completed, a prototype will be created and tested to ensure its safety for use. Finally, libraries will be generated that can be integrated into the front-end to generate proofs based on the PLONK scheme in an accessible and developer-friendly manner.

Please define the positive impact your project will have on the wider Cardano community

The successful implementation of this proposal will open doors for developers to create new applications using this technology. By incorporating the PLONK scheme, technical barriers that may exist when developing such applications will be eliminated.

What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?

Our team was formed by winning the Zero-Knowledge track of the Cardano Emurgo Build 2023 Hackaton. As a result of very intensive work we were able to:

  • Deliver a working DApp showcasing the use of Hydra to implement ZKPs in the context of the game “Mastermind” as a proof of concept. This was one of this first zk-dapps of the ecosystem.
  • Write a Plutus and Aiken implementation of a Weil’s pairing for a generic Elliptic Curve and initiate testing on the BN128 and BLS12-381 Elliptic Curve (which is extensively used in ZKPs deployed in Ethereum).
  • Gained experience that gives us confidence that we will be able to successfully integrate the off-chain and on-chain code to arrive at a consolidated solution.

Our team has a strong background in software development for the Cardano ecosystem and Mathematics research. (See section on ‘Project Team’ below.)

What are the key milestones you need to achieve in order to complete your project successfully?

Milestone 1: Researching the mathematical foundations of the PLONK scheme.

Acceptance criteria

This will imply doing a document that explains how the PLONK scheme works, giving the major guidelines about how to implement such scheme. The document must be written in a clear and coherent manner.

Milestone 2: Implementing in Aiken the PLONK verification function.

Acceptance criteria

This imply coding a verification function that can take a PLONK generated proof, and check correctly wether that proof is true or false given the public values and keys.

Milestone 3: Test the verification function and implement utilities to generate PLONK proof in the front-end.

Acceptance criteria

This will imply to succesfully:

  • Create unit and property test that garantee that the plonk verify function is correct.
  • Create a javascript or typescript library that allows to construction plonk proof off-chain.

Final Milestone: Create divulgation articles and wrap-up the investigation and implementation in a final report.

Acceptance criteria

This imply to succesfuly:

  • Create a promotional article about the PLONK verify function and its benefits.
  • Final report
  • Close-out report vide.

Who is in the project team and what are their roles?

  • Antonio Hernandez-Garduño (https://www.linkedin.com/in/antoniohg/). Haskell developer and mathematician, with 20+ years of experience in Mathematics research and 2+ years of involvement in Cardano development. Certified Cardano Developer Professional by Emurgo Academy. Will head the cryptography analysis tasks and protocol research.
  • Juan Salvador Magán Valero. Full stack Web 3 developer and CIP-0093 creator, focused on bringing adoption to Cardano. Will be in charge of Off-chain tooling, front-end development for proof-of-concept DApps, Hydra deployment, and integration testing.
  • Agustín Salinas Hernandez. PlutusTx & Aiken smart contract developer and technical writer. Will be in charge of on-chain code benchmarking, code optimization and documentation.

Please provide a cost breakdown of the proposed work and resources

Screenshot_2024-05-13-04-17-05_1366x768-e6e90a.png

No dependencies

How does the cost of the project represent value for money for the Cardano ecosystem?

The main expense of the project is the development hours. In that sense is important to note:

  • The team consist of three developers that will work 45 hours per week in the project a full year.
  • The hourly wage is $46 USD which will represent $88,320 USD anual incom in 40 hour week work. Which according to https://web3.career/web3-salaries/blockchain-develope is within the range of salaries of blockchains developers (starts from $50,000 up to $250,000).
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00