Add explicit constrains for recepient, relayer and fee

This commit is contained in:
Alexey 2020-04-28 10:36:48 +03:00
parent d4e6031982
commit a533ad9ffb

View File

@ -50,6 +50,18 @@ template Withdraw(levels) {
tree.pathElements[i] <== pathElements[i]; tree.pathElements[i] <== pathElements[i];
tree.pathIndices[i] <== pathIndices[i]; tree.pathIndices[i] <== pathIndices[i];
} }
// Add hidden signals to make sure that tampering with recipient or fee will invalidate the snark proof
// Most likely it is not required, but it's better to stay on the safe side and it only takes 2 constraints
// Squares are used to prevent optimizer from removing those constraints
signal recipientSquare;
signal feeSquare;
signal relayerSquare;
signal refundSquare;
recipientSquare <== recipient * recipient;
feeSquare <== fee * fee;
relayerSquare <== relayer * relayer;
refundSquare <== refund * refund;
} }
component main = Withdraw(20); component main = Withdraw(20);