symbolic-base-0.1.0.0: ZkFold Symbolic compiler and zero-knowledge proof protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZkFold.Base.Algebra.EllipticCurve.Ed25519

Synopsis

Documentation

data Ed25519 c Source #

The Ed25519 curve used in EdDSA signature scheme. c represents the "computational context" used to store and perform operations on curve points.

Instances

Instances details
(Symbolic c, NFData (c (Vector Size))) => EllipticCurve (Ed25519 c :: Type) Source #

Ed25519 with UInt 256 ArithmeticCircuit a as computational backend

Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

Associated Types

type BaseField (Ed25519 c) Source #

type ScalarField (Ed25519 c) Source #

EllipticCurve (Ed25519 Void) Source #

The purely mathematical implementation of Ed25519. It is available for use as-is and serves as "backend" for the UInt 256 (Zp p) implementation as well.

Instance details

Defined in ZkFold.Base.Algebra.EllipticCurve.Ed25519

Associated Types

type BaseField (Ed25519 Void) Source #

type ScalarField (Ed25519 Void) Source #

(KnownNat n, Symbolic c, NFData (c (Vector Size))) => PedersonSetup n (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Base.Protocol.Protostar.Commit

Symbolic c => Eq (Bool c) (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

Methods

(==) :: Point (Ed25519 c) -> Point (Ed25519 c) -> Bool c Source #

(/=) :: Point (Ed25519 c) -> Point (Ed25519 c) -> Bool c Source #

(Symbolic c, BaseField c ~ a) => SymbolicData (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

Associated Types

type Context (Point (Ed25519 c)) :: (Type -> Type) -> Type Source #

type Support (Point (Ed25519 c)) Source #

type Layout (Point (Ed25519 c)) :: Type -> Type Source #

type Payload (Point (Ed25519 c)) :: Type -> Type Source #

type BaseField (Ed25519 c :: Type) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

type BaseField (Ed25519 Void) Source # 
Instance details

Defined in ZkFold.Base.Algebra.EllipticCurve.Ed25519

type ScalarField (Ed25519 c :: Type) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

type ScalarField (Ed25519 Void) Source # 
Instance details

Defined in ZkFold.Base.Algebra.EllipticCurve.Ed25519

type Context (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

type Context (Point (Ed25519 c)) = c
type Layout (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

type Payload (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

type Support (Point (Ed25519 c)) Source # 
Instance details

Defined in ZkFold.Symbolic.Data.Ed25519

type Ed25519_Scalar = 7237005577332262213973186563042994240857116359379907606001950938285454250989 Source #

2^252 + 27742317777372353535851937790883648493 is the order of the multiplicative group in Ed25519 with the generator point defined below in instance EllipticCurve (Ed25519 Void r)

type Ed25519_Base = 57896044618658097711785492504343953926634992332820282019728792003956564819949 Source #

2^255 - 19 is the order of the base field from which point coordinates are taken.

Orphan instances

Prime Ed25519_Base Source # 
Instance details

Prime Ed25519_Scalar Source # 
Instance details