It is a snark based project for proving pairing in bn128 curve it is a part of elliptic curve cryptography, I am proving that when two group of different curve get paired will generate this group of ellptic curve.
Elliptic Curve Cryptography (ECC) is widely used in various cryptographic protocols, including Zero-Knowledge Proofs (ZKPs) and pairing-based cryptography, especially in schemes like Groth16 for generating and verifying proofs. Letβs break down the concepts behind this and how they relate to your implementation:
In cryptographic protocols like Groth16, elliptic curves are used for:
Efficient key generation: Public-private key pairs are generated by selecting a point on the elliptic curve. Signature generation and verification: Proofs can be signed using private keys and verified using the corresponding public key. 2. Pairing-Based Cryptography: Pairing refers to a bilinear map, which is a special type of mathematical function that takes two points on an elliptic curve and maps them to a third point in a related group. This property is useful in cryptographic schemes like Groth16 because it allows you to efficiently check certain relationships between points, which is essential for verifying proofs.
π π e(g 1 β ,g 2 β )=g T β
for π 1 β πΊ 1 g 1 β βG 1 β and π 2 β πΊ 2 g 2 β βG 2 β . This bilinear property allows pairing-based schemes to verify cryptographic proofs.
Generating pairings on an elliptic curve: You are likely using libraries that implement elliptic curve groups and pairing functions, such as BN254, which is popular for Groth16. Generating proofs: Using the structured reference string (SRS), the prover encodes the witness (the secret input) and uses pairing to create a proof. Verifying proofs: The verifier uses the elliptic curve pairing and checks if the proof satisfies the cryptographic relation.