Agenda
- CCS
- Multifolding PoC
- E2E Integration & Upstream effort
- Next steps
Customizable Constraint System (CCS)
- R1CS generalization; translate R1CS statement into CCS statement (NP-complete equivalance)
- only matrix-vector products and Hadamard (entry-wise) vector products
- Capture R1CS, Plonkish and AIR w/o overhead
- Not tightly coupled to proof system
CCS continue
- Promise: Unify R1CS/Plonkish/Air, separate constraint system and back-end
- Nova not limited to R1CS, use Plonkish for different proof systems, etc

(From Thaler's 17 misconceptions about SNARKs)
CCS - definition and R1CS->CCS
CCS - Lookup

CCS - Future?
- We lack a working Plonkish translation.
- Fast enough?
- Big changes for lookups? Dynamic lookups possible?
- Traction/motivation for tooling to switch?
- We need a standard plonk format to transpile from. PLAF?
- Follow up from new papers as ProtoStar for CCS. (Already not in ProtoGalaxy).
Multifolding PoC

Multifolding PoC (part 1)
Multifolding PoC (part 2)
Integration & Upstream effort
- Goal: Integrate & upstream end-to-end with microsoft/Nova
- E.g. ParaNova PoC not upstreamed, harder to get feedback loops with community
- Rationale 1: Nova->HyperNova small diff, less work for E2E PoC with realistic benchmarks
- Rationale 2: Schelling point for Nova work (Nova Scotia, Lurk Labs, ParaNova PoC etc)
Integration cont
- Above was in theory, in practice many challenges
- Work done in pse/Nova main branch, ~4k LOC
- A lot of problems in terms of libraries, polynomial APIs/representations, etc

Current status
- E2E Integration mostly done but missing some WIP things: sumcheck verifier circuit; final folding steps; MinRoot benchmarks
- Upstream PRs
- WIP PR in microsoft/Nova
- Addressing major issues/feedback then updating this
- Splitting up into smaller chunks, some merged
Some problems we faced
- Extremely abstracted trait system in Nova (premature opt).
- Group trait re-impl.
- Some inline impls for poly ops (also fixed to R1CS case only).
- VirtualPoly/MLE EqPoly, endianness & others.
- Providers needed.
Some problems we faced
- Sumcheck embedded into Nova. Hard to extract and generalize.
- Lots of legacy code that would need refactor.
- Bellpearson makes write circuits almost imposible.
Decisions to take for future
- Current path: Finish integration + benchmarks
- Move to arkworks (now or later)
- Change focus to shiny new thing
Current path (cont)
- Lookup integration?
- Put severe work on refactoring Nova to get rid of Providers & others.
- Start exploring a
Nova as a Blackbox
impl too.
- Focus on a parallel client for HyperNova (ParaHyperNova).
- Own some middle libs like
zkcrypto/poly
or zkcrypto/sumcheck
.
Agenda CCS Multifolding PoC E2E Integration & Upstream effort Next steps
{"title":"HyperNova Workshop","description":"Multifolding PoC","contributors":"[{\"id\":\"87bf749a-9a51-43dd-8c18-1ff87c4baaab\",\"add\":5364,\"del\":2106},{\"id\":\"13631d6c-63ba-42ae-99f7-7d45ca96a9fb\",\"add\":2015,\"del\":850},{\"id\":\"b74fc434-4be5-4873-9d70-b6c14fdeebbd\",\"add\":371,\"del\":82},{\"id\":\"52201d83-ba2b-4513-a169-bd0f7797e887\",\"add\":115,\"del\":153}]"}