mirror of
https://github.com/tornadocash/tornado-core.git
synced 2024-11-22 17:50:19 +01:00
add explicit constraints to fee and receiver inputs
This commit is contained in:
parent
a657860418
commit
5e6c7392de
@ -30,7 +30,6 @@ template CommitmentHasher() {
|
|||||||
template Withdraw(levels, rounds) {
|
template Withdraw(levels, rounds) {
|
||||||
signal input root;
|
signal input root;
|
||||||
signal input nullifierHash;
|
signal input nullifierHash;
|
||||||
// TODO: Check if we need some kind of explicit constraints or something for those 2 inputs
|
|
||||||
signal input receiver; // not taking part in any computations
|
signal input receiver; // not taking part in any computations
|
||||||
signal input fee; // not taking part in any computations
|
signal input fee; // not taking part in any computations
|
||||||
signal private input nullifier;
|
signal private input nullifier;
|
||||||
@ -51,6 +50,14 @@ template Withdraw(levels, rounds) {
|
|||||||
tree.pathElements[i] <== pathElements[i];
|
tree.pathElements[i] <== pathElements[i];
|
||||||
tree.pathIndex[i] <== pathIndex[i];
|
tree.pathIndex[i] <== pathIndex[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add hidden signals to make sure that tampering with receiver 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 receiverSquare;
|
||||||
|
signal feeSquare;
|
||||||
|
receiverSquare <== receiver * receiver;
|
||||||
|
feeSquare <== fee * fee;
|
||||||
}
|
}
|
||||||
|
|
||||||
component main = Withdraw(16, 220);
|
component main = Withdraw(16, 220);
|
||||||
|
Loading…
Reference in New Issue
Block a user