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

evidence: batch vs individual processing of evidence #4729

Closed
4 tasks
cmwaters opened this issue Apr 23, 2020 · 2 comments · Fixed by #7700
Closed
4 tasks

evidence: batch vs individual processing of evidence #4729

cmwaters opened this issue Apr 23, 2020 · 2 comments · Fixed by #7700
Assignees
Labels
C:evidence Component: Evidence

Comments

@cmwaters
Copy link
Contributor

Summary

Currently all evidence is submitted individually i.e. one validator per evidence, however we detect evidence in batches when a light client detects two conflicting headers, i.e. all validators that misbehaved in these two headers have evidence created against them.

The introduction of amnesia evidence meant that there was no longer irrevocable proof of malicious behavior and instead accused validators had to prove their innocence. When this was introduced, naturally, it was thought to batch the suspects together along with the proofs.

It is possible to have amnesia evidence individually however this now begs the question of what is better - individual processing of evidence or batch processing of evidence

Pros of each option

Individual

  • 😃 Easy to match offences to validators, this stops malicious validators from spamming the system with extra evidence as only the earliest evidence is considered.
  • 😃 At the moment, evidence is made from conflicting headers by light client but some evidence detection could be built into the consensus package - this would most likely be individually
  • 😃 Already implemented so not much extra work has to be done

Batch

  • 😃 Quicker to validate
  • 😃 Easier to prioritize evidence as we know the total voting power of the attacks
  • 😃 Evidence can still be individual.

NOTE: the sending of extra messages is not a problem because they are sent and received in batches already

Please add more if you have ideas


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@cmwaters cmwaters added the C:evidence Component: Evidence label Apr 23, 2020
@cmwaters
Copy link
Contributor Author

Amnesia Evidence will be individually processed. Verdict is reflected in the changes made to the Amnesia ADR in this PR #4994

@cmwaters
Copy link
Contributor Author

Reopening as there are still elements to this issue that are outstanding as outlined here:

// TODO: Refactor the Evidence type to not contain a list since we only ever
// send and receive one piece of evidence at a time. Or potentially consider
// batching evidence.
//
// see: https://github.com/tendermint/tendermint/issues/4729

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:evidence Component: Evidence
Projects
None yet
2 participants