From 95e41fcfcf136b9d7870e78324257cdc1fb24b85 Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Thu, 3 Dec 2020 13:45:13 -0700 Subject: [PATCH] Rename curves to Pallas/Vesta (Pasta). --- benches/arithmetic.rs | 2 +- benches/plonk.rs | 2 +- examples/performance_model.rs | 2 +- src/arithmetic.rs | 2 +- src/lib.rs | 2 +- src/pasta.rs | 13 +++++++++++++ src/{tweedle => pasta}/curves.rs | 4 ++-- src/{tweedle => pasta}/fields.rs | 4 ++-- src/{tweedle => pasta}/fields/fp.rs | 0 src/{tweedle => pasta}/fields/fq.rs | 0 src/{tweedle => pasta}/macros.rs | 0 src/pasta/pallas.rs | 13 +++++++++++++ src/pasta/vesta.rs | 13 +++++++++++++ src/plonk.rs | 2 +- src/poly/commitment.rs | 5 ++--- src/poly/multiopen.rs | 2 +- src/tweedle.rs | 13 ------------- src/tweedle/dee.rs | 13 ------------- src/tweedle/dum.rs | 13 ------------- 19 files changed, 52 insertions(+), 53 deletions(-) create mode 100644 src/pasta.rs rename src/{tweedle => pasta}/curves.rs (99%) rename src/{tweedle => pasta}/fields.rs (91%) rename src/{tweedle => pasta}/fields/fp.rs (100%) rename src/{tweedle => pasta}/fields/fq.rs (100%) rename src/{tweedle => pasta}/macros.rs (100%) create mode 100644 src/pasta/pallas.rs create mode 100644 src/pasta/vesta.rs delete mode 100644 src/tweedle.rs delete mode 100644 src/tweedle/dee.rs delete mode 100644 src/tweedle/dum.rs diff --git a/benches/arithmetic.rs b/benches/arithmetic.rs index 5939c262..435b90c5 100644 --- a/benches/arithmetic.rs +++ b/benches/arithmetic.rs @@ -5,7 +5,7 @@ extern crate halo2; use crate::arithmetic::{small_multiexp, FieldExt}; use crate::poly::commitment::Params; use crate::transcript::DummyHash; -use crate::tweedle::{EqAffine, Fp, Fq}; +use crate::pasta::{EqAffine, Fp, Fq}; use halo2::*; use criterion::{black_box, Criterion}; diff --git a/benches/plonk.rs b/benches/plonk.rs index 13334160..1eda462e 100644 --- a/benches/plonk.rs +++ b/benches/plonk.rs @@ -6,7 +6,7 @@ use halo2::arithmetic::FieldExt; use halo2::plonk::*; use halo2::poly::commitment::Params; use halo2::transcript::DummyHash; -use halo2::tweedle::{EqAffine, Fp, Fq}; +use halo2::pasta::{EqAffine, Fp, Fq}; use std::marker::PhantomData; diff --git a/examples/performance_model.rs b/examples/performance_model.rs index 796dbc10..11b1af6f 100644 --- a/examples/performance_model.rs +++ b/examples/performance_model.rs @@ -4,7 +4,7 @@ use halo2::{ plonk::*, poly::commitment::{Blind, Params}, transcript::DummyHash, - tweedle::{EqAffine, Fp, Fq}, + pasta::{EqAffine, Fp, Fq}, }; use std::marker::PhantomData; diff --git a/src/arithmetic.rs b/src/arithmetic.rs index f5e7ed84..dcb4189f 100644 --- a/src/arithmetic.rs +++ b/src/arithmetic.rs @@ -468,7 +468,7 @@ pub fn lagrange_interpolate(points: &[F], evals: &[F]) -> Vec { } #[cfg(test)] -use crate::tweedle::Fp; +use crate::pasta::Fp; #[test] fn test_lagrange_interpolate() { diff --git a/src/lib.rs b/src/lib.rs index 2676e3e4..36287ac4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,9 +14,9 @@ #![deny(unsafe_code)] pub mod arithmetic; +pub mod pasta; pub mod plonk; pub mod poly; pub mod transcript; -pub mod tweedle; pub mod model; diff --git a/src/pasta.rs b/src/pasta.rs new file mode 100644 index 00000000..3248deb1 --- /dev/null +++ b/src/pasta.rs @@ -0,0 +1,13 @@ +//! This module contains implementations for the Pallas and Vesta elliptic curve +//! groups. + +#[macro_use] +mod macros; +mod curves; +mod fields; + +pub mod pallas; +pub mod vesta; + +pub use curves::*; +pub use fields::*; diff --git a/src/tweedle/curves.rs b/src/pasta/curves.rs similarity index 99% rename from src/tweedle/curves.rs rename to src/pasta/curves.rs index cfc7df67..8d5ad8ab 100644 --- a/src/tweedle/curves.rs +++ b/src/pasta/curves.rs @@ -1,5 +1,5 @@ -//! This module contains implementations for the Tweedledum and Tweedledee -//! elliptic curve groups. +//! This module contains implementations for the Pallas and Vesta elliptic curve +//! groups. use core::cmp; use core::fmt::Debug; diff --git a/src/tweedle/fields.rs b/src/pasta/fields.rs similarity index 91% rename from src/tweedle/fields.rs rename to src/pasta/fields.rs index e9f4972f..5b0647d4 100644 --- a/src/tweedle/fields.rs +++ b/src/pasta/fields.rs @@ -1,5 +1,5 @@ -//! This module contains implementations for the two finite fields of the -//! Tweedledum and Tweedledee curves. +//! This module contains implementations for the two finite fields of the Pallas +//! and Vesta curves. mod fp; mod fq; diff --git a/src/tweedle/fields/fp.rs b/src/pasta/fields/fp.rs similarity index 100% rename from src/tweedle/fields/fp.rs rename to src/pasta/fields/fp.rs diff --git a/src/tweedle/fields/fq.rs b/src/pasta/fields/fq.rs similarity index 100% rename from src/tweedle/fields/fq.rs rename to src/pasta/fields/fq.rs diff --git a/src/tweedle/macros.rs b/src/pasta/macros.rs similarity index 100% rename from src/tweedle/macros.rs rename to src/pasta/macros.rs diff --git a/src/pasta/pallas.rs b/src/pasta/pallas.rs new file mode 100644 index 00000000..78b2f649 --- /dev/null +++ b/src/pasta/pallas.rs @@ -0,0 +1,13 @@ +//! The Pallas elliptic curve group. + +/// A Pallas point in the projective coordinate space. +pub type Point = super::Ep; + +/// A Pallas point in the affine coordinate space (or the point at infinity). +pub type Affine = super::EpAffine; + +/// The base field of the Pallas group. +pub type Base = super::Fp; + +/// The scalar field of the Pallas group. +pub type Scalar = super::Fq; diff --git a/src/pasta/vesta.rs b/src/pasta/vesta.rs new file mode 100644 index 00000000..c20d9b67 --- /dev/null +++ b/src/pasta/vesta.rs @@ -0,0 +1,13 @@ +//! The Vesta elliptic curve group. + +/// A Vesta point in the projective coordinate space. +pub type Point = super::Eq; + +/// A Vesta point in the affine coordinate space (or the point at infinity). +pub type Affine = super::EqAffine; + +/// The base field of the Vesta group. +pub type Base = super::Fq; + +/// The scalar field of the Vesta group. +pub type Scalar = super::Fp; diff --git a/src/plonk.rs b/src/plonk.rs index ae31166f..10a703e2 100644 --- a/src/plonk.rs +++ b/src/plonk.rs @@ -111,7 +111,7 @@ fn test_proving() { use crate::arithmetic::{Curve, FieldExt}; use crate::poly::commitment::{Blind, Params}; use crate::transcript::DummyHash; - use crate::tweedle::{EqAffine, Fp, Fq}; + use crate::pasta::{EqAffine, Fp, Fq}; use circuit::{Advice, Column, Fixed}; use std::marker::PhantomData; const K: u32 = 5; diff --git a/src/poly/commitment.rs b/src/poly/commitment.rs index 69ae7b02..53263ec4 100644 --- a/src/poly/commitment.rs +++ b/src/poly/commitment.rs @@ -103,7 +103,6 @@ impl Params { let h = { let mut hasher = H::init(C::Base::zero()); - hasher.absorb(-C::Base::one()); let x = hasher.squeeze().to_bytes(); let p = C::from_bytes(&x); p.unwrap() @@ -227,7 +226,7 @@ fn test_commit_lagrange() { const K: u32 = 6; use crate::transcript::DummyHash; - use crate::tweedle::{EpAffine, Fp, Fq}; + use crate::pasta::{EpAffine, Fp, Fq}; let params = Params::::new::>(K); let domain = super::EvaluationDomain::new(1, K); @@ -256,7 +255,7 @@ fn test_opening_proof() { }; use crate::arithmetic::{eval_polynomial, Curve, FieldExt}; use crate::transcript::{ChallengeScalar, DummyHash, Transcript}; - use crate::tweedle::{EpAffine, Fp, Fq}; + use crate::pasta::{EpAffine, Fp, Fq}; let params = Params::::new::>(K); let domain = EvaluationDomain::new(1, K); diff --git a/src/poly/multiopen.rs b/src/poly/multiopen.rs index bcae0e6d..0d4cc935 100644 --- a/src/poly/multiopen.rs +++ b/src/poly/multiopen.rs @@ -217,7 +217,7 @@ where mod tests { use super::{construct_intermediate_sets, Query}; use crate::arithmetic::FieldExt; - use crate::tweedle::Fp; + use crate::pasta::Fp; #[derive(Clone)] struct MyQuery { diff --git a/src/tweedle.rs b/src/tweedle.rs deleted file mode 100644 index 417071e4..00000000 --- a/src/tweedle.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! This module contains implementations for the Tweedledum and Tweedledee -//! elliptic curve groups. - -#[macro_use] -mod macros; -mod curves; -mod fields; - -pub mod dee; -pub mod dum; - -pub use curves::*; -pub use fields::*; diff --git a/src/tweedle/dee.rs b/src/tweedle/dee.rs deleted file mode 100644 index a900ada1..00000000 --- a/src/tweedle/dee.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! The Tweedledee elliptic curve group. - -/// A Tweedledee point in the projective coordinate space. -pub type Point = super::Eq; - -/// A Tweedledee point in the affine coordinate space (or the point at infinity). -pub type Affine = super::EqAffine; - -/// The base field of the Tweedledee group. -pub type Base = super::Fq; - -/// The scalar field of the Tweedledee group. -pub type Scalar = super::Fp; diff --git a/src/tweedle/dum.rs b/src/tweedle/dum.rs deleted file mode 100644 index 9f9b1b28..00000000 --- a/src/tweedle/dum.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! The Tweedledum elliptic curve group. - -/// A Tweedledum point in the projective coordinate space. -pub type Point = super::Ep; - -/// A Tweedledum point in the affine coordinate space (or the point at infinity). -pub type Affine = super::EpAffine; - -/// The base field of the Tweedledum group. -pub type Base = super::Fp; - -/// The scalar field of the Tweedledum group. -pub type Scalar = super::Fq;