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

Cross-branch double-spend detector #2275

tromer opened this issue Apr 17, 2017 · 0 comments


2 participants
Copy link

commented Apr 17, 2017

As part of the Zcash blockchain monitoring systems (cf. the block observatory #1992, fork detector #1925), it would be good to also monitor double-spending across blockchain branches. This means:

  1. occurrence of the same note nullifier in two different transactions, across any mined blocks (in any branch) or the mempool
  2. occurrence of the same utxo input in two different transactions, across any mined blocks (in any branch) or the mempool
  3. occurrence of the same transaction in two mined blocks whose latest common ancestor is more than n blocks older

[edit: clarified, and differentiated cases 2 and 3]

Such cross-branch doublespending does not necessarily imply a problem: they could be caused by benign reorgs, and each branch will still contain a single spend of the utxo or note. However, such events (especially cases 1 and 2) can be a symptom of problems, such as:

  1. Attempts to execute a doublespending attack
  2. Losing branches that persisted long enough in some users' nodes that those users were forced to re-generate transactions after a reorg (cf. #1614)
  3. Possible loss of privacy due to linkability of nullifiers across branches (cf. #1614 (comment))

@tarrenj tarrenj referenced this issue Jun 23, 2018


null #90

@daira daira added this to Product Backlog in Arborist Team Dec 24, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.