spacemeshos / go-spacemesh

Go Implementation of the Spacemesh protocol full node. 💾⏰💪
https://spacemesh.io
MIT License
748 stars 211 forks source link

prevent dos'ing network with equivocating data #4632

Open countvonzero opened 1 year ago

countvonzero commented 1 year ago

Description

currently data object reference other data for various reasons.

when equivocation is detected, we should stop accepting atxs / ballots from such malicious identity, unless these objects are already referenced by other objects from honest identities.

Actual Behavior

Expected Behavior

dshulyak commented 1 year ago

on gossip path drop any atxs from malicious identities, including second one (when proof is generated). on sync path request dependencies only if original object passed validation (eligibility for ballot, nipost for atx) and identity didn't equivocate. this can be accomplished by reordering validation