arnaucube
arnaucube/circomlibPublic Self-hosted repository
circomlib/circuit/babyjub.circom
circuit/babyjub.circomRaw
 1
 2
 3template BabyAdd() {
 4    signal input x1;
 5    signal input y1;
 6    signal input x2;
 7    signal input y2;
 8    signal output xout;
 9    signal output yout;
10
11    signal beta;
12    signal gamma;
13    signal delta;
14    signal epsilon;
15    signal tau;
16
17    var a = 168700;
18    var d = 168696;
19
20    beta <== x1*y2;
21    gamma <== y1*x2;
22    delta <== y1*y2;
23    epsilon <== x1*x2;
24    tau <== delta * epsilon;
25
26    xout <-- (beta + gamma) / (1+ d*tau);
27    (1+ d*tau) * xout === (beta + gamma);
28
29    yout <-- (delta - a * epsilon) / (1-d*tau);
30    (1-d*tau)*yout === (delta - a * epsilon);
31}