📄️ Verifiable Random Function (VRF)
We present an overview of verifiable random functions (VRF) and describe a construction a VRF based on elliptic curves in @cite-PWHVNRG17.
📄️ Distributed Key Generation (DKG)
We give an overview of Distributed Key Generation (DKG) and describe the DKG protocol used in the paper @cite-GJKR99. This, along with the ECVRF, will be two main components for the Distributed Verifiable Random Function (DVRF) protocol used for generating pseudorandom values. First, we give an overview of DKG. Then, we mention Verifiable Secret Sharing (VSS), the main building block for a DKG protocol. Finally, we describe the DKG protocol of @cite-GJKR99.
📄️ Threshold Signature
In this chapter, we give an overview of threshold signatures and describe the threshold ECDSA construction of Canetti et al in @cite-CGGMP21 and the FROST threshold signature scheme in @cite-KG20, which is a threshold version of Schnorr signature scheme, including its EdDSA (or ed25519) instatiation. The chapter is separated into $5$ major parts below:
📄️ Isogeny Based Cryptography
We introduce Isogeny based cryptography, one of the possible candidates for post-quantum cryptography. People may have heard the SIKE protocol have been broken @cite-CD22, but many other isogeny based cryptosystems, such as the CLG hash function @cite-CGL06 and SQISign @cite-SKLPW20 remains secure against the attack on SIDH. We begin with supersingular isogeny graph and its properties, then we describe several isogeny based cryptosystems.
📄️ KZG Polynomial Commitment Scheme
KZG polynomial commitment scheme @cite-KZG10 plays an important role in making the polynomial constraints of PlonK's arithmetization become a zkSNARK @cite-GWC19.
📄️ PlonK
In this chapter, we will present the construction of @cite-GWC19, i.e., permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge.
📄️ Halo 2 for Dummies
Halo 2 is succint non-interactive zero-knowledge argument of knowledge (zkSNARK) library for developing applications with an associated zkSNARK in order to prove their honesty in computing the programs. In this chapter, I present a simple implementation of a program, under the form of a $2$-variable polynomial, by using Halo 2.
📄️ Verifiable Delay Functions
Verifiable Delay Functions (VDF) was introduced in 2018 and has become an active research aera in cryptography. VDF has many applications in blockchains, such as randomness beacon, resource-efficient blockchain, computational timestamping, etc. In this chapter, we first give a brief overview of VDF, then study and discuss several existing VDF constructions.
📄️ Poseidon Hash for ZK Applications
Many use cases of practical computational integrity proof systems such as SNARKs, STARKs, Bulletproofs, involve proving the knowledge of a preimage under a certain cryptographic hash function, which is expressed as a circuit over a large prime field. However, the majority of hash functions do not perform computations in finite field, (SHA-256 in Zcash cryptocurrency). As a result, more constraints must be added in the circuit to represent the operations (for example, XOR, AND, etc.) in hash function as arithmetic operations in finite field. Hence, the expressed circuit could become very expensive due to the enormous number of hash constraints, leading to a huge computational