Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defend against zaddr input arity metadata leakage attack #74

Open
leto opened this issue Feb 7, 2020 · 4 comments
Open

Defend against zaddr input arity metadata leakage attack #74

leto opened this issue Feb 7, 2020 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@leto
Copy link
Member

leto commented Feb 7, 2020

This is to track upstream issue: zcash#4332

The current plan is to automate z_mergetoaddress operations for the user at the GUI wallet layer, detecting potential "zdust attacks" (lots of small unique amount zutxos) and triggering a "zsweep" with no user action. This fix does not need to change any RPC layer methods nor consensus rules, and does not address the issue for full nodes.

For CLI full nodes, we can provide an RPC to opt-in to the "zsweep" or we can go the route of changing internals of hushd to autodetect the dust attack and auto-sweep the wallet.

This issue is to track this concern for hushd itself, SilentDragon, SilentDragonLite and any other wallets or software should get their own issue.

@leto
Copy link
Member Author

leto commented Feb 7, 2020

This paper seems to be the source of this new type of attack: https://orbilu.uni.lu/bitstream/10993/41278/1/Post_sapling_ZC_paper.pdf

@leto
Copy link
Member Author

leto commented Mar 6, 2020

Our new consolidation code changes take this attack into account, by only allowing 8 zinputs, we do not allow a high input arity to be spent at once, defeating attacks that send a unique number of dust outputs to an address and look for them to be spent.

@leto
Copy link
Member Author

leto commented Mar 15, 2020

I consider our new "sapling consolidation" plus our modifications to add Sietch outputs and limit inputs to 8 are a good and viable defense against these kinds of attacks. They are not enabled by default, so the issue doesn't seem fully closed. Keeping this open to see what we learn.

@leto
Copy link
Member Author

leto commented May 21, 2020

Current plan is to enable consolidation by default for SD, not sure what to do about SDL @DenioD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant