🐙 Evan Azevedo

Search

Search IconIcon to open search

56 - Understanding more about the ZKHacks puzzle

Last updated Nov 26, 2022 Edit Source

Today I continued to bang my head against the wall that is the ZKHacks III first puzzle. Today I was able to pick apart the difference between the Marlin and Aurora elements of the puzzle. In short, from my understanding, Marlin is the pre-processing step and PCS - it allows you to pick your own method for PCS - and Aurora is the full zkProof that we want to implement.

There is also a crucial part of the verifier code src/verify.rs where the verifier verifies the prover’s proof:

1
2
3
4
5
6
7
8
let card_inverse = statement.domain.size_as_field_element().inverse().unwrap();
let lhs = proof.s_opening + proof.f_opening;
let rhs = {
    let x_gx = xi * proof.g_opening;
    let zh_eval = statement.domain.evaluate_vanishing_polynomial(xi);

    x_gx + proof.h_opening * zh_eval + statement.sum * card_inverse
};

My goal tomorrow is to find out where this math exists in either the Marlin or Aurora papers.


I'm a freelance software developer located in Denver, Colorado. If you're interested in working together or would just like to say hi you can reach me at me@ this domain.