project screenshot 1
project screenshot 2
project screenshot 3

Trusty

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.

Trusty

Created At

ETHOnline 2024

Project Description

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:

  1. Elliptic Curve Cryptography (ECC): ECC is a form of public-key cryptography based on the algebraic structure of elliptic curves over finite fields. The security of ECC is derived from the Elliptic Curve Discrete Logarithm Problem (ECDLP), which is computationally hard to solve.

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.

Bilinear pairing: Let 𝐺 1 G 1 ​ and 𝐺 2 G 2 ​ be two groups of points on an elliptic curve, and 𝐺 𝑇 G T ​ a target group. A pairing function 𝑒 e has the property: 𝑒 ( 𝑔 1 , 𝑔 2 )

𝑔 𝑇 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.

How it's Made

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.

background image mobile

Join the mailing list

Get the latest news and updates