You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/zkEVM/architecture/proving-system/aggregator-proofs.md
+9-11Lines changed: 9 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ This strategy guarantees robust validation of execution outcomes, and provides a
41
41
42
42
### Invalid transactions
43
43
44
-
Let us describe some errors in transactions, that cause the state to remain unchanged, as shown in the figure below.
44
+
Let us describe some errors in transactions that cause the state to remain unchanged, as shown in the figure below.
45
45
46
46
#### Reverted transaction
47
47
@@ -57,7 +57,7 @@ This is a common scenario in EVM processing.
57
57
58
58
#### Invalid intrinsic transaction
59
59
60
-
An invalid intrinsic transaction is a transaction that cannot be processed and has no impact on the current state.
60
+
An invalid intrinsic transaction is a transaction that cannot be processed, and thus has no impact on the current state.
61
61
62
62
Keep in mind that this transaction could be part of a virtual batch. Examples of errors in this scenario are: incorrect nonce, insufficient balance, etc.
63
63
@@ -72,7 +72,7 @@ Some of the errors that occur at the batch level can cause the state to remain u
72
72
As depicted in the figure below, such errors might occur due to invalid data, or exhaustion of prover resources.
73
73
74
74
- Invalid Data: Failure to decode RLP-encoded transactions, that is having garbage input.
75
-
- Prover resource exhaustion: The zkEVM manages resources in terms of row counters in the Stack, also known as _zkCounters_. Processing a batch may fail due running out of zkCounters (OOC).
75
+
- Prover resource exhaustion: The zkEVM prover manages resources in terms of row counters in the Stack, also known as _zkCounters_. Processing a batch may fail due running out of zkCounters (OOC).
76
76
77
77

78
78
@@ -92,11 +92,9 @@ The _forced batches_ mechanism is elaborated on in the [Malfunction resistance s
92
92
93
93
## zkCounters
94
94
95
-
Counters are used, during the execution of a batch, to monitor the row count in each state machine, including the main state machine.
95
+
Counters are used during the execution of a batch to monitor the row count in each state machine, including the main state machine.
96
96
97
-
Management of these counters is incorporated within the computation process.
98
-
99
-
By so doing, if a computation exhausts its assigned resources while generating the proof, then the system is able to prove that the batch does not cause a change in the state.
97
+
The management of these counters is incorporated within the computation process. This way, if a computation exhausts its assigned resources while generating the proof, the system can verify and prove that the batch does not cause a state change.
100
98
101
99
As mentioned earlier, the issue of running out of assigned resources is referred to as an _out of counters_ (OOC) error.
102
100
@@ -110,7 +108,7 @@ So, an OOC error occurs if a transaction invokes five or more Keccak operations.
110
108
111
109
### VADCOPs
112
110
113
-
Although the current version of the proving system has this limitation in the backend (forcing execution traces of all state machines to have the same amount of rows), it is expected to be removed when a proving technique called _variable degree composite proofs_ (VADCOPs) is implemented.
111
+
Although the current version of the proving system has this limitation in the backend (forcing execution traces of all state machines to have the same amount of rows), it is expected to be resolved with the implementation of a proving technique called _variable degree composite proofs_ (VADCOPs).
114
112
115
113
VADCOPs are designed to partition large execution traces with many rows into smaller execution traces with fewer rows.
116
114
@@ -124,7 +122,7 @@ At a high level, the solution involves splitting the proof into two parts, each
124
122
125
123

126
124
127
-
The ongoing development of VADCOPs includes rewriting of both the cryptographic backend and the constraint language called _polynomial identities language_ version 2 (PIL2).
125
+
The ongoing development of VADCOPs includes rewriting of both the cryptographic backend and the constraint language called _Polynomial Identities Language_ version 2 (PIL2).
128
126
129
127
## Discussing the proof
130
128
@@ -218,7 +216,7 @@ In the Polygon zkEVM architecture, the aggregator is the component responsible f
218
216
219
217
Its role is to aggregate several proofs into one, and send the aggregated proof to the L1 Smart Contract through the $\texttt{verifyBatches()}$ function.
220
218
221
-
The aggregator invokes the $\texttt{verifyBatches()}$ function on the smart contract, passing as parameters:
219
+
The aggregator invokes the $\texttt{verifyBatches()}$ function on the smart contract, passing the following parameters:
222
220
223
221
- The initial batch number, $\texttt{initNumBatch}$.
224
222
- The final batch number, $\texttt{finalNewBatch}$.
@@ -293,7 +291,7 @@ The figure below depicts this configuration, where public inputs are in green wh
293
291
294
292

295
293
296
-
Henceforth, for the outer proof, there is a single public input in the aggregator called $\texttt{inputSnark}$, which is a Keccak hash of all the previous public inputs and outputs.
294
+
Hence, for the outer proof, there is a single public input in the aggregator called $\texttt{inputSnark}$, which is a Keccak hash of all the previous public inputs and outputs.
297
295
298
296
Therefore, when `ZkEVM.sol` contract interacts with the `VerifierRollups.sol` contract, only a single public parameter is passed, minimizing data transmission costs.
0 commit comments