BEP Idea: Punish proposers who propose bad blocks
- Dominant language
- Shell
- Stars
- 33
- Forks
- 24
- PR merge metrics
- No merged PRs in 30d
Description
For background, see https://github.com/tendermint/tendermint/issues/2175#issuecomment-420787638 including that whole issue, not just the comment.
We must be careful, since proposing a bad block might not mean that a proposer (node) is malicious. In fact, our current code for CheckTx allows a double-spending transaction to get into the mempool, if it came _after_ the last block, and once a transaction gets into the mempool, it soon ends up in a proposed block.
The reason is that our current code for CheckTx assumes the "state of the world" is the state at the end of the last block, _not including transactions that have been added to the mempool since then_. That will have to be changed if we want to have any hope of detecting truly malicious block-proposers.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the referenced Tendermint issue and comment, then trace the current CheckTx and mempool behavior described here. Clarify how transactions after the last block affect proposed blocks and define when a proposer should be considered malicious. Done means the proposal specifies detection and punishment criteria without penalizing valid proposals caused by mempool state.
Written by the indexing model from the issue text.
Assessment
- Domain
- blockchain, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100