dusk-blockchain
dusk-blockchain copied to clipboard
AggAgreement may introduce potential attack vector
Describe what you want implemented
Prevent adversaries to flood nodes with high priority messages (i.e. AggrAgreement
)
Describe "Why" this is needed
AggrAgreement
are used to shortcircuit the consensus in case a node detects that a block should be accepted. Since those messages should be verified as well, an adversary could exploit the high priority to spam nodes and prevent normal (low priority) Agreement
to be processed.
Describe alternatives you've considered Various solutions could be assessed, from processing low-priority messages on a pseudo-random base, to flagging adversaries at Kadcast level and drop their messages.
Additional context
The Flush
method of the consensus.Queue
returns events ordered by priority
Another potential solution would be to sanity check the AggrAgreement
in the AggrAgreementChan
in the same fashion of how we sanity check Candidate blocks from the wire before processing them.