Skip to content

Commit

Permalink
fix(circom): Constrain index remainder by idx2Bits
Browse files Browse the repository at this point in the history
  • Loading branch information
stefan-nikolov96 committed Jun 29, 2023
1 parent 8faa323 commit 51d937c
Showing 1 changed file with 6 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ pragma circom 2.1.5;

include "hash_two.circom";
include "../../../node_modules/circomlib/circuits/comparators.circom";
include "../../../node_modules/circomlib/circuits/bitify.circom";

include "utils/arrays.circom";
include "utils/numerical.circom";

Expand All @@ -15,27 +17,14 @@ template IsValidMerkleBranchOut(N) {

component hashers[N];
component isZero[N];
component pow[N];
component divisionByTwo[N];
component divisionByPow[N];

component idx2Bits;
idx2Bits = Num2Bits(N+1);
idx2Bits.in <== index;
for(var i = 0; i < N; i++) {
hashers[i] = HashTwo();
isZero[i] = IsZero();

pow[i] = Pow(256);
pow[i].base <== 2;
pow[i].power <== i;

divisionByPow[i] = DivisionBy();
divisionByPow[i].dividend <== index;
divisionByPow[i].divisor <== pow[i].out;

divisionByTwo[i] = DivisionBy();
divisionByTwo[i].dividend <== divisionByPow[i].quotient;
divisionByTwo[i].divisor <== 2;

isZero[i].in <== divisionByTwo[i].remainder;
isZero[i].in <== idx2Bits.out[i];

var current[256];

Expand Down

0 comments on commit 51d937c

Please sign in to comment.