Skip to content

Commit

Permalink
add circuit dependencies to codebase
Browse files Browse the repository at this point in the history
  • Loading branch information
kibagateaux committed Jan 29, 2025
1 parent 693d588 commit d1b8d71
Show file tree
Hide file tree
Showing 27 changed files with 1,974 additions and 212 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
# dependencies
node_modules/

# build artifacts
src/circuits/*_js/

# Expo
.expo/
dist/
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"test": "jest",
"test:web": "jest --config=jest.web.config.js",
"test:ci": "jest --ci --colors",
"compile:zk": "circom ./src/circuits/circle.circom --verbose --wasm --json -l node_modules -o ./src/circuits/; mv ./src/circuits/circle_constraints.json ./src/circuits/circle_js/ ",
"postinstall": "patch-package && rn-nodeify --install all --hack",
"android": "expo run:android --variant developmentDebug -d",
"build:android": "eas build -p android",
Expand Down
7 changes: 0 additions & 7 deletions src/_circuits/Nargo.toml

This file was deleted.

2 changes: 0 additions & 2 deletions src/_circuits/Prover.toml

This file was deleted.

82 changes: 0 additions & 82 deletions src/_circuits/README.md

This file was deleted.

38 changes: 0 additions & 38 deletions src/_circuits/src/main.nr

This file was deleted.

21 changes: 0 additions & 21 deletions src/_circuits/target/circuits.json

This file was deleted.

Binary file removed src/_circuits/target/witness-name.gz
Binary file not shown.
Empty file removed src/_circuits/thing.sym
Empty file.
Empty file removed src/_circuits/yourCircuit.sym
Empty file.
42 changes: 0 additions & 42 deletions src/circuits/VerifyMessage.circom

This file was deleted.

5 changes: 4 additions & 1 deletion src/circuits/VerifyMsg.circom
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
// https://github.com/cursive-team/babyjubjub-ecdsa/blob/main/packages/circuits/baby-jubjub-ecdsa/pubkey_membership.circom
// https://github.com/cursive-team/babyjubjub-ecdsa/blob/b9e76d1083d21ee267b8a1b460397c4d90b9fa2b/packages/circuits/baby-jubjub-ecdsa/valid_tap.circom
// can actually just reuse this pretty sure. Use summoner pub key instead of cursive team hrdcoded ones.
// Just Have to figure out nullifiers which i should probs do anyway. pretty sure its generated per proof?


include "ecc.circom"; // Include elliptic curve functions

Expand Down
58 changes: 58 additions & 0 deletions src/circuits/baby_jubjub_ecdsa.circom
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// https://github.com/cursive-team/babyjubjub-ecdsa/blob/main/packages/circuits/baby-jubjub-ecdsa/baby_jubjub_ecdsa.circom
pragma circom 2.1.2;

include "../../node_modules/circomlib/circuits/babyjub.circom";
include "../../node_modules/circomlib/circuits/bitify.circom";
include "../../node_modules/circomlib/circuits/escalarmulany.circom";

/**
* BabyJubJubECDSA
* ====================
*
* Converts inputted efficient ECDSA signature to an public key. There is no
* public key validation included. Takes in points in Twisted Edwards form
* and uses Edwards addition and scalar multiplication. Returns computed
* public key in Edwards form.
*/
template BabyJubJubECDSA() {
var bits = 256;
signal input s;
signal input Tx; // T = r^-1 * R
signal input Ty; // T is represented in Twisted Edwards form
signal input Ux; // U = -(m * r^-1 * G)
signal input Uy; // U is represented in Twisted Edwards form

signal output pubKeyX; // Represented in Twisted Edwards form
signal output pubKeyY;

// bitify s
component sBits = Num2Bits(bits);
sBits.in <== s;

// check T, U are on curve
component checkT = BabyCheck();
checkT.x <== Tx;
checkT.y <== Ty;
component checkU = BabyCheck();
checkU.x <== Ux;
checkU.y <== Uy;

// sMultT = s * T
component sMultT = EscalarMulAny(bits);
var i;
for (i=0; i<bits; i++) {
sMultT.e[i] <== sBits.out[i];
}
sMultT.p[0] <== Tx;
sMultT.p[1] <== Ty;

// pubKey = sMultT + U
component pubKey = BabyAdd();
pubKey.x1 <== sMultT.out[0];
pubKey.y1 <== sMultT.out[1];
pubKey.x2 <== Ux;
pubKey.y2 <== Uy;

pubKeyX <== pubKey.xout;
pubKeyY <== pubKey.yout;
}
Loading

0 comments on commit d1b8d71

Please sign in to comment.