Skip to content

Commit 931783f

Browse files
committed
missing slot
1 parent 03ec5f9 commit 931783f

File tree

4 files changed

+20
-15
lines changed

4 files changed

+20
-15
lines changed

crates/rec_aggregation/src/xmss_aggregate.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ fn compile_xmss_aggregation_program() -> XmssAggregationProgram {
136136
fn exec_phony_xmss(bytecode: &Bytecode, log_lifetimes: &[usize]) -> ExecutionResult {
137137
let mut rng = StdRng::seed_from_u64(0);
138138
let message_hash: [F; 8] = rng.random();
139-
let first_slot = 1111;
140-
let (xmss_pub_keys, all_signatures) = xmss_generate_phony_signatures(log_lifetimes, message_hash, first_slot);
139+
let slot = 1 << 33;
140+
let (xmss_pub_keys, all_signatures) = xmss_generate_phony_signatures(log_lifetimes, message_hash, slot);
141141
let public_input = build_public_input(&xmss_pub_keys, message_hash);
142142
let private_input = build_private_input(&all_signatures, &xmss_pub_keys);
143143
execute_bytecode(
@@ -156,16 +156,15 @@ pub fn run_xmss_benchmark(log_lifetimes: &[usize]) {
156156

157157
let mut rng = StdRng::seed_from_u64(0);
158158
let message_hash: [F; 8] = rng.random();
159-
let first_slot = 785555;
160-
161-
let (xmss_pub_keys, all_signatures) = xmss_generate_phony_signatures(log_lifetimes, message_hash, first_slot);
159+
let slot = 1 << 33;
160+
let (xmss_pub_keys, all_signatures) = xmss_generate_phony_signatures(log_lifetimes, message_hash, slot);
162161

163162
let time = Instant::now();
164163
let (proof_data, n_field_elements_in_proof, summary) =
165164
xmss_aggregate_signatures_helper(&xmss_pub_keys, &all_signatures, message_hash).unwrap();
166165
let proving_time = time.elapsed();
167166

168-
xmss_verify_aggregated_signatures(&xmss_pub_keys, message_hash, &proof_data).unwrap();
167+
xmss_verify_aggregated_signatures(&xmss_pub_keys, message_hash, &proof_data, slot).unwrap();
169168

170169
println!("{summary}");
171170
println!(
@@ -186,7 +185,9 @@ pub fn xmss_aggregate_signatures(
186185
xmss_pub_keys: &[XmssPublicKey],
187186
all_signatures: &[XmssSignature],
188187
message_hash: [F; 8],
188+
slot: u64,
189189
) -> Result<Vec<u8>, XmssAggregateError> {
190+
let _ = slot; // TODO
190191
Ok(xmss_aggregate_signatures_helper(xmss_pub_keys, all_signatures, message_hash)?.0)
191192
}
192193

@@ -233,7 +234,9 @@ pub fn xmss_verify_aggregated_signatures(
233234
xmss_pub_keys: &[XmssPublicKey],
234235
message_hash: [F; 8],
235236
proof_bytes: &[u8],
237+
slot: u64,
236238
) -> Result<(), ProofError> {
239+
let _ = slot; // TODO
237240
let program = get_xmss_aggregation_program();
238241

239242
let proof_field_elements = info_span!("Proof deserialization").in_scope(|| {

crates/xmss/src/phony_xmss.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ impl PhonyXmssSecretKey {
6060
pub fn xmss_generate_phony_signatures(
6161
log_lifetimes: &[usize],
6262
message_hash: Digest,
63-
first_slot: u64,
63+
slot: u64,
6464
) -> (Vec<XmssPublicKey>, Vec<XmssSignature>) {
6565
log_lifetimes
6666
.par_iter()
6767
.enumerate()
6868
.map(|(i, &log_lifetime)| {
6969
let mut rng = StdRng::seed_from_u64(i as u64);
70-
let signature_index = rng.random_range(first_slot..first_slot + (1 << log_lifetime));
71-
let xmss_secret_key = PhonyXmssSecretKey::random(&mut rng, first_slot, log_lifetime, signature_index);
70+
let first_slot = slot - rng.random_range(0..(1 << log_lifetime).min(slot));
71+
let xmss_secret_key = PhonyXmssSecretKey::random(&mut rng, first_slot, log_lifetime, slot);
7272
let signature = xmss_secret_key.sign(&message_hash, &mut rng);
7373
(xmss_secret_key.public_key, signature)
7474
})

crates/xmss/src/xmss.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,9 @@ pub fn xmss_verify(
154154
pub_key: &XmssPublicKey,
155155
message_hash: &Digest,
156156
signature: &XmssSignature,
157+
slot: u64,
157158
) -> Result<(), XmssVerifyError> {
159+
let _ = slot; // TODO
158160
xmss_verify_with_poseidon_trace(pub_key, message_hash, signature).map(|_| ())
159161
}
160162

src/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ mod tests {
4747

4848
let (secret_key, pub_key) = xmss_key_gen(key_gen_seed, first_slot, log_lifetime).unwrap();
4949
let signature = xmss_sign(randomness_seed, &secret_key, &message_hash, slot).unwrap();
50-
xmss_verify(&pub_key, &message_hash, &signature).unwrap();
50+
xmss_verify(&pub_key, &message_hash, &signature, slot).unwrap();
5151
}
5252

5353
#[test]
@@ -59,13 +59,13 @@ mod tests {
5959
// (Actually, no need to call it if `xmss_aggregation_setup_prover` was already called)
6060
xmss_aggregation_setup_verifier();
6161

62-
let log_lifetimes = (1..=XMSS_MAX_LOG_LIFETIME).collect::<Vec<usize>>();
62+
let log_lifetimes = (10..=XMSS_MAX_LOG_LIFETIME).collect::<Vec<usize>>();
6363
let message_hash: [F; 8] = std::array::from_fn(|i| F::from_usize(i * 7));
64-
let first_slot = 77777;
64+
let slot = 1 << 33;
6565

66-
let (xmss_pub_keys, all_signatures) = xmss_generate_phony_signatures(&log_lifetimes, message_hash, first_slot);
66+
let (xmss_pub_keys, all_signatures) = xmss_generate_phony_signatures(&log_lifetimes, message_hash, slot);
6767

68-
let proof = xmss_aggregate_signatures(&xmss_pub_keys, &all_signatures, message_hash).unwrap();
69-
xmss_verify_aggregated_signatures(&xmss_pub_keys, message_hash, &proof).unwrap();
68+
let proof = xmss_aggregate_signatures(&xmss_pub_keys, &all_signatures, message_hash, slot).unwrap();
69+
xmss_verify_aggregated_signatures(&xmss_pub_keys, message_hash, &proof, slot).unwrap();
7070
}
7171
}

0 commit comments

Comments
 (0)