Sudoku snark

a story by Kompact.io

How it started

There is hackathon on cardano 🥳 …

But wait! 🧐 There is a ZK track

Surely No!?

  • Fundemtal primitives for any zk-alg are not available in plutus

  • Midnight, the much hyped zk sidechain, is essentially in stealth mode

  • zk on cardano? not possible! 😵‍💫

  • Using some other chain for zk and bridging over … that’s bridging: we want zk

… oh, hello PR#5231 👀

  • A beast of a PR: 6 months, 230 commits, 319 files changed
  • Finally merged during this hackathon

This PR adds new built-in types and functions to Plutus Core and PlutusTx for pairings over BLS12-381, as specified in CIP-0381.

What does this mean??

  • CIP-0381: Plutus support for Pairings over BLS12_381
  • In other words, plutus gets the builtins that make it possible to begin genuine zk on cardano

So Yes! We can zk on cardano

First hurdle

  • Only the primitives are provided; we need implement a zk-alg
  • Use it as the basis for a dapp
  • And do both in a way that doesn’t break the (tx exunits) bank

And then?

  • Having zk in the latest version of plutus is one thing: Running a zk dapp on cardano is quite another!

  • There is no chance of running these new primitives on Cardano mainnet any time soon

Not on L1, but … hydra

  • Hydra can, in theory, run a modified version of plutus
  • Hydra is very much Cardano

… so we’d need to: 📋

  • Create a zk validator
  • Create the related functionality to build relevant txs
  • Bump the various cardano libraries necessary to get hydra to run the latest
  • Deploy

(Do this all in less than three weeks, while keeping the day job 😅)

Sudoku snark

Aims

Create a non trivial zk dapp on Cardano, that provides as a demonstrable PoC.

The Dapp itself can be facile: its contribution is to derisk more ambitious dapps with stronger use cases.

What next?

Why this should win?

The judging criteria

  • Innovation and Necessity to the Cardano Blockchain Ecosystem (20%)

This evaluates how novel and essential your solution is within the Cardano ecosystem. It looks at whether your idea is unique and if it solves a critical need.

  • Maturity of the Tech and Product (40%)

This assesses the technical robustness and readiness of your solution. It considers the technology used, the degree of completion, and the readiness for deployment of your product.

  • Go-to-Market Strategy, User Acquisition Strategy and Community Growth Strategy (20%)

This looks at your plan to introduce your product to the market, how you plan to acquire users, and strategies you have for growing your community. It evaluates the viability and potential effectiveness of these strategies.

  • Team and Experience (20%)

..

  • Given that zk is
    • highly technical
    • incredibly nacent in blockchain
    • barely exists on cardano
  • expecting a maturish product with a “go2market” strategy seemed … ambitious

As for the team

@waalge

  • Cheif of Kompact.io
  • 2 years building around cardano (eg guchi.io)
  • Previously full stack dev, ML/NLP researcher
  • PhD in geometry