| 12345678910111213141516171819 |
- pub mod circuit;
- use halo2::{
- arithmetic::{CurveExt, FieldExt},
- pasta::{Ep, Fq},
- };
- use orchard::constants::fixed_bases::{
- VALUE_COMMITMENT_PERSONALIZATION, VALUE_COMMITMENT_R_BYTES, VALUE_COMMITMENT_V_BYTES,
- };
- #[allow(non_snake_case)]
- pub fn pedersen_commitment(value: u64, blind: Fq) -> Ep {
- let hasher = Ep::hash_to_curve(VALUE_COMMITMENT_PERSONALIZATION);
- let V = hasher(&VALUE_COMMITMENT_V_BYTES);
- let R = hasher(&VALUE_COMMITMENT_R_BYTES);
- let value = Fq::from_u64(value);
- V * value + R * blind
- }
|