pluto / web-prover-circuits

Circuits for Pluto's `web-prover`
Apache License 2.0
12 stars 0 forks source link

feat: NIVC hash chain #36

Closed Autoparallel closed 2 weeks ago

Autoparallel commented 2 weeks ago

WIP

Working to reduce public io signals to 1, just pass a hashchain value through AES and into the subsequent circuits where the hashchain will be computed again.


I am using circomkit a bit more to help see constraint counts and what not as I'm going through and I've found we have a good bit of warnings again.


Autoparallel commented 2 weeks ago

Currently fighting a bug where circomkit isn't getting the step_out value from the circuit. I know it's computing properly, but it isn't giving me it in TypeScript:

it("NIVC_CHAIN", async () => {
       //..
        let parseAndLockStartLine = await httpParseAndLockStartLineCircuit.compute({ step_in: temp_step_in, data: http_response_plaintext, beginning: beginningPadded, beginning_length: beginning.length, middle: middlePadded, middle_length: middle.length, final: finalPadded, final_length: final.length }, ["step_out"]); // THIS GIVES ME `[]` `"step_out"` even though I can see it's correct with circom logs. 

This is in the NIVC_FULL test

Autoparallel commented 2 weeks ago

Did you guys just finish this up for me 🥹

0xJepsen commented 2 weeks ago

Did you guys just finish this up for me 🥹

yes <3

Autoparallel commented 2 weeks ago

LET'S FUCKING MERGE IT THEN