@@ -8,28 +8,53 @@ production, not constraint generation. This means that while OpenMina can
8
8
produce proofs using existing circuits, it cannot generate the circuit
9
9
definitions themselves.
10
10
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
+
11
14
## Architecture
12
15
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:
14
20
15
- The OpenMina codebase includes:
21
+ ** What OpenMina Can Do: **
16
22
17
23
- ** Witness generation** : Full implementation for producing witnesses needed for
18
24
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.
27
52
28
53
### Circuit Generation Process
29
54
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 :
33
58
34
59
1 . Using a custom branch in the OpenMina fork of Mina:
35
60
https://github.com/openmina/mina
0 commit comments