diff --git a/src/circuit/gadget.rs b/src/circuit/gadget.rs index df03a7173..919b2c10b 100644 --- a/src/circuit/gadget.rs +++ b/src/circuit/gadget.rs @@ -176,7 +176,7 @@ pub(in crate::circuit) fn derive_nullifier< psi: &AssignedCell, cm: &Point, nk: AssignedCell, - is_split_note: AssignedCell, + split_flag: AssignedCell, ) -> Result, plonk::Error> { // hash = poseidon_hash(nk, rho) let hash = { @@ -221,11 +221,12 @@ pub(in crate::circuit) fn derive_nullifier< )?; let split_note_nf = nullifier_l.add(layouter.namespace(|| "split_note_nf"), &nf)?; + // Select the desired nullifier according to split_flag Ok(Point::from_inner( ecc_chip, mux_chip.mux( layouter.namespace(|| "mux on nf"), - &is_split_note, + &split_flag, nf.inner(), split_note_nf.inner(), )?, diff --git a/src/note/nullifier.rs b/src/note/nullifier.rs index 80f77d0f1..51769fdbf 100644 --- a/src/note/nullifier.rs +++ b/src/note/nullifier.rs @@ -61,10 +61,10 @@ impl Nullifier { let l = pallas::Point::hash_to_curve("z.cash:Orchard")(b"L"); let nullifier = k * mod_r_p(nk.prf_nf(rho) + psi) + cm.0; - let nullifier_for_split_note = nullifier + l; + let split_note_nullifier = nullifier + l; let selected_nullifier = - pallas::Point::conditional_select(&nullifier, &nullifier_for_split_note, is_split_note); + pallas::Point::conditional_select(&nullifier, &split_note_nullifier, is_split_note); Nullifier(extract_p(&(selected_nullifier))) }