---
# System prepended metadata

title: introduction to zk workshop

---

## Workshop plan
- Day 1 (Pre requisite Knowledge)
    - Introduction to key concepts
        - Introduction to polynomials
            - Polynomials for error amplification
                - Schwartz zippel lemma
                    - Polynomial identity problem
                    - Randomness and its role in succinctness
            - Types of polynomials
            - Polynomial methods
    - The Sumcheck protocol
        - Applications / Aim of Sumcheck
        - Interactive Sumcheck
            - Prover logic
            - Verifier logic
        - Fiat Shamir
        - Non Interactive Sumcheck
    - Coding workshop Setup
        - Installation of the neccesary tools and libraries
        - Cloning of the boilerplate repo


- Day 2 (Practical)
    - Implementation of the Sumcheck prover
    - Writing of the Non interactive sumcheck protocol
    - Testing the protocol

## Pratical Feasibility

### What are we including as prebuilt components?
- Multilinear / Univariate polynomial library with the following methods:
    - evaluate: evaluates the polynomial at a random input
    - partial_evaluate: evaluates the polynomial at some partial input, returns another polynomial
    - skip_one_sum_over_boolean_hypercube: utility function to make the sumcheck prover implementation really easy
- Transcript implementation: allows us make sumcheck non-interactive
- Verifier: we'd provide a verifier so participants can verify their prover generates a valid proof. 

### The sumcheck prover algorithm using the components above
- construct the polynomial you want to run sumcheck on
- for every variable in the polynomial do the following:
    - skip the first variable and sum over the boolean hypercube
    - send round polynomial to the verifier (uses the transcript)
    - get the verifier challenge (uses the transcript)
    - partially evaluate the polynomial at the challenge point
    - repeat

### Participants workflow
- clone our `boilerplate` repository
    - this will contain all the prebuilt components above, and directions on how to modify it
- implement the sumcheck prover algorithm
- verify valid proof generation using the `verifier`

### How do we ensure feasibility?
- I and Francis will do the end to end `participant workflow` process ourselves in less than 15 minutes, only then will we be satisfied. 