-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove free choice of circuits #542
Comments
Some follow ups, haven't review carefully, just recording first as some heads up
|
for (_, (_, proof)) in vm_proof.opcode_proofs.iter() { | |
PCS::write_commitment(&proof.wits_commit, &mut transcript) | |
.map_err(ZKVMError::PCSError)?; |
If an opcode/table proof is non-empty, then
proof.wits_commit.root()
digest will be write to transcripts.
Then it make sense for add assertion inside to assure non-empty proof -> num_instane > 0 in verify_opcode_proof
and verify_table_proof
for assert!(num_instance > 0)
to assure mpcs opening check is enable.
case 2: mpcs trustless from data from proof
@yczhangsjtu we might need to review carefully in basefold simple_batch_verify
There are few length check are derive from proof
e.g. commitment from "proof.wits_commit", evals from "proof.wits_in_evals". We might need to carefully review is there possible for a malicious prover to commit more
data, but set less batch size, so possible for orphan
commitment involved in transcript but skip verified.
I didnt review carefully, just bring an heads up, as I think probably we should define "verifier key" and retrieving, e.g. poly batch size from there as it should be settled from key setup phase
See thread: #521. cc: @hero78119 @dreamATD
tl;dr: There should be some commitment to the choice of circuits in the transcript.
For example, write the numbers of instances (including number 0). Or some circuit ID. Or a bitmask of chosen circuits.
Or maybe it’s not a real problem.
The text was updated successfully, but these errors were encountered: