funded
ZKFold Symbolic: a Zero-Knowledge Smart Contract Language
Current Project Status
In Progress
Amount
Received
₳160,000
Amount
Requested
₳200,000
Percentage
Received
80.00%
Solution

A new Haskell DSL for writing zero-knowledge smart contracts. Being a high-level language, it dramatically reduces the barrier to entry as the developers do not need to be experts in ZK cryptography.

Problem

Symbolic-2c2c73.jpg

Soon, Cardano will be capable of verifying zero-knowledge proofs on-chain. This enables more robust and scalable smart contracts. There needs to be a high-level language for such smart contracts.

Impact Alignment
Feasibility
Value for money

Cardano Mixer

2 members

ZKFold Symbolic: a Zero-Knowledge Smart Contract Language

Please describe your proposed solution.

ZKFold Symbolic is a Haskell DSL for writing zero-knowledge smart contracts on Cardano. It is a high-level language that abstracts zero-knowledge cryptographic protocols and lets developers build smart contracts in a familiar setting. The language syntax and semantics are not too different from other on-chain languages, particularly from PlutusTx.

Let us now discuss some technical details of the solution.

  • A zkFold Symbolic smart contract is a pure function that takes a transaction body plus some redeemer data and returns a boolean value, thus acting as a specification for the transaction.
  • ZKFold Symbolic smart contracts can be composed with one another without affecting the Cardano network fee or the number of bytes posted on-chain. A transaction can satisfy many zkFold Symbolic smart contracts at the same time, i.e., the user can interact with many different protocols simultaneously.
  • The on-chain data footprint is significantly limited compared to regular Cardano smart contracts. In particular, the redeemer data in zkFold Symbolic smart contracts is private by default.
  • The code written in zkFold Symbolic is directly compiled into arithmetic circuits that can be used in most ZK protocols.
  • Our approach does not involve Virtual Machines (VMs), which has a significant positive impact on the efficiency of the protocol.

We believe there are at least four types of applications where the usage of zkFold Symbolic makes sense:

  1. Batching user requests in high-volume dapps. Due to the properties of zkFold Symbolic, creating big batched transactions significantly reduces the aggregate network fees.
  2. Simultaneous interactions with multiple protocols. As discussed above, multi-protocol transactions cost the same as single-protocol ones. This prompts developers to make truly composable protocols in zkFold Symbolic, reducing fees and elevating user experience in the process.
  3. Complex smart contracts that cannot be built otherwise. Examples:
  4. A contract for voting verification. It can verify the correctness of the whole DAO voting procedure in one single transaction, which helps with scaling DAOs to hundreds of thousands or even millions of members.
  5. An escrow contract for trustless P2P fiat-to-crypto on-ramp (see the corresponding proposal).
  6. Smart contracts with private data. Proving the knowledge of private information without revealing it is essentially trivialized with zkFold Symbolic.

You can check the demo of zkFold Symbolic and follow our progress on GitHub.

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

Providing developers with a proper tool to tap into the power of zero-knowledge protocols enables them to create smart contracts and DApps that are on another level in terms of efficiency and user experience. Moreover, with more developers adopting this approach, we are reducing the on-chain data footprint and compressing user transactions, effectively scaling Cardano on layer one.

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?

The zkFold team consists of expert Haskell, Rust, and ZKP developers. The founder of zkFold, Vladimir Sinyakov, previously completed a Project Catalyst Fund6 grant leading the ENCOINS team. ENCOINS is a DApp on Cardano that has been recently launched on the mainnet.

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

Reach the MVP stage.

With the language demo currently available on GitHub, we are currently in the pre-MVP stage. To advance to the MVP stage, we need to do the following steps:

  • Create the Cardano types library, which contains the data types used in the Cardano transaction bodies.
  • Code the common transaction preprocessing part of the smart contract arithmetic circuit.

Outputs and verification: the code is open-source and will be published on GitHub.

