-
Notifications
You must be signed in to change notification settings - Fork 853
[proof chunk] root circuit consistency between chunk #1693
[proof chunk] root circuit consistency between chunk #1693
Conversation
17af037
to
040d0d6
Compare
a853d5b
to
084f129
Compare
084f129
to
dc338bb
Compare
ff6a4b6
to
7b8c03e
Compare
844bda7
to
d5062dc
Compare
594e175
to
8a76c75
Compare
5fde522
to
37388c6
Compare
Hi @CeciliaZ030 this PR is for root circuit proof chunk poseidon challenges circuit & chunk consistency check. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall LGTM!
5754924
to
280e579
Compare
e51cde0
to
2576946
Compare
2576946
to
295abd0
Compare
a246c1a
to
6ab26d6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! TheUserChallenge
is very nice. I already started syncing this branch to #1690 and it doesn't look too hard to merge :) the RootCircuit & SuperCircuit are isolated and the chunk-related data I'll just manually move them to witness::Chunk<F>
.
The only work integrate bus-mapping's witness generation toSuperCircuitInstance<T>
which should be easy.
zkevm-circuits/src/root_circuit.rs
Outdated
@@ -70,15 +139,22 @@ where | |||
{ | |||
/// Create a `RootCircuit` with accumulator computed given a `SuperCircuit` | |||
/// proof and its instance. Returns `None` if given proof is invalid. | |||
/// TODO support multiple snark proof aggregation | |||
pub fn new( | |||
params: &ParamsKZG<M>, | |||
super_circuit_protocol: &'a PlonkProtocol<M::G1Affine>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the actual aggregation situation where we're dealing with multiple chunks, should protocol
, instances
, and proof
all be Vec? So that the flatten_super_circuit_instances
will actually contain concatenated instances from different chunks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the heads up!
I think RootCircuit::new
interface should be simplified to pass Vector of SnarkWitness
.
Add one commit for applying the idea 0edf828
|
||
/// RwTablePermutationFingerprints | ||
#[derive(Debug, Default, Clone)] | ||
pub struct RwTablePermutationFingerprints<F> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In #1690, I actually make a Chunk<F>
that holds all chunk-related data, so l guess if this struct is incorporated in Chunk<F>
then it wouldn't be necessary anymore?
For now it makes total sense so just keep it, just a heads up I'll probably get rid of it when I merge :)
Since all test pass, will merge it first and proceed integration testing in #1690 :) |
c069ce4
into
privacy-scaling-explorations:proof-chunk
Description
covered item
alpha,gamma
from rw_table advices commitments and assert its equalitychallenge([column_indexs], challenge_column_index)
to a new protocol structure so more challenges in the future can be added.TODO
Issue Link
#1603
Type of change
Tests
Light tests pass.
integration test failed due to challenge computation in witness not implemented yet, which will be done in bus mapping chunk PR.