Problem
Issue #37 put the foundation to detecting and preventing equivocation by the primary batcher.
It does so by inspecting the state only in every consensus round.
There is a gap - a malicious primary can cause F+1 BAFs to be submitted in one round, which would result in a BA; and then F+1 additional BAFs in a second round, which would result in a BA; and then a third BAF that is pending in a third round.
That is, equivocation is detected only if in the state there are equivocating BAFs. BAFs that matured into a BA do not count.
Problem
Issue #37 put the foundation to detecting and preventing equivocation by the primary batcher.
It does so by inspecting the state only in every consensus round.
There is a gap - a malicious primary can cause F+1 BAFs to be submitted in one round, which would result in a BA; and then F+1 additional BAFs in a second round, which would result in a BA; and then a third BAF that is pending in a third round.
That is, equivocation is detected only if in the state there are equivocating BAFs. BAFs that matured into a BA do not count.