Open countvonzero opened 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
Description
currently data object reference other data for various reasons.
each atxs reference other atx for its
each ballot reference other ballot for its
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
equivocating atxs/ballots should not be saved
equivocating atxs/ballots should not be gossiped
malfeasance proof is saved and gossiped only when the first equivocating atx/ballot is received
equivocating atxs/ballots should only be saved on the sync path, where atxs/ballots are fetched according to existing dependencies from honest atxs/ballot.
less importantly, given the same tick height, prefer own atx as positioning atx.