Core Concepts
Ristretto Curves
Rust:
curve25519_dalek
: primarily used for BulletproofsGo:
ristretto255
: used for quisquis keys and proofsJS:
ristretto255-js
: used for signing txs in metamask snaps plugin
Generator Points
Every point is a generator point in Ristretto group. Two generator points, g
and h
, are hard-coded s.t. the discreet log between them is unknown and are used for generating keys, commitments and proofs.
Scalar
A scalar
is an integer modulo the Ristretto group order |G| = 2^252 + 27742317777372353535851937790883648493
Point
A point is a group element in the Ristretto group.
Pedersen Commitment
Pedersen commitment is a point s.t.
where g
and h
are globally available generator points, v
is the secret scalar value and r
is the blinding factor.
Fiat-Shamir Transform
Twilight uses merlin
to generate random challenge scalars, instantiated using Keccak-f[1600] at 128 bits security level, to convert interactive sigma protocols to non-interactive proofs.
Bulletproofs
Twilight uses rust implementation of bulletproofs
via a CGO bridge to generate 32bit range proofs.
Last updated