Detect and handle malice: UnprovableMissingResponse

Description

If a peer can convince himself that another peer is malicious but doesn't have sufficient evidence to convince other nodes that that peer is malicious, PARSEC can still let the routing layer know of the issue. routing can then call vote_for with a payload of UnprovableAccusation. Unlike some other accusations that can be proven to other peers, we will need to accumulate a super-majority of UnprovableAccusation without having the opportunity to echo an accusation on the face of it. If consensus is reached on UnprovableAccusation(peer), it means that the malicious node personally offended a super-majority of other nodes, so it is fair to kick them out (routing's decision).

MissingResponse:
If I send a request to someone and they come back to me with another response, I know they acted maliciously.
It's my word against theirs, though as nothing separates this situation from my hiding some of their gossip events (as I create the sync event that records their response).

Environment

None

Assignee

Unassigned

Reporter

Qi Ma

Start date

2018/08/10

End date

2018/08/10

Task progress

None

Baseline start date

None

Baseline end date

None

Epic Link

Components

Priority

Minor
Configure