-
Notifications
You must be signed in to change notification settings - Fork 553
Description
I am running into an issue with the Starknet build of Barretenberg where public inputs are not being written out as expected, and the verification key (VK) does not reflect the correct number of public inputs.
What I’m doing:
Noir circuit (Noir 1.0.0-beta.5) with 10 pub parameters.
bb prove --scheme ultra_honk --oracle_hash starknet --output_format bytes -b target/private_unlocks.json -w target/witness.gz -o target/proof/
bb write_vk --scheme ultra_honk --oracle_hash starknet -b target/private_unlocks.json -o target/proof/
garaga calldata --system ultra_starknet_honk ...
Expected:
target/proof/public_inputs is 320 bytes (10 × 32).
VK bytes 16–23 (public_inputs_size) = 26 (10 circuit inputs + 16 pairing).
Garaga calldata succeeds.
What is happening:
target/proof/public_inputs is empty (0 bytes).
VK bytes 16–23 = 00 00 00 00 00 00 00 10 → public_inputs_size = 16.
Garaga crashes: AssertionError len(public_inputs) == n_public_inputs == vk.public_inputs_size - 16.
If I patch the VK to 26, pairing check fails because proof/VK mismatch.
Environment:
bb --version: 0.87.4-starknet.1
garaga: 0.18.1
noir: 1.0.0-beta.5
Using WSL
Request: Please fix the Starknet build so that bb prove --oracle_hash starknet --output_format bytes writes all circuit public inputs and sets public_inputs_size = circuit_inputs + 16.