Skip to content

Commit 5697a94

Browse files
committed
Consumption of prover state in the prover_response function
1 parent 802dbe5 commit 5697a94

File tree

5 files changed

+18
-17
lines changed

5 files changed

+18
-17
lines changed

src/toolbox/sigma/fiat_shamir.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ where
4343
.verifier_challenge();
4444
println!("Prover's challenge : {:?}", challenge);
4545
// Prouver's response
46-
let response = self.sigmap.prover_response(&prover_state, &challenge);
46+
let response = self.sigmap.prover_response(prover_state, &challenge);
4747
// Local verification of the proof
4848
assert!(self.sigmap.verifier(&commitment, &challenge, &response) == Ok(()));
4949
self.sigmap.serialize_batchable(&commitment, &challenge, &response)

src/toolbox/sigma/proof_composition.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ where
4646

4747
fn prover_response(
4848
&self,
49-
state: &Self::ProverState,
49+
state: Self::ProverState,
5050
challenge: &Self::Challenge,
5151
) -> Self::Response {
5252
// Compute responses
53-
let response0 = self.protocol0.prover_response(&state.0, challenge);
54-
let response1 = self.protocol1.prover_response(&state.1, challenge);
53+
let response0 = self.protocol0.prover_response(state.0, challenge);
54+
let response1 = self.protocol1.prover_response(state.1, challenge);
5555

5656
(response0, response1)
5757
}
@@ -147,26 +147,27 @@ where
147147

148148
fn prover_response(
149149
&self,
150-
state: &Self::ProverState,
150+
state: Self::ProverState,
151151
challenge: &Self::Challenge,
152152
) -> Self::Response {
153+
// let state = (real index, real prover state, fakee transcription)
153154
let (_ , r_pr_st, f_trnsc) = state;
154155

155156
// Compute the real challenge
156-
let r_challenge = match *f_trnsc {
157+
let r_challenge = match &f_trnsc {
157158
OrTranscription::Left(OrState(ch, _)) => *challenge - ch,
158159
OrTranscription::Right(OrState(ch, _)) => *challenge - ch,
159160
};
160161

161162
match (r_pr_st, f_trnsc) {
162-
(OrEnum::Left(ref r_prover_state), OrTranscription::Right(OrState(_, f_response))) => {
163+
(OrEnum::Left(r_prover_state), OrTranscription::Right(OrState(_, f_response))) => {
163164
let r_response = self.protocol0.prover_response(r_prover_state, &r_challenge);
164165
(r_challenge, r_response, f_response.clone())
165166

166167
},
167-
(OrEnum::Right(ref r_prover_state), OrTranscription::Left(OrState(f_ch, f_response))) => {
168+
(OrEnum::Right(r_prover_state), OrTranscription::Left(OrState(f_ch, f_response))) => {
168169
let r_response = self.protocol1.prover_response(r_prover_state, &r_challenge);
169-
(*f_ch, f_response.clone(), r_response)
170+
(f_ch, f_response.clone(), r_response)
170171
},
171172
_ => panic!("Incoherence between real prover state and fake transcription"),
172173
}

src/toolbox/sigma/schnorr_proof.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ where
4141

4242
fn prover_response(
4343
&self,
44-
state: &Self::ProverState,
44+
state: Self::ProverState,
4545
challenge: &Self::Challenge,
4646
) -> Self::Response {
4747
let mut responses = Vec::new();

src/toolbox/sigma/trait.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub trait SigmaProtocol {
1616

1717
fn prover_response(
1818
&self,
19-
state: &Self::ProverState,
19+
state: Self::ProverState,
2020
challenge: &Self::Challenge,
2121
) -> Self::Response;
2222

tests/proof_composition_test.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ impl SigmaProtocol for SchnorrZkp {
2727

2828
fn prover_response(
2929
&self,
30-
state: &Self::ProverState,
30+
state: Self::ProverState,
3131
challenge: &Self::Challenge,
3232
) -> Self::Response {
33-
let (r,x) = *state ;
33+
let (r,x) = state ;
3434
challenge * x + r
3535
}
3636

@@ -93,7 +93,7 @@ fn andproof_schnorr_correct() {
9393
let challenge = Scalar::random(&mut rng);
9494

9595
// Prover computes responses
96-
let responses = and_proof.prover_response(&states, &challenge);
96+
let responses = and_proof.prover_response(states, &challenge);
9797

9898
// Verifier checks
9999
let result = and_proof.verifier(&commitments, &challenge, &responses);
@@ -130,7 +130,7 @@ fn andproof_schnorr_incorrect() {
130130
let challenge = Scalar::random(&mut rng);
131131

132132
// Prover computes responses
133-
let responses = and_proof.prover_response(&states, &challenge);
133+
let responses = and_proof.prover_response(states, &challenge);
134134

135135
// Verifier checks
136136
let result = and_proof.verifier(&commitments, &challenge, &responses);
@@ -165,7 +165,7 @@ fn orproof_schnorr_correct() {
165165
let challenge = Scalar::random(&mut rng);
166166

167167
// Prover computes responses
168-
let responses = or_proof.prover_response(&states, &challenge);
168+
let responses = or_proof.prover_response(states, &challenge);
169169

170170
// Verifier checks
171171
let result = or_proof.verifier(&commitments, &challenge, &responses);
@@ -200,7 +200,7 @@ fn orproof_schnorr_incorrect() {
200200
let challenge = Scalar::random(&mut rng);
201201

202202
// Prover computes responses
203-
let responses = or_proof.prover_response(&states, &challenge);
203+
let responses = or_proof.prover_response(states, &challenge);
204204

205205
// Verifier checks
206206
let result = or_proof.verifier(&commitments, &challenge, &responses);

0 commit comments

Comments
 (0)