>Enable variable-length types and folds/maps with a variable number of steps.

Proper implementation of these features requires the usage of advanced protocols, such as folding schemes, which represents a significant development effort.

Outputs and verification: the code is open-source and will be published on GitHub.

>Create ZKFold Symbolic Standard Library.

To speed up the smart contract development in zkFold Symbolic, we will provide the developers with a set of commonly used operations on Cardano types.

Outputs and verification: the code is open-source and will be published on GitHub.

>Develop a comprehensive test suite and example library.

A smart contract language needs a very thorough test coverage and a library of examples to make the learning process fast and efficient.

Outputs and verification: the code is open-source and will be published on GitHub.

>Produce the completion report and the video illustrating the solution.

Outputs and verification: the report and video will be publicly available.

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

The zkFold team consists of expert Haskell, Rust, and ZKP developers. ZKFold's team members participated in the development of several successful projects on different blockchains, including Cardano, Polkadot, and Near. The zkFold team won the EMURGO BUILD Hackathon on the zero-knowledge track and took 3rd place in the Battle of the Builders at the Cardano Summit 2023 in Dubai.

Vladimir Sinyakov

Founder and CTO,

<https://www.linkedin.com/in/vladimir-sinyakov/>

Founder and protocol architect of ENCOINS. Ph.D. in Computational Mathematics. Prior experience includes five years of postdoc in applied mathematics (Control Theory), publishing in top journals in the field. Previously completed a Project Catalyst Fund6 grant leading the ENCOINS team. ENCOINS is a DApp on Cardano that has been recently launched on the mainnet.

Stanislav Marycev

Co-founder, Business Development.

<https://www.linkedin.com/in/stanislav-marycev/>

Cardano Blockchain Certified Associate (CBCA). Blockchain technology and smart contracts certified, Project Management Professional (PMP) and agile professional with 12+ years of experience in worldwide IT projects.

Ilya Eriklintsev

ZKP researcher,

<https://www.linkedin.com/in/ilya-eriklintsev-3a296852/>

Techlead at vSelf, an SSI solution on NEAR blockchain. More than six years of experience in the blockchain industry. Former researcher in Computational Fluid Dynamics.

Vladimir Kukharenko

Developer

<https://www.linkedin.com/in/vladimir-kukharenko-vovunku/>

Participated in a blockchain infra project on Polkadot. Worked on developing a blockchain from scratch and an API for it as a part of a formally verified blockchain project. Two years of experience in the blockchain industry. Researcher in formal verification and formal methods.

Sergey Ivannikov

Developer

Experienced as a senior software engineer in various IT companies. A former researcher at ETH Zurich in Computational Fluid Dynamics.

Please provide a cost breakdown of the proposed work and resources.

Cardano Types and Common Operations Development: 75,000 ADA

1 software developer @ $3,000 per month for 6 months = $18,000 (~45,000 ADA)

1 software developer @ $3,000 per month for 4 months = $12,000 (~30,000 ADA)

Zero Knowledge Protocols Development: 75,000 ADA

1 software developer @ $3,000 per month for 6 months = $18,000 (~45,000 ADA)

1 ZKP researcher @ $3,000 per month for 4 months = $12,000 (~30,000 ADA)

Documentation, Project Management, and Protocols Design: 50,000 ADA

1 technical writer @ $2,000 per month for 2 months = $4,000 (~10,000 ADA)

1 software developer @ $3,000 per month for 2.6 months = $8,000 (~20,000 ADA)

1 project manager @ $1,333 per month for 6 months = $8,000 (~20,000 ADA)

Total: $80,000 = ~ 200,000 ADA

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

The project requires a deep understanding of the Cardano smart contracts as well as expertise in zero-knowledge cryptographic protocols. As we have to pay competitive salaries to our developers and researchers, we've arrived at the budget breakdown above. Ultimately, the project's cost is on par or below compared with other notable Developer Ecosystem projects on Cardano.

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