bigchaindb / bigchaindb/BEPs

BEP Idea: Punish proposers who propose bad blocks

Open
#84 0 comments 0 reactions 0 assignees View on GitHub
BEP idea
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.