remove ERC addresses from transfer #509
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #497
This fixes a bug whereby transfer transactions advertise the ERCAddress of the token being transferred. Allowing this would greatly reduce the size of the annonymity set, and it's unnecessary because the Shield contract doesn't need to know it. Hence we make ERCAddress a private variable in the ZKP circuit.
To test: testing is the conventional
./start-nightfall -g [-s]
,npm t
approach BUT because the circuits have changed, you must delete yourproving_files
volume to force a new trusted setup and to start using the new circuits.When the test has run, and before you stop nightfall, you can do
docker-compose logs | grep -A 4 'transactionType": "1"'
to see the single transfer transactions and the ERCAddress contained therein (should be zeroed out). Replace "1" with "2" to see the double transfers.