@@ -8,28 +8,53 @@ production, not constraint generation. This means that while OpenMina can
88produce proofs using existing circuits, it cannot generate the circuit
99definitions themselves.
1010
11+ For an overview of the proof system implementation in ` ledger/src/proofs/ ` , see
12+ [ ` ledger/src/proofs/summary.md ` ] ( ../../ledger/src/proofs/summary.md ) .
13+
1114## Architecture
1215
13- ### Witness-Only Implementation
16+ ### Proof Generation Implementation and Limitations
17+
18+ The OpenMina codebase includes complete proof generation capabilities with one
19+ key limitation:
1420
15- The OpenMina codebase includes:
21+ ** What OpenMina Can Do: **
1622
1723- ** Witness generation** : Full implementation for producing witnesses needed for
1824 proof generation
19- - ** Proof production** : Capability to create proofs using pre-existing circuit
20- definitions
21- - ** Constraint generation** : NOT implemented - circuits must be generated
22- externally
23-
24- Due to time constraints during development, constraint generation was not ported
25- to OpenMina. As a result, circuits must be generated using the original OCaml
26- implementation.
25+ - ** Proof production** : Complete capability to create proofs using pre-existing
26+ circuit definitions
27+ - ** Circuit logic** : Equivalent to the OCaml implementation for all proof types
28+ - ** Proof verification** : Can verify proofs using precomputed verification
29+ indices
30+
31+ ** What OpenMina Cannot Do:**
32+
33+ - ** Circuit constraints** : Missing the constraint declarations from the OCaml
34+ code that define circuit structure
35+ - ** Constraint compilation/evaluation** : Missing the functionality to
36+ compile/evaluate constraint declarations into circuit constraints
37+ - ** Verification key generation** : Cannot generate verification keys for new
38+ circuits
39+
40+ ** Practical Implications:**
41+
42+ - Can generate proofs and witnesses for existing circuits
43+ - Cannot create new circuits or modify existing circuit definitions
44+ - Relies on OCaml implementation for all circuit creation and constraint
45+ processing
46+ - Uses precomputed verification indices from the OCaml implementation
47+
48+ The circuit logic is equivalent to the OCaml implementation except both the
49+ constraint declarations and the constraint compilation/evaluation functionality
50+ are missing - these were not ported due to time constraints during development,
51+ not technical limitations, and could be added for full independence.
2752
2853### Circuit Generation Process
2954
30- Since OpenMina cannot generate circuits, the raw circuit data must be produced
31- using the OCaml implementation from the original Mina codebase. This process
32- involves :
55+ Since these constraint capabilities are missing, OpenMina requires externally
56+ generated circuit data. The following process describes how circuits are created
57+ and distributed using the original Mina codebase :
3358
34591 . Using a custom branch in the OpenMina fork of Mina:
3560 https://github.com/openmina/mina
0 commit comments