Cardano’s expansive scalability roadmap is missing transaction rollups. We have a 4-phase plan to bring zk-rollups to Cardano for massive throughput increase and fee reductions.
Our Phase 1 product is called zkWrapper. It takes any Untyped Plutus Core (UPLC) script as input and produces a zero-knowledge version of it with great scaling features. No ZKP expertise is required!
This is the total amount allocated to zkFold: zk-rollups on Cardano. Phase 1: zkWrapper.
Stanislav Marycev
We rely on CIP-0381 (BLS signatures) to become active in delivering our project. According to our information, it is planned for the next hardfork.
The project will be fully open source, except for the premium API server component. There will be two ways of utilizing the zkWrapper tool: either by using the open-source server component or by using our premium API service. Both ways have identical functionality. The premium version will offer faster proving times for ZKPs.
-
zkFold’s overall product roadmap
zkWrapper
Creates a zk-wrapped version of a Plutus script. Allows the execution of significantly more complex smart contracts on-chain with only a moderate fee that does not depend on the original script's resource consumption. This product expands the capabilities of Plutus smart contracts. The developers can unleash their creativity, not restricted by execution prices and transaction size.
zkFold - Our core product. First as a validium rollup, later as a zk-rollup solution for Cardano.
Main features:
Data sidechain
As a part of the zkFold rollup solution, we develop a data availability layer in the form of a Cardano sidechain. Through its architecture and economical incentives, our sidechain will encourage efficient space usage: a part of the current state can be compressed to a single root hash of a Merkle tree if all relevant parties confirm the knowledge of this data.
zkWrapper: Plutus Smart Contracts Unleashed!
zkWrapper is a DApp developer tool. It takes any Untyped Plutus Core (UPLC) script as input and produces a zero-knowledge version of it with great scaling features. No ZKP expertise is required!
Wrapped scripts enjoy the following features:
Normally, UPLC scripts are limited by the Cardano transaction size (currently, 16KB). Wrapped scripts have constant length.
Original script execution happens off-chain. The wrapper script only checks the proof of execution, which requires a fixed amount of ExUnits.
Redeemers are the input data to Plutus scripts. We supply short polynomial commitments to the zk-wrapped scripts instead of the actual data. This allows us to circumvent the Cardano transaction size limit.
Similarly to redeemers, polynomial commitments (or hashes) can be used in datums to reduce the overall transaction size. The difference is that datums usually also contain public data that is critical for determining the on-chain state of the smart contract. This public data cannot be hashed without changing the smart contract trust model (data availability).
Since the original script is not submitted on-chain, it can be kept private. It is up to the developers or users to disclose it.
How does zkWrapper work step-by-step?
Visit the product’s webpage for more information: https://wrapper.zkfold.io/
zkFold aims to enhance Cardano blockchain scalability by building L1 (zkWrapper) and L2 (zk-rollup) solutions while providing a familiar experience to Plutus smart contract developers. zkWrapper is a necessary step towards such a zk-rollup: most of the code will be later reused in our core product.
zkWrapper enables developers to build smart contracts that were previously too difficult to implement and too expensive (such as multi-transaction computations). It has the potential to open up completely new smart contract use cases. In addition, some of the existing smart contracts can also benefit from this technology as a wrapped smart contract can potentially have more inputs and outputs than the original one.
The ultimate measure of success for this proposal would be the adoption by the Cardano ecosystem, measured as the number and TVL of the DApps that use our products.
During the development, we will keep track of how we are delivering on every promised feature. We will be measuring the performance of our software on some reference examples making sure that it meets our standards.
The core protocol and software of zkWrapper will be open-source. We will advertise our solution through social media and our contacts within the Cardano ecosystem. We will participate in conferences, workshops, and other events to spread awareness about the project.
Our main goal with this project is to contribute to Cardano’s scalability potential.
We have designed an early unoptimized prototype of the arithmetic circuit used in the ZKP algorithm during the Hackathon as well as the Witness Generation Tool. It gave us the sense that our solution (zkWrapper) is indeed feasible. We have also discovered a way to reduce the computations in comparison to our early prototype by order of magnitude which should make the approach suitable for use in real production-grade DApps on Cardano.
zkWrapper will be implemented as a backend server component. We also plan to provide its functionality as an API service.
Milestone 1: Arithmetic circuit design & ZKP witness generation tool
2 month
We will need to finish the R&D of the core protocol and write the documentation. Our developers will do a rework of our early prototypes of the arithmetic circuit and the witness generation tool.
Milestone 2: ZK prover backend
2 month
We will implement the proving algorithm. It is the most computationally intensive part and will likely require a few iterations and optimizations to achieve the best performance.
Milestone 3: On-chain verification script and off-chain transaction processing tool
1 month
We will implement the protocol flow described earlier: processing the original transaction, generating the proof, and constructing the final transaction to be validated in the on-chain verification script.
Milestone 4: Finalizing the server component and creating an API service.
1 month
We will work on making the server component production ready as well as setting up the API service that can be used instead.
Milestone 1: Protocol documentation. The code of the arithmetic circuit and witness generation tool.
Milestone 2: End-to-end demo that accepts a UPLC program and produces the proof of correct execution.
Milestone 3: The on-chain and off-chain code for wrapped script transactions.
Milestone 4: zkWrapper as an open-source backend app and as an API service.
For this proposal, we need at least three full-time developers, two ZKP experts, and a project manager.
Additional ZKP research: 160 hours
Protocol design and documentation: 320 hours
Project management: 240 hours
Backend development:
Total hours: 2640
Total cost: 190 000 $
The project has a six months timeline. Our team consists mainly of experienced developers and researchers. With the current average salary for experienced blockchain developers at 120 000-150 000 $/year, we offer to deliver this innovative product in line with the market average.
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.
Stanislav Marycev,
Co-founder, Business development.
https://www.linkedin.com/in/stanislav-marycev/
Cardano Blockchain Certified Associate (CBCA). Blockchain technology and smart contracts certified, 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.
Philip DiSarro,
Developer,
https://www.linkedin.com/in/philip-disarro-068b56161/
Currently the lead smart contract developer at Ikigai Technologies, a consultant and lecturer for Emurgo, and a founder of Anastasia Labs. Previous experience in the Cardano ecosystem: WingRiders, Agora, Plutarch.
Daniel Firth,
Developer,
https://www.linkedin.com/in/locallycompact/
Founder/CEO at Homotopic.Tech, a statically typed functional programming consultancy. Previously Smart Contract Architect at Orbis Labs. More than twelve years of experience with Haskell.
Sergey Ivannikov
Developer
Experienced as a senior software engineer in various IT companies. Former researcher at ETH Zurich in Computational Fluid Dynamics.
Tony Makdissy
Developer
https://www.linkedin.com/in/tony-makdissy
International Collegiate Programming Contest (ICPC) World Finalist
International Physics Olympiad World Finalist
Master AIRE in Life Sciences