This repo contains our implementation of segmented memory as described in the Coral paper.
We provide R1CS circuits, written in arkworks, for several types of memory:
- Our proposed segmented memory based on Nebula with segment-specific optimizations. It can be used with our modified commitmit-carrying IVC version of Nova.
- A version of Hekaton's memory construction, that needs our modified Nova.
- Hash stack memory with the Poseidon hash.
- A version of the nlookup protocol (that is, the nlookup verifier is made noninteractive and expressed as R1CS) that incorporates hybrid tables and projection optimizations as described here.
It also contains code for converting between arkworks and bellperson (the circuit library used in Nova).