@aztec/bb-prover 0.45.0 → 0.46.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/prover/bb_native_proof_creator.d.ts +0 -6
- package/dest/prover/bb_native_proof_creator.d.ts.map +1 -1
- package/dest/prover/bb_native_proof_creator.js +5 -23
- package/dest/prover/bb_prover.d.ts.map +1 -1
- package/dest/prover/bb_prover.js +5 -5
- package/dest/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/test/test_circuit_prover.js +20 -33
- package/dest/test/test_verifier.d.ts +0 -2
- package/dest/test/test_verifier.d.ts.map +1 -1
- package/dest/test/test_verifier.js +1 -5
- package/dest/verifier/bb_verifier.d.ts +1 -2
- package/dest/verifier/bb_verifier.d.ts.map +1 -1
- package/dest/verifier/bb_verifier.js +1 -11
- package/package.json +7 -7
- package/src/prover/bb_native_proof_creator.ts +4 -38
- package/src/prover/bb_prover.ts +15 -4
- package/src/test/test_circuit_prover.ts +47 -39
- package/src/test/test_verifier.ts +0 -5
- package/src/verifier/bb_verifier.ts +1 -13
|
@@ -27,12 +27,6 @@ export declare class BBNativeProofCreator implements ProofCreator {
|
|
|
27
27
|
*/
|
|
28
28
|
verifyProofForProtocolCircuit(circuitType: ClientProtocolArtifact, proof: Proof): Promise<void>;
|
|
29
29
|
private verifyProofFromKey;
|
|
30
|
-
/**
|
|
31
|
-
* Returns the verification key data for a circuit, will generate and cache it if not cached internally
|
|
32
|
-
* @param circuitType - The type of circuit for which the verification key is required
|
|
33
|
-
* @returns The verification key data
|
|
34
|
-
*/
|
|
35
|
-
private getVerificationKeyDataForCircuit;
|
|
36
30
|
/**
|
|
37
31
|
* Ensures our verification key cache includes the key data located at the specified directory
|
|
38
32
|
* @param filePath - The directory containing the verification key data files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_native_proof_creator.d.ts","sourceRoot":"","sources":["../../src/prover/bb_native_proof_creator.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EAEL,EAAE,EAEF,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC1C,KAAK,sCAAsC,EAC3C,KAAK,8CAA8C,EACnD,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,EAKN,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAEL,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"bb_native_proof_creator.d.ts","sourceRoot":"","sources":["../../src/prover/bb_native_proof_creator.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EAEL,EAAE,EAEF,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,qCAAqC,EAC1C,KAAK,sCAAsC,EAC3C,KAAK,8CAA8C,EACnD,KAAK,qCAAqC,EAC1C,KAAK,oCAAoC,EACzC,KAAK,EAKN,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAEL,KAAK,sBAAsB,EAa5B,MAAM,qCAAqC,CAAC;AAK7C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IASrD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,GAAG;IAVb,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,gBAAgB,CAGpB;gBAGM,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,yCAA8C;IAGpD,oBAAoB,CAAC,YAAY,EAAE,0BAA0B;IAMvD,eAAe,CAC1B,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;IASlD,gBAAgB,CAC3B,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;IASlD,gBAAgB,CAC3B,MAAM,EAAE,8CAA8C,GACrD,OAAO,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,CAAC;IASlD,eAAe,CAC1B,MAAM,EAAE,qCAAqC,GAC5C,OAAO,CAAC,iBAAiB,CAAC,oCAAoC,CAAC,CAAC;IAiBtD,qBAAqB,CAChC,cAAc,EAAE,UAAU,EAC1B,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,qBAAqB,CAAC;IAkBjC;;;;OAIG;IACU,6BAA6B,CAAC,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK;YAmB9E,kBAAkB;IAgBhC;;;;OAIG;YACW,+BAA+B;YAU/B,eAAe;YAYf,6BAA6B;YA6C7B,WAAW;IA4EzB;;;;;OAKG;YACW,iBAAiB;CAwBhC"}
|
|
@@ -3,12 +3,12 @@ import { siloNoteHash } from '@aztec/circuits.js/hash';
|
|
|
3
3
|
import { runInDirectory } from '@aztec/foundation/fs';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { Timer } from '@aztec/foundation/timer';
|
|
6
|
-
import { ClientCircuitArtifacts, PrivateResetTagToArtifactName, convertPrivateKernelInitInputsToWitnessMap, convertPrivateKernelInitOutputsFromWitnessMap, convertPrivateKernelInnerInputsToWitnessMap, convertPrivateKernelInnerOutputsFromWitnessMap, convertPrivateKernelResetInputsToWitnessMap, convertPrivateKernelResetOutputsFromWitnessMap, convertPrivateKernelTailForPublicOutputsFromWitnessMap, convertPrivateKernelTailInputsToWitnessMap, convertPrivateKernelTailOutputsFromWitnessMap, convertPrivateKernelTailToPublicInputsToWitnessMap, } from '@aztec/noir-protocol-circuits-types';
|
|
6
|
+
import { ClientCircuitArtifacts, PrivateResetTagToArtifactName, ProtocolCircuitVks, convertPrivateKernelInitInputsToWitnessMap, convertPrivateKernelInitOutputsFromWitnessMap, convertPrivateKernelInnerInputsToWitnessMap, convertPrivateKernelInnerOutputsFromWitnessMap, convertPrivateKernelResetInputsToWitnessMap, convertPrivateKernelResetOutputsFromWitnessMap, convertPrivateKernelTailForPublicOutputsFromWitnessMap, convertPrivateKernelTailInputsToWitnessMap, convertPrivateKernelTailOutputsFromWitnessMap, convertPrivateKernelTailToPublicInputsToWitnessMap, } from '@aztec/noir-protocol-circuits-types';
|
|
7
7
|
import { WASMSimulator } from '@aztec/simulator';
|
|
8
8
|
import { serializeWitness } from '@noir-lang/noirc_abi';
|
|
9
9
|
import * as fs from 'fs/promises';
|
|
10
10
|
import { join } from 'path';
|
|
11
|
-
import { BB_RESULT, PROOF_FIELDS_FILENAME, PROOF_FILENAME,
|
|
11
|
+
import { BB_RESULT, PROOF_FIELDS_FILENAME, PROOF_FILENAME, generateProof, verifyProof } from '../bb/execute.js';
|
|
12
12
|
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
13
13
|
import { extractVkData } from '../verification_key/verification_key_data.js';
|
|
14
14
|
/**
|
|
@@ -25,7 +25,7 @@ export class BBNativeProofCreator {
|
|
|
25
25
|
}
|
|
26
26
|
getSiloedCommitments(publicInputs) {
|
|
27
27
|
const contractAddress = publicInputs.callContext.storageContractAddress;
|
|
28
|
-
return Promise.resolve(publicInputs.
|
|
28
|
+
return Promise.resolve(publicInputs.noteHashes.map(commitment => siloNoteHash(contractAddress, commitment.value)));
|
|
29
29
|
}
|
|
30
30
|
async createProofInit(inputs) {
|
|
31
31
|
return await this.createSafeProof(inputs, 'PrivateKernelInitArtifact', convertPrivateKernelInitInputsToWitnessMap, convertPrivateKernelInitOutputsFromWitnessMap);
|
|
@@ -64,7 +64,7 @@ export class BBNativeProofCreator {
|
|
|
64
64
|
* @param proof - The proof to be verified
|
|
65
65
|
*/
|
|
66
66
|
async verifyProofForProtocolCircuit(circuitType, proof) {
|
|
67
|
-
const verificationKey =
|
|
67
|
+
const verificationKey = ProtocolCircuitVks[circuitType];
|
|
68
68
|
this.log.debug(`Verifying with key: ${verificationKey.keyAsFields.hash.toString()}`);
|
|
69
69
|
const logFunction = (message) => {
|
|
70
70
|
this.log.debug(`${circuitType} BB out - ${message}`);
|
|
@@ -86,24 +86,6 @@ export class BBNativeProofCreator {
|
|
|
86
86
|
};
|
|
87
87
|
return await runInDirectory(this.bbWorkingDirectory, operation);
|
|
88
88
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Returns the verification key data for a circuit, will generate and cache it if not cached internally
|
|
91
|
-
* @param circuitType - The type of circuit for which the verification key is required
|
|
92
|
-
* @returns The verification key data
|
|
93
|
-
*/
|
|
94
|
-
async getVerificationKeyDataForCircuit(circuitType) {
|
|
95
|
-
let promise = this.verificationKeys.get(circuitType);
|
|
96
|
-
if (!promise) {
|
|
97
|
-
promise = generateKeyForNoirCircuit(this.bbBinaryPath, this.bbWorkingDirectory, circuitType, ClientCircuitArtifacts[circuitType], 'vk', this.log.debug).then(result => {
|
|
98
|
-
if (result.status === BB_RESULT.FAILURE) {
|
|
99
|
-
throw new Error(`Failed to generate verification key for ${circuitType}, ${result.reason}`);
|
|
100
|
-
}
|
|
101
|
-
return extractVkData(result.vkPath);
|
|
102
|
-
});
|
|
103
|
-
this.verificationKeys.set(circuitType, promise);
|
|
104
|
-
}
|
|
105
|
-
return await promise;
|
|
106
|
-
}
|
|
107
89
|
/**
|
|
108
90
|
* Ensures our verification key cache includes the key data located at the specified directory
|
|
109
91
|
* @param filePath - The directory containing the verification key data files
|
|
@@ -213,4 +195,4 @@ export class BBNativeProofCreator {
|
|
|
213
195
|
return proof;
|
|
214
196
|
}
|
|
215
197
|
}
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfbmF0aXZlX3Byb29mX2NyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyL2JiX25hdGl2ZV9wcm9vZl9jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsRUFBRSxFQUNGLDZCQUE2QixFQVE3QixLQUFLLEVBQ0wsc0JBQXNCLEVBQ3RCLGNBQWMsR0FHZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsNkJBQTZCLEVBQzdCLDBDQUEwQyxFQUMxQyw2Q0FBNkMsRUFDN0MsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QywyQ0FBMkMsRUFDM0MsOENBQThDLEVBQzlDLHNEQUFzRCxFQUN0RCwwQ0FBMEMsRUFDMUMsNkNBQTZDLEVBQzdDLGtEQUFrRCxHQUNuRCxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVCLE9BQU8sRUFDTCxTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCx5QkFBeUIsRUFDekIsYUFBYSxFQUNiLFdBQVcsR0FDWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxvQ0FBb0MsRUFB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
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfbmF0aXZlX3Byb29mX2NyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyL2JiX25hdGl2ZV9wcm9vZl9jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsRUFBRSxFQUNGLDZCQUE2QixFQVE3QixLQUFLLEVBQ0wsc0JBQXNCLEVBQ3RCLGNBQWMsR0FHZixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsNkJBQTZCLEVBQzdCLGtCQUFrQixFQUNsQiwwQ0FBMEMsRUFDMUMsNkNBQTZDLEVBQzdDLDJDQUEyQyxFQUMzQyw4Q0FBOEMsRUFDOUMsMkNBQTJDLEVBQzNDLDhDQUE4QyxFQUM5QyxzREFBc0QsRUFDdEQsMENBQTBDLEVBQzFDLDZDQUE2QyxFQUM3QyxrREFBa0QsR0FDbkQsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1QixPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEgsT0FBTyxFQUFFLG9DQUFvQyxFQUFF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_prover.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAIrB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,6BAA6B,EAC7B,KAAK,2BAA2B,EAEhC,KAAK,EACL,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAGL,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"bb_prover.d.ts","sourceRoot":"","sources":["../../src/prover/bb_prover.ts"],"names":[],"mappings":"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"}
|
package/dest/prover/bb_prover.js
CHANGED
|
@@ -5,7 +5,7 @@ import { AGGREGATION_OBJECT_LENGTH, EmptyNestedCircuitInputs, EmptyNestedData, F
|
|
|
5
5
|
import { runInDirectory } from '@aztec/foundation/fs';
|
|
6
6
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
7
7
|
import { Timer } from '@aztec/foundation/timer';
|
|
8
|
-
import {
|
|
8
|
+
import { ProtocolCircuitVkIndexes, ServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertBaseRollupInputsToWitnessMap, convertBaseRollupOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertPrivateKernelEmptyOutputsFromWitnessMap, convertPublicTailInputsToWitnessMap, convertPublicTailOutputFromWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
|
|
9
9
|
import { NativeACVMSimulator } from '@aztec/simulator';
|
|
10
10
|
import { Attributes, trackSpan } from '@aztec/telemetry-client';
|
|
11
11
|
import { abiEncode } from '@noir-lang/noirc_abi';
|
|
@@ -58,7 +58,7 @@ let BBNativeRollupProver = (() => {
|
|
|
58
58
|
const { circuitOutput, proof } = await this.createRecursiveProof(inputs, 'BaseParityArtifact', RECURSIVE_PROOF_LENGTH, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap);
|
|
59
59
|
const verificationKey = await this.getVerificationKeyDataForCircuit('BaseParityArtifact');
|
|
60
60
|
await this.verifyProof('BaseParityArtifact', proof.binaryProof);
|
|
61
|
-
return new RootParityInput(proof, verificationKey.keyAsFields, circuitOutput);
|
|
61
|
+
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(ProtocolCircuitVkIndexes.BaseParityArtifact), circuitOutput);
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Simulates the root parity circuit from its inputs.
|
|
@@ -69,7 +69,7 @@ let BBNativeRollupProver = (() => {
|
|
|
69
69
|
const { circuitOutput, proof } = await this.createRecursiveProof(inputs, 'RootParityArtifact', NESTED_RECURSIVE_PROOF_LENGTH, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap);
|
|
70
70
|
const verificationKey = await this.getVerificationKeyDataForCircuit('RootParityArtifact');
|
|
71
71
|
await this.verifyProof('RootParityArtifact', proof.binaryProof);
|
|
72
|
-
return new RootParityInput(proof, verificationKey.keyAsFields, circuitOutput);
|
|
72
|
+
return new RootParityInput(proof, verificationKey.keyAsFields, getVKSiblingPath(ProtocolCircuitVkIndexes.RootParityArtifact), circuitOutput);
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Creates an AVM proof and verifies it.
|
|
@@ -156,7 +156,7 @@ let BBNativeRollupProver = (() => {
|
|
|
156
156
|
}
|
|
157
157
|
async getEmptyNestedProof() {
|
|
158
158
|
const inputs = new EmptyNestedCircuitInputs();
|
|
159
|
-
const { proof } = await this.createRecursiveProof(inputs, 'EmptyNestedArtifact', RECURSIVE_PROOF_LENGTH, (nothing) => abiEncode(EmptyNestedArtifact.abi, { _inputs: nothing }), () => new EmptyNestedCircuitInputs());
|
|
159
|
+
const { proof } = await this.createRecursiveProof(inputs, 'EmptyNestedArtifact', RECURSIVE_PROOF_LENGTH, (nothing) => abiEncode(ServerCircuitArtifacts.EmptyNestedArtifact.abi, { _inputs: nothing }), () => new EmptyNestedCircuitInputs());
|
|
160
160
|
const verificationKey = await this.getVerificationKeyDataForCircuit('EmptyNestedArtifact');
|
|
161
161
|
await this.verifyProof('EmptyNestedArtifact', proof.binaryProof);
|
|
162
162
|
return new EmptyNestedData(proof, verificationKey.keyAsFields);
|
|
@@ -466,4 +466,4 @@ let BBNativeRollupProver = (() => {
|
|
|
466
466
|
_a;
|
|
467
467
|
})();
|
|
468
468
|
export { BBNativeRollupProver };
|
|
469
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBTUwsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNMLHlCQUF5QixFQUt6Qix3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLEVBQUUsRUFHRiw2QkFBNkIsRUFFN0Isd0JBQXdCLEVBQ3hCLEtBQUssRUFFTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLGVBQWUsRUFNZiw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEVBRXRCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMsdUNBQXVDLEVBQ3ZDLDJDQUEyQyxFQUMzQyw4Q0FBOEMsRUFDOUMsbUNBQW1DLEVBQ25DLHFDQUFxQyxFQUNyQyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsR0FDdkMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUF3QixTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsT0FBTyxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxL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
|
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci9iYl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBTUwsaUNBQWlDLEdBQ2xDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNMLHlCQUF5QixFQUt6Qix3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLEVBQUUsRUFHRiw2QkFBNkIsRUFFN0Isd0JBQXdCLEVBQ3hCLEtBQUssRUFFTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLGVBQWUsRUFNZiw0QkFBNEIsR0FDN0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBRXRCLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMsdUNBQXVDLEVBQ3ZDLDJDQUEyQyxFQUMzQyw4Q0FBOEMsRUFDOUMsbUNBQW1DLEVBQ25DLHFDQUFxQyxFQUNyQyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsZ0JBQWdCLEdBQ2pCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBd0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELE9BQU8sS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,6BAA6B,EAC7B,KAAK,2BAA2B,EAEhC,KAAK,KAAK,EACV,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"test_circuit_prover.d.ts","sourceRoot":"","sources":["../../src/test/test_circuit_prover.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,EACtB,6BAA6B,EAC7B,KAAK,2BAA2B,EAEhC,KAAK,KAAK,EACV,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAK5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAGL,KAAK,sBAAsB,EAiB5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,KAAK,kBAAkB,EAA6C,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAM1E;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IAMzD,OAAO,CAAC,kBAAkB,CAAC;IAC3B,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAwB;gBAG7C,SAAS,EAAE,eAAe,EAClB,kBAAkB,CAAC,gCAAoB,EACvC,MAAM,yCAAyC;IAKzD,IAAI,MAAM,6CAET;IAEY,0BAA0B,CACrC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IA0BpE;;;;OAIG;IAEU,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,sBAAsB,CAAC,CAAC;IA+BlH;;;;OAIG;IAEU,kBAAkB,CAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,OAAO,6BAA6B,CAAC,CAAC;IA+BjE;;;;OAIG;IAEU,kBAAkB,CAC7B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IA0BxE;;;;OAIG;IAEU,mBAAmB,CAC9B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,6BAA6B,CAAC,6BAA6B,CAAC,CAAC;IA2BxE;;;;OAIG;IAEU,kBAAkB,CAC7B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC;IA4BpD,oBAAoB,CAC/B,aAAa,EAAE,0BAA0B,GACxC,OAAO,CAAC,6BAA6B,CAAC,+BAA+B,CAAC,CAAC;IAgC7D,kBAAkB,CAC7B,aAAa,EAAE,uBAAuB,GACrC,OAAO,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IA0BpE,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQjE,WAAW,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE"}
|
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
2
|
import { makePublicInputsAndRecursiveProof, } from '@aztec/circuit-types';
|
|
3
|
-
import { EmptyNestedData, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputs, RECURSIVE_PROOF_LENGTH, RootParityInput,
|
|
3
|
+
import { EmptyNestedData, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputs, RECURSIVE_PROOF_LENGTH, RootParityInput, VerificationKeyData, makeEmptyProof, makeEmptyRecursiveProof, makeRecursiveProof, } from '@aztec/circuits.js';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { Timer } from '@aztec/foundation/timer';
|
|
6
|
-
import {
|
|
6
|
+
import { ProtocolCircuitVkIndexes, ProtocolCircuitVks, SimulatedServerCircuitArtifacts, convertBaseParityInputsToWitnessMap, convertBaseParityOutputsFromWitnessMap, convertMergeRollupInputsToWitnessMap, convertMergeRollupOutputsFromWitnessMap, convertPrivateKernelEmptyInputsToWitnessMap, convertRootParityInputsToWitnessMap, convertRootParityOutputsFromWitnessMap, convertRootRollupInputsToWitnessMap, convertRootRollupOutputsFromWitnessMap, convertSimulatedBaseRollupInputsToWitnessMap, convertSimulatedBaseRollupOutputsFromWitnessMap, convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap, convertSimulatedPublicTailInputsToWitnessMap, convertSimulatedPublicTailOutputFromWitnessMap, getVKSiblingPath, } from '@aztec/noir-protocol-circuits-types';
|
|
7
7
|
import { WASMSimulator, emitCircuitSimulationStats } from '@aztec/simulator';
|
|
8
8
|
import { trackSpan } from '@aztec/telemetry-client';
|
|
9
9
|
import { ProverInstrumentation } from '../instrumentation.js';
|
|
10
10
|
import { SimulatedPublicKernelArtifactMapping } from '../mappings/mappings.js';
|
|
11
11
|
import { mapPublicKernelToCircuitName } from '../stats.js';
|
|
12
|
-
const VERIFICATION_KEYS = {
|
|
13
|
-
BaseParityArtifact: VerificationKeyAsFields.makeFake(),
|
|
14
|
-
RootParityArtifact: VerificationKeyAsFields.makeFake(),
|
|
15
|
-
PublicKernelAppLogicArtifact: VerificationKeyAsFields.makeFake(),
|
|
16
|
-
PublicKernelSetupArtifact: VerificationKeyAsFields.makeFake(),
|
|
17
|
-
PublicKernelTailArtifact: VerificationKeyAsFields.makeFake(),
|
|
18
|
-
PublicKernelTeardownArtifact: VerificationKeyAsFields.makeFake(),
|
|
19
|
-
BaseRollupArtifact: VerificationKeyAsFields.makeFake(),
|
|
20
|
-
MergeRollupArtifact: VerificationKeyAsFields.makeFake(),
|
|
21
|
-
RootRollupArtifact: VerificationKeyAsFields.makeFake(),
|
|
22
|
-
PrivateKernelEmptyArtifact: VerificationKeyAsFields.makeFake(),
|
|
23
|
-
EmptyNestedArtifact: VerificationKeyAsFields.makeFake(),
|
|
24
|
-
};
|
|
25
12
|
/**
|
|
26
13
|
* A class for use in testing situations (e2e, unit test etc)
|
|
27
14
|
* Simulates circuits using the most efficient method and performs no proving
|
|
@@ -47,12 +34,12 @@ let TestCircuitProver = (() => {
|
|
|
47
34
|
return this.instrumentation.tracer;
|
|
48
35
|
}
|
|
49
36
|
async getEmptyPrivateKernelProof(inputs) {
|
|
50
|
-
const emptyNested = new EmptyNestedData(makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
51
|
-
const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version);
|
|
37
|
+
const emptyNested = new EmptyNestedData(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['EmptyNestedArtifact'].keyAsFields);
|
|
38
|
+
const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version, inputs.vkTreeRoot);
|
|
52
39
|
const witnessMap = convertPrivateKernelEmptyInputsToWitnessMap(kernelInputs);
|
|
53
|
-
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, PrivateKernelEmptyArtifact);
|
|
54
|
-
const result =
|
|
55
|
-
return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
40
|
+
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.PrivateKernelEmptyArtifact);
|
|
41
|
+
const result = convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap(witness);
|
|
42
|
+
return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['PrivateKernelEmptyArtifact']);
|
|
56
43
|
}
|
|
57
44
|
/**
|
|
58
45
|
* Simulates the base parity circuit from its inputs.
|
|
@@ -63,9 +50,9 @@ let TestCircuitProver = (() => {
|
|
|
63
50
|
const timer = new Timer();
|
|
64
51
|
const witnessMap = convertBaseParityInputsToWitnessMap(inputs);
|
|
65
52
|
// use WASM here as it is faster for small circuits
|
|
66
|
-
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, BaseParityArtifact);
|
|
53
|
+
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.BaseParityArtifact);
|
|
67
54
|
const result = convertBaseParityOutputsFromWitnessMap(witness);
|
|
68
|
-
const rootParityInput = new RootParityInput(makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
55
|
+
const rootParityInput = new RootParityInput(makeRecursiveProof(RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['BaseParityArtifact'].keyAsFields, getVKSiblingPath(ProtocolCircuitVkIndexes['BaseParityArtifact']), result);
|
|
69
56
|
this.instrumentation.recordDuration('simulationDuration', 'base-parity', timer);
|
|
70
57
|
emitCircuitSimulationStats('base-parity', timer.ms(), inputs.toBuffer().length, result.toBuffer().length, this.logger);
|
|
71
58
|
return Promise.resolve(rootParityInput);
|
|
@@ -79,9 +66,9 @@ let TestCircuitProver = (() => {
|
|
|
79
66
|
const timer = new Timer();
|
|
80
67
|
const witnessMap = convertRootParityInputsToWitnessMap(inputs);
|
|
81
68
|
// use WASM here as it is faster for small circuits
|
|
82
|
-
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, RootParityArtifact);
|
|
69
|
+
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.RootParityArtifact);
|
|
83
70
|
const result = convertRootParityOutputsFromWitnessMap(witness);
|
|
84
|
-
const rootParityInput = new RootParityInput(makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
71
|
+
const rootParityInput = new RootParityInput(makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['RootParityArtifact'].keyAsFields, getVKSiblingPath(ProtocolCircuitVkIndexes['RootParityArtifact']), result);
|
|
85
72
|
this.instrumentation.recordDuration('simulationDuration', 'root-parity', timer);
|
|
86
73
|
emitCircuitSimulationStats('root-parity', timer.ms(), inputs.toBuffer().length, result.toBuffer().length, this.logger);
|
|
87
74
|
return Promise.resolve(rootParityInput);
|
|
@@ -95,11 +82,11 @@ let TestCircuitProver = (() => {
|
|
|
95
82
|
const timer = new Timer();
|
|
96
83
|
const witnessMap = convertSimulatedBaseRollupInputsToWitnessMap(input);
|
|
97
84
|
const simulationProvider = this.simulationProvider ?? this.wasmSimulator;
|
|
98
|
-
const witness = await simulationProvider.simulateCircuit(witnessMap,
|
|
85
|
+
const witness = await simulationProvider.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.BaseRollupArtifact);
|
|
99
86
|
const result = convertSimulatedBaseRollupOutputsFromWitnessMap(witness);
|
|
100
87
|
this.instrumentation.recordDuration('simulationDuration', 'base-rollup', timer);
|
|
101
88
|
emitCircuitSimulationStats('base-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
|
|
102
|
-
return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
89
|
+
return makePublicInputsAndRecursiveProof(result, makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['BaseRollupArtifact']);
|
|
103
90
|
}
|
|
104
91
|
/**
|
|
105
92
|
* Simulates the merge rollup circuit from its inputs.
|
|
@@ -110,11 +97,11 @@ let TestCircuitProver = (() => {
|
|
|
110
97
|
const timer = new Timer();
|
|
111
98
|
const witnessMap = convertMergeRollupInputsToWitnessMap(input);
|
|
112
99
|
// use WASM here as it is faster for small circuits
|
|
113
|
-
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, MergeRollupArtifact);
|
|
100
|
+
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.MergeRollupArtifact);
|
|
114
101
|
const result = convertMergeRollupOutputsFromWitnessMap(witness);
|
|
115
102
|
this.instrumentation.recordDuration('simulationDuration', 'merge-rollup', timer);
|
|
116
103
|
emitCircuitSimulationStats('merge-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
|
|
117
|
-
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
104
|
+
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['MergeRollupArtifact']);
|
|
118
105
|
}
|
|
119
106
|
/**
|
|
120
107
|
* Simulates the root rollup circuit from its inputs.
|
|
@@ -125,11 +112,11 @@ let TestCircuitProver = (() => {
|
|
|
125
112
|
const timer = new Timer();
|
|
126
113
|
const witnessMap = convertRootRollupInputsToWitnessMap(input);
|
|
127
114
|
// use WASM here as it is faster for small circuits
|
|
128
|
-
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, RootRollupArtifact);
|
|
115
|
+
const witness = await this.wasmSimulator.simulateCircuit(witnessMap, SimulatedServerCircuitArtifacts.RootRollupArtifact);
|
|
129
116
|
const result = convertRootRollupOutputsFromWitnessMap(witness);
|
|
130
117
|
this.instrumentation.recordDuration('simulationDuration', 'root-rollup', timer);
|
|
131
118
|
emitCircuitSimulationStats('root-rollup', timer.ms(), input.toBuffer().length, result.toBuffer().length, this.logger);
|
|
132
|
-
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
119
|
+
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['RootRollupArtifact']);
|
|
133
120
|
}
|
|
134
121
|
async getPublicKernelProof(kernelRequest) {
|
|
135
122
|
const timer = new Timer();
|
|
@@ -143,7 +130,7 @@ let TestCircuitProver = (() => {
|
|
|
143
130
|
const circuitName = mapPublicKernelToCircuitName(kernelRequest.type);
|
|
144
131
|
this.instrumentation.recordDuration('simulationDuration', circuitName, timer);
|
|
145
132
|
emitCircuitSimulationStats(circuitName, timer.ms(), kernelRequest.inputs.toBuffer().length, result.toBuffer().length, this.logger);
|
|
146
|
-
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
133
|
+
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks[kernelOps.artifact]);
|
|
147
134
|
}
|
|
148
135
|
async getPublicTailProof(kernelRequest) {
|
|
149
136
|
const timer = new Timer();
|
|
@@ -153,7 +140,7 @@ let TestCircuitProver = (() => {
|
|
|
153
140
|
const result = convertSimulatedPublicTailOutputFromWitnessMap(witness);
|
|
154
141
|
this.instrumentation.recordDuration('simulationDuration', 'public-kernel-tail', timer);
|
|
155
142
|
emitCircuitSimulationStats('public-kernel-tail', timer.ms(), kernelRequest.inputs.toBuffer().length, result.toBuffer().length, this.logger);
|
|
156
|
-
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
143
|
+
return makePublicInputsAndRecursiveProof(result, makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH), ProtocolCircuitVks['PublicKernelTailArtifact']);
|
|
157
144
|
}
|
|
158
145
|
getAvmProof(_inputs) {
|
|
159
146
|
// We can't simulate the AVM because we don't have enough context to do so (e.g., DBs).
|
|
@@ -187,4 +174,4 @@ let TestCircuitProver = (() => {
|
|
|
187
174
|
_a;
|
|
188
175
|
})();
|
|
189
176
|
export { TestCircuitProver };
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFNTCxpQ0FBaUMsR0FDbEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBS0wsZUFBZSxFQUdmLDZCQUE2QixFQUU3Qix3QkFBd0IsRUFHeEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFJZix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsa0JBQWtCLEdBQ25CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBRWxCLDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxvQ0FBb0MsRUFDcEMsdUNBQXVDLEVBQ3ZDLDJDQUEyQyxFQUMzQyw4Q0FBOEMsRUFDOUMsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLDRDQUE0QyxFQUM1QywrQ0FBK0MsRUFDL0MsNENBQTRDLEVBQzVDLDhDQUE4QyxHQUMvQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBMkIsYUFBYSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEcsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0NBQW9DLEVB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
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9jaXJjdWl0X3Byb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfY2lyY3VpdF9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFNTCxpQ0FBaUMsR0FDbEMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBS0wsZUFBZSxFQUdmLDZCQUE2QixFQUU3Qix3QkFBd0IsRUFHeEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFJZixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixrQkFBa0IsR0FDbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixrQkFBa0IsRUFFbEIsK0JBQStCLEVBQy9CLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsb0NBQW9DLEVBQ3BDLHVDQUF1QyxFQUN2QywyQ0FBMkMsRUFDM0MsbUNBQW1DLEVBQ25DLHNDQUFzQyxFQUN0QyxtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLDRDQUE0QyxFQUM1QywrQ0FBK0MsRUFDL0MsdURBQXVELEVBQ3ZELDRDQUE0QyxFQUM1Qyw4Q0FBOEMsRUFDOUMsZ0JBQWdCLEdBQ2pCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUEyQixhQUFhLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RyxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFN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
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { type ClientProtocolCircuitVerifier, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type VerificationKeys } from '@aztec/circuits.js';
|
|
3
2
|
export declare class TestCircuitVerifier implements ClientProtocolCircuitVerifier {
|
|
4
3
|
verifyProof(_tx: Tx): Promise<boolean>;
|
|
5
|
-
getVerificationKeys(): Promise<VerificationKeys>;
|
|
6
4
|
}
|
|
7
5
|
//# sourceMappingURL=test_verifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_verifier.d.ts","sourceRoot":"","sources":["../../src/test/test_verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,6BAA6B,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"test_verifier.d.ts","sourceRoot":"","sources":["../../src/test/test_verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,6BAA6B,EAAE,KAAK,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAEnF,qBAAa,mBAAoB,YAAW,6BAA6B;IACvE,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAGvC"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { getMockVerificationKeys } from '@aztec/circuits.js';
|
|
2
1
|
export class TestCircuitVerifier {
|
|
3
2
|
verifyProof(_tx) {
|
|
4
3
|
return Promise.resolve(true);
|
|
5
4
|
}
|
|
6
|
-
getVerificationKeys() {
|
|
7
|
-
return Promise.resolve(getMockVerificationKeys());
|
|
8
|
-
}
|
|
9
5
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF92ZXJpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3Rlc3RfdmVyaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixXQUFXLENBQUMsR0FBTztRQUNqQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ClientProtocolCircuitVerifier, Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type Proof, type VerificationKeyData
|
|
2
|
+
import { type Proof, type VerificationKeyData } from '@aztec/circuits.js';
|
|
3
3
|
import { type ProtocolArtifact } from '@aztec/noir-protocol-circuits-types';
|
|
4
4
|
import { type BBConfig } from '../config.js';
|
|
5
5
|
export declare class BBCircuitVerifier implements ClientProtocolCircuitVerifier {
|
|
@@ -13,6 +13,5 @@ export declare class BBCircuitVerifier implements ClientProtocolCircuitVerifier
|
|
|
13
13
|
verifyProofForCircuit(circuit: ProtocolArtifact, proof: Proof): Promise<void>;
|
|
14
14
|
generateSolidityContract(circuit: ProtocolArtifact, contractName: string): Promise<string>;
|
|
15
15
|
verifyProof(tx: Tx): Promise<boolean>;
|
|
16
|
-
getVerificationKeys(): Promise<VerificationKeys>;
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=bb_verifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,6BAA6B,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"bb_verifier.d.ts","sourceRoot":"","sources":["../../src/verifier/bb_verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,6BAA6B,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG1E,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,qCAAqC,CAAC;AAa7C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,qBAAa,iBAAkB,YAAW,6BAA6B;IAEnE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IAHhB,OAAO;WAMa,GAAG,CACrB,MAAM,EAAE,QAAQ,EAChB,eAAe,GAAE,gBAAgB,EAAO,EACxC,MAAM,yCAAyC;mBAe5B,uBAAuB;IAsB/B,sBAAsB,CAAC,OAAO,EAAE,gBAAgB;IAehD,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK;IA2B7D,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM;IAiB/E,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAc5C"}
|
|
@@ -78,15 +78,5 @@ export class BBCircuitVerifier {
|
|
|
78
78
|
return false;
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
async getVerificationKeys() {
|
|
82
|
-
const [privateKernelCircuit, privateKernelToPublicCircuit] = await Promise.all([
|
|
83
|
-
this.getVerificationKeyData('PrivateKernelTailArtifact'),
|
|
84
|
-
this.getVerificationKeyData('PrivateKernelTailToPublicArtifact'),
|
|
85
|
-
]);
|
|
86
|
-
return {
|
|
87
|
-
privateKernelCircuit,
|
|
88
|
-
privateKernelToPublicCircuit,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
81
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJfdmVyaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmVyaWZpZXIvYmJfdmVyaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQyxFQUFFLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFnQyxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hGLE9BQU8sRUFHTCx3QkFBd0IsR0FDekIsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQ0wsU0FBUyxFQUNULGNBQWMsRUFDZCxXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixXQUFXLEdBQ1osTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFN0UsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNVLE1BQWdCLEVBQ2hCLG1CQUFtQixJQUFJLEdBQUcsRUFBa0QsRUFDNUUsTUFBbUI7UUFGbkIsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTREO1FBQzVFLFdBQU0sR0FBTixNQUFNLENBQWE7SUFDMUIsQ0FBQztJQUVHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNyQixNQUFnQixFQUNoQixrQkFBc0MsRUFBRSxFQUN4QyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUM7UUFFL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQWtELENBQUM7UUFDdkUsS0FBSyxNQUFNLE9BQU8sSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUN0QyxNQUFNLE1BQU0sR0FBRyxNQUFN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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/bb-prover",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js"
|
|
@@ -59,12 +59,12 @@
|
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@aztec/circuit-types": "0.
|
|
63
|
-
"@aztec/circuits.js": "0.
|
|
64
|
-
"@aztec/foundation": "0.
|
|
65
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
66
|
-
"@aztec/simulator": "0.
|
|
67
|
-
"@aztec/telemetry-client": "0.
|
|
62
|
+
"@aztec/circuit-types": "0.46.1",
|
|
63
|
+
"@aztec/circuits.js": "0.46.1",
|
|
64
|
+
"@aztec/foundation": "0.46.1",
|
|
65
|
+
"@aztec/noir-protocol-circuits-types": "0.46.1",
|
|
66
|
+
"@aztec/simulator": "0.46.1",
|
|
67
|
+
"@aztec/telemetry-client": "0.46.1",
|
|
68
68
|
"@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
|
|
69
69
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
70
70
|
"commander": "^9.0.0",
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
ClientCircuitArtifacts,
|
|
26
26
|
type ClientProtocolArtifact,
|
|
27
27
|
PrivateResetTagToArtifactName,
|
|
28
|
+
ProtocolCircuitVks,
|
|
28
29
|
convertPrivateKernelInitInputsToWitnessMap,
|
|
29
30
|
convertPrivateKernelInitOutputsFromWitnessMap,
|
|
30
31
|
convertPrivateKernelInnerInputsToWitnessMap,
|
|
@@ -44,14 +45,7 @@ import { type WitnessMap } from '@noir-lang/types';
|
|
|
44
45
|
import * as fs from 'fs/promises';
|
|
45
46
|
import { join } from 'path';
|
|
46
47
|
|
|
47
|
-
import {
|
|
48
|
-
BB_RESULT,
|
|
49
|
-
PROOF_FIELDS_FILENAME,
|
|
50
|
-
PROOF_FILENAME,
|
|
51
|
-
generateKeyForNoirCircuit,
|
|
52
|
-
generateProof,
|
|
53
|
-
verifyProof,
|
|
54
|
-
} from '../bb/execute.js';
|
|
48
|
+
import { BB_RESULT, PROOF_FIELDS_FILENAME, PROOF_FILENAME, generateProof, verifyProof } from '../bb/execute.js';
|
|
55
49
|
import { mapProtocolArtifactNameToCircuitName } from '../stats.js';
|
|
56
50
|
import { extractVkData } from '../verification_key/verification_key_data.js';
|
|
57
51
|
|
|
@@ -76,9 +70,7 @@ export class BBNativeProofCreator implements ProofCreator {
|
|
|
76
70
|
public getSiloedCommitments(publicInputs: PrivateCircuitPublicInputs) {
|
|
77
71
|
const contractAddress = publicInputs.callContext.storageContractAddress;
|
|
78
72
|
|
|
79
|
-
return Promise.resolve(
|
|
80
|
-
publicInputs.newNoteHashes.map(commitment => siloNoteHash(contractAddress, commitment.value)),
|
|
81
|
-
);
|
|
73
|
+
return Promise.resolve(publicInputs.noteHashes.map(commitment => siloNoteHash(contractAddress, commitment.value)));
|
|
82
74
|
}
|
|
83
75
|
|
|
84
76
|
public async createProofInit(
|
|
@@ -161,7 +153,7 @@ export class BBNativeProofCreator implements ProofCreator {
|
|
|
161
153
|
* @param proof - The proof to be verified
|
|
162
154
|
*/
|
|
163
155
|
public async verifyProofForProtocolCircuit(circuitType: ClientProtocolArtifact, proof: Proof) {
|
|
164
|
-
const verificationKey =
|
|
156
|
+
const verificationKey = ProtocolCircuitVks[circuitType];
|
|
165
157
|
|
|
166
158
|
this.log.debug(`Verifying with key: ${verificationKey.keyAsFields.hash.toString()}`);
|
|
167
159
|
|
|
@@ -195,32 +187,6 @@ export class BBNativeProofCreator implements ProofCreator {
|
|
|
195
187
|
return await runInDirectory(this.bbWorkingDirectory, operation);
|
|
196
188
|
}
|
|
197
189
|
|
|
198
|
-
/**
|
|
199
|
-
* Returns the verification key data for a circuit, will generate and cache it if not cached internally
|
|
200
|
-
* @param circuitType - The type of circuit for which the verification key is required
|
|
201
|
-
* @returns The verification key data
|
|
202
|
-
*/
|
|
203
|
-
private async getVerificationKeyDataForCircuit(circuitType: ClientProtocolArtifact): Promise<VerificationKeyData> {
|
|
204
|
-
let promise = this.verificationKeys.get(circuitType);
|
|
205
|
-
if (!promise) {
|
|
206
|
-
promise = generateKeyForNoirCircuit(
|
|
207
|
-
this.bbBinaryPath,
|
|
208
|
-
this.bbWorkingDirectory,
|
|
209
|
-
circuitType,
|
|
210
|
-
ClientCircuitArtifacts[circuitType],
|
|
211
|
-
'vk',
|
|
212
|
-
this.log.debug,
|
|
213
|
-
).then(result => {
|
|
214
|
-
if (result.status === BB_RESULT.FAILURE) {
|
|
215
|
-
throw new Error(`Failed to generate verification key for ${circuitType}, ${result.reason}`);
|
|
216
|
-
}
|
|
217
|
-
return extractVkData(result.vkPath!);
|
|
218
|
-
});
|
|
219
|
-
this.verificationKeys.set(circuitType, promise);
|
|
220
|
-
}
|
|
221
|
-
return await promise;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
190
|
/**
|
|
225
191
|
* Ensures our verification key cache includes the key data located at the specified directory
|
|
226
192
|
* @param filePath - The directory containing the verification key data files
|
package/src/prover/bb_prover.ts
CHANGED
|
@@ -38,7 +38,7 @@ import { runInDirectory } from '@aztec/foundation/fs';
|
|
|
38
38
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
39
39
|
import { Timer } from '@aztec/foundation/timer';
|
|
40
40
|
import {
|
|
41
|
-
|
|
41
|
+
ProtocolCircuitVkIndexes,
|
|
42
42
|
ServerCircuitArtifacts,
|
|
43
43
|
type ServerProtocolArtifact,
|
|
44
44
|
convertBaseParityInputsToWitnessMap,
|
|
@@ -55,6 +55,7 @@ import {
|
|
|
55
55
|
convertRootParityOutputsFromWitnessMap,
|
|
56
56
|
convertRootRollupInputsToWitnessMap,
|
|
57
57
|
convertRootRollupOutputsFromWitnessMap,
|
|
58
|
+
getVKSiblingPath,
|
|
58
59
|
} from '@aztec/noir-protocol-circuits-types';
|
|
59
60
|
import { NativeACVMSimulator } from '@aztec/simulator';
|
|
60
61
|
import { Attributes, type TelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
@@ -145,7 +146,12 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
145
146
|
|
|
146
147
|
await this.verifyProof('BaseParityArtifact', proof.binaryProof);
|
|
147
148
|
|
|
148
|
-
return new RootParityInput(
|
|
149
|
+
return new RootParityInput(
|
|
150
|
+
proof,
|
|
151
|
+
verificationKey.keyAsFields,
|
|
152
|
+
getVKSiblingPath(ProtocolCircuitVkIndexes.BaseParityArtifact),
|
|
153
|
+
circuitOutput,
|
|
154
|
+
);
|
|
149
155
|
}
|
|
150
156
|
|
|
151
157
|
/**
|
|
@@ -169,7 +175,12 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
169
175
|
|
|
170
176
|
await this.verifyProof('RootParityArtifact', proof.binaryProof);
|
|
171
177
|
|
|
172
|
-
return new RootParityInput(
|
|
178
|
+
return new RootParityInput(
|
|
179
|
+
proof,
|
|
180
|
+
verificationKey.keyAsFields,
|
|
181
|
+
getVKSiblingPath(ProtocolCircuitVkIndexes.RootParityArtifact),
|
|
182
|
+
circuitOutput,
|
|
183
|
+
);
|
|
173
184
|
}
|
|
174
185
|
|
|
175
186
|
/**
|
|
@@ -351,7 +362,7 @@ export class BBNativeRollupProver implements ServerCircuitProver {
|
|
|
351
362
|
inputs,
|
|
352
363
|
'EmptyNestedArtifact',
|
|
353
364
|
RECURSIVE_PROOF_LENGTH,
|
|
354
|
-
(nothing: any) => abiEncode(EmptyNestedArtifact.abi as Abi, { _inputs: nothing as any }),
|
|
365
|
+
(nothing: any) => abiEncode(ServerCircuitArtifacts.EmptyNestedArtifact.abi as Abi, { _inputs: nothing as any }),
|
|
355
366
|
() => new EmptyNestedCircuitInputs(),
|
|
356
367
|
);
|
|
357
368
|
|
|
@@ -24,7 +24,6 @@ import {
|
|
|
24
24
|
type RootParityInputs,
|
|
25
25
|
type RootRollupInputs,
|
|
26
26
|
type RootRollupPublicInputs,
|
|
27
|
-
VerificationKeyAsFields,
|
|
28
27
|
VerificationKeyData,
|
|
29
28
|
makeEmptyProof,
|
|
30
29
|
makeEmptyRecursiveProof,
|
|
@@ -33,28 +32,25 @@ import {
|
|
|
33
32
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
34
33
|
import { Timer } from '@aztec/foundation/timer';
|
|
35
34
|
import {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
PrivateKernelEmptyArtifact,
|
|
39
|
-
RootParityArtifact,
|
|
40
|
-
RootRollupArtifact,
|
|
35
|
+
ProtocolCircuitVkIndexes,
|
|
36
|
+
ProtocolCircuitVks,
|
|
41
37
|
type ServerProtocolArtifact,
|
|
42
|
-
SimulatedBaseRollupArtifact,
|
|
43
38
|
SimulatedServerCircuitArtifacts,
|
|
44
39
|
convertBaseParityInputsToWitnessMap,
|
|
45
40
|
convertBaseParityOutputsFromWitnessMap,
|
|
46
41
|
convertMergeRollupInputsToWitnessMap,
|
|
47
42
|
convertMergeRollupOutputsFromWitnessMap,
|
|
48
43
|
convertPrivateKernelEmptyInputsToWitnessMap,
|
|
49
|
-
convertPrivateKernelEmptyOutputsFromWitnessMap,
|
|
50
44
|
convertRootParityInputsToWitnessMap,
|
|
51
45
|
convertRootParityOutputsFromWitnessMap,
|
|
52
46
|
convertRootRollupInputsToWitnessMap,
|
|
53
47
|
convertRootRollupOutputsFromWitnessMap,
|
|
54
48
|
convertSimulatedBaseRollupInputsToWitnessMap,
|
|
55
49
|
convertSimulatedBaseRollupOutputsFromWitnessMap,
|
|
50
|
+
convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap,
|
|
56
51
|
convertSimulatedPublicTailInputsToWitnessMap,
|
|
57
52
|
convertSimulatedPublicTailOutputFromWitnessMap,
|
|
53
|
+
getVKSiblingPath,
|
|
58
54
|
} from '@aztec/noir-protocol-circuits-types';
|
|
59
55
|
import { type SimulationProvider, WASMSimulator, emitCircuitSimulationStats } from '@aztec/simulator';
|
|
60
56
|
import { type TelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
@@ -63,20 +59,6 @@ import { ProverInstrumentation } from '../instrumentation.js';
|
|
|
63
59
|
import { SimulatedPublicKernelArtifactMapping } from '../mappings/mappings.js';
|
|
64
60
|
import { mapPublicKernelToCircuitName } from '../stats.js';
|
|
65
61
|
|
|
66
|
-
const VERIFICATION_KEYS: Record<ServerProtocolArtifact, VerificationKeyAsFields> = {
|
|
67
|
-
BaseParityArtifact: VerificationKeyAsFields.makeFake(),
|
|
68
|
-
RootParityArtifact: VerificationKeyAsFields.makeFake(),
|
|
69
|
-
PublicKernelAppLogicArtifact: VerificationKeyAsFields.makeFake(),
|
|
70
|
-
PublicKernelSetupArtifact: VerificationKeyAsFields.makeFake(),
|
|
71
|
-
PublicKernelTailArtifact: VerificationKeyAsFields.makeFake(),
|
|
72
|
-
PublicKernelTeardownArtifact: VerificationKeyAsFields.makeFake(),
|
|
73
|
-
BaseRollupArtifact: VerificationKeyAsFields.makeFake(),
|
|
74
|
-
MergeRollupArtifact: VerificationKeyAsFields.makeFake(),
|
|
75
|
-
RootRollupArtifact: VerificationKeyAsFields.makeFake(),
|
|
76
|
-
PrivateKernelEmptyArtifact: VerificationKeyAsFields.makeFake(),
|
|
77
|
-
EmptyNestedArtifact: VerificationKeyAsFields.makeFake(),
|
|
78
|
-
};
|
|
79
|
-
|
|
80
62
|
/**
|
|
81
63
|
* A class for use in testing situations (e2e, unit test etc)
|
|
82
64
|
* Simulates circuits using the most efficient method and performs no proving
|
|
@@ -102,17 +84,26 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
102
84
|
): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>> {
|
|
103
85
|
const emptyNested = new EmptyNestedData(
|
|
104
86
|
makeRecursiveProof(RECURSIVE_PROOF_LENGTH),
|
|
105
|
-
|
|
87
|
+
ProtocolCircuitVks['EmptyNestedArtifact'].keyAsFields,
|
|
88
|
+
);
|
|
89
|
+
const kernelInputs = new PrivateKernelEmptyInputs(
|
|
90
|
+
emptyNested,
|
|
91
|
+
inputs.header,
|
|
92
|
+
inputs.chainId,
|
|
93
|
+
inputs.version,
|
|
94
|
+
inputs.vkTreeRoot,
|
|
106
95
|
);
|
|
107
|
-
const kernelInputs = new PrivateKernelEmptyInputs(emptyNested, inputs.header, inputs.chainId, inputs.version);
|
|
108
96
|
const witnessMap = convertPrivateKernelEmptyInputsToWitnessMap(kernelInputs);
|
|
109
|
-
const witness = await this.wasmSimulator.simulateCircuit(
|
|
110
|
-
|
|
97
|
+
const witness = await this.wasmSimulator.simulateCircuit(
|
|
98
|
+
witnessMap,
|
|
99
|
+
SimulatedServerCircuitArtifacts.PrivateKernelEmptyArtifact,
|
|
100
|
+
);
|
|
101
|
+
const result = convertSimulatedPrivateKernelEmptyOutputsFromWitnessMap(witness);
|
|
111
102
|
|
|
112
103
|
return makePublicInputsAndRecursiveProof(
|
|
113
104
|
result,
|
|
114
105
|
makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
115
|
-
|
|
106
|
+
ProtocolCircuitVks['PrivateKernelEmptyArtifact'],
|
|
116
107
|
);
|
|
117
108
|
}
|
|
118
109
|
|
|
@@ -127,12 +118,16 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
127
118
|
const witnessMap = convertBaseParityInputsToWitnessMap(inputs);
|
|
128
119
|
|
|
129
120
|
// use WASM here as it is faster for small circuits
|
|
130
|
-
const witness = await this.wasmSimulator.simulateCircuit(
|
|
121
|
+
const witness = await this.wasmSimulator.simulateCircuit(
|
|
122
|
+
witnessMap,
|
|
123
|
+
SimulatedServerCircuitArtifacts.BaseParityArtifact,
|
|
124
|
+
);
|
|
131
125
|
const result = convertBaseParityOutputsFromWitnessMap(witness);
|
|
132
126
|
|
|
133
127
|
const rootParityInput = new RootParityInput<typeof RECURSIVE_PROOF_LENGTH>(
|
|
134
128
|
makeRecursiveProof<typeof RECURSIVE_PROOF_LENGTH>(RECURSIVE_PROOF_LENGTH),
|
|
135
|
-
|
|
129
|
+
ProtocolCircuitVks['BaseParityArtifact'].keyAsFields,
|
|
130
|
+
getVKSiblingPath(ProtocolCircuitVkIndexes['BaseParityArtifact']),
|
|
136
131
|
result,
|
|
137
132
|
);
|
|
138
133
|
|
|
@@ -162,13 +157,17 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
162
157
|
const witnessMap = convertRootParityInputsToWitnessMap(inputs);
|
|
163
158
|
|
|
164
159
|
// use WASM here as it is faster for small circuits
|
|
165
|
-
const witness = await this.wasmSimulator.simulateCircuit(
|
|
160
|
+
const witness = await this.wasmSimulator.simulateCircuit(
|
|
161
|
+
witnessMap,
|
|
162
|
+
SimulatedServerCircuitArtifacts.RootParityArtifact,
|
|
163
|
+
);
|
|
166
164
|
|
|
167
165
|
const result = convertRootParityOutputsFromWitnessMap(witness);
|
|
168
166
|
|
|
169
167
|
const rootParityInput = new RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH>(
|
|
170
168
|
makeRecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
171
|
-
|
|
169
|
+
ProtocolCircuitVks['RootParityArtifact'].keyAsFields,
|
|
170
|
+
getVKSiblingPath(ProtocolCircuitVkIndexes['RootParityArtifact']),
|
|
172
171
|
result,
|
|
173
172
|
);
|
|
174
173
|
|
|
@@ -197,7 +196,10 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
197
196
|
const witnessMap = convertSimulatedBaseRollupInputsToWitnessMap(input);
|
|
198
197
|
|
|
199
198
|
const simulationProvider = this.simulationProvider ?? this.wasmSimulator;
|
|
200
|
-
const witness = await simulationProvider.simulateCircuit(
|
|
199
|
+
const witness = await simulationProvider.simulateCircuit(
|
|
200
|
+
witnessMap,
|
|
201
|
+
SimulatedServerCircuitArtifacts.BaseRollupArtifact,
|
|
202
|
+
);
|
|
201
203
|
|
|
202
204
|
const result = convertSimulatedBaseRollupOutputsFromWitnessMap(witness);
|
|
203
205
|
|
|
@@ -212,7 +214,7 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
212
214
|
return makePublicInputsAndRecursiveProof(
|
|
213
215
|
result,
|
|
214
216
|
makeRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
215
|
-
|
|
217
|
+
ProtocolCircuitVks['BaseRollupArtifact'],
|
|
216
218
|
);
|
|
217
219
|
}
|
|
218
220
|
/**
|
|
@@ -228,7 +230,10 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
228
230
|
const witnessMap = convertMergeRollupInputsToWitnessMap(input);
|
|
229
231
|
|
|
230
232
|
// use WASM here as it is faster for small circuits
|
|
231
|
-
const witness = await this.wasmSimulator.simulateCircuit(
|
|
233
|
+
const witness = await this.wasmSimulator.simulateCircuit(
|
|
234
|
+
witnessMap,
|
|
235
|
+
SimulatedServerCircuitArtifacts.MergeRollupArtifact,
|
|
236
|
+
);
|
|
232
237
|
|
|
233
238
|
const result = convertMergeRollupOutputsFromWitnessMap(witness);
|
|
234
239
|
|
|
@@ -243,7 +248,7 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
243
248
|
return makePublicInputsAndRecursiveProof(
|
|
244
249
|
result,
|
|
245
250
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
246
|
-
|
|
251
|
+
ProtocolCircuitVks['MergeRollupArtifact'],
|
|
247
252
|
);
|
|
248
253
|
}
|
|
249
254
|
|
|
@@ -260,7 +265,10 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
260
265
|
const witnessMap = convertRootRollupInputsToWitnessMap(input);
|
|
261
266
|
|
|
262
267
|
// use WASM here as it is faster for small circuits
|
|
263
|
-
const witness = await this.wasmSimulator.simulateCircuit(
|
|
268
|
+
const witness = await this.wasmSimulator.simulateCircuit(
|
|
269
|
+
witnessMap,
|
|
270
|
+
SimulatedServerCircuitArtifacts.RootRollupArtifact,
|
|
271
|
+
);
|
|
264
272
|
|
|
265
273
|
const result = convertRootRollupOutputsFromWitnessMap(witness);
|
|
266
274
|
|
|
@@ -275,7 +283,7 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
275
283
|
return makePublicInputsAndRecursiveProof(
|
|
276
284
|
result,
|
|
277
285
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
278
|
-
|
|
286
|
+
ProtocolCircuitVks['RootRollupArtifact'],
|
|
279
287
|
);
|
|
280
288
|
}
|
|
281
289
|
|
|
@@ -309,7 +317,7 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
309
317
|
return makePublicInputsAndRecursiveProof(
|
|
310
318
|
result,
|
|
311
319
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
312
|
-
|
|
320
|
+
ProtocolCircuitVks[kernelOps.artifact],
|
|
313
321
|
);
|
|
314
322
|
}
|
|
315
323
|
|
|
@@ -338,7 +346,7 @@ export class TestCircuitProver implements ServerCircuitProver {
|
|
|
338
346
|
return makePublicInputsAndRecursiveProof(
|
|
339
347
|
result,
|
|
340
348
|
makeEmptyRecursiveProof(NESTED_RECURSIVE_PROOF_LENGTH),
|
|
341
|
-
|
|
349
|
+
ProtocolCircuitVks['PublicKernelTailArtifact'],
|
|
342
350
|
);
|
|
343
351
|
}
|
|
344
352
|
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { type ClientProtocolCircuitVerifier, type Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type VerificationKeys, getMockVerificationKeys } from '@aztec/circuits.js';
|
|
3
2
|
|
|
4
3
|
export class TestCircuitVerifier implements ClientProtocolCircuitVerifier {
|
|
5
4
|
verifyProof(_tx: Tx): Promise<boolean> {
|
|
6
5
|
return Promise.resolve(true);
|
|
7
6
|
}
|
|
8
|
-
|
|
9
|
-
getVerificationKeys(): Promise<VerificationKeys> {
|
|
10
|
-
return Promise.resolve(getMockVerificationKeys());
|
|
11
|
-
}
|
|
12
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ClientProtocolCircuitVerifier, Tx } from '@aztec/circuit-types';
|
|
2
|
-
import { type Proof, type VerificationKeyData
|
|
2
|
+
import { type Proof, type VerificationKeyData } from '@aztec/circuits.js';
|
|
3
3
|
import { runInDirectory } from '@aztec/foundation/fs';
|
|
4
4
|
import { type DebugLogger, type LogFn, createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import {
|
|
@@ -142,16 +142,4 @@ export class BBCircuitVerifier implements ClientProtocolCircuitVerifier {
|
|
|
142
142
|
return false;
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
-
|
|
146
|
-
async getVerificationKeys(): Promise<VerificationKeys> {
|
|
147
|
-
const [privateKernelCircuit, privateKernelToPublicCircuit] = await Promise.all([
|
|
148
|
-
this.getVerificationKeyData('PrivateKernelTailArtifact'),
|
|
149
|
-
this.getVerificationKeyData('PrivateKernelTailToPublicArtifact'),
|
|
150
|
-
]);
|
|
151
|
-
|
|
152
|
-
return {
|
|
153
|
-
privateKernelCircuit,
|
|
154
|
-
privateKernelToPublicCircuit,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
145
|
}
|