Update rejected events discussion

erikj/state_res_rejections
Erik Johnston 6 years ago
parent 3d3b77ea7e
commit 4790432e50

@ -446,8 +446,25 @@ We include rejected events in the "auth chain difference" as they can still be
used to effect the ordering of events. This in turn means care must be taken to
filter rejected events out when applying the iterative auth checks.
An alternative would be to include rejected events during the iterative auth
checks, accepting that previously rejected events may be un-rejected. This has
the advantage that if different servers have different views of which events are
rejected they will be more likely to converge (rather than diverge). The
downside is the added complexity of un-rejecting events (on top of double
checking that this doesn't add any security vulnerabilities).
We do, however, use rejected events when looking at the power level the sender
of an event has, in that we don't check if the event's power levels auth event
has been rejected or not. This is for ease of implementation and to help the
algorithm be more "convergent" in the face of different views of rejections.
Using rejected auth events here should be safe, as any revocation of power will
appear before the event in the iterative auth checks (due to the reverse power
topological ordering, and the fact that the revocation must be sent by a user
with a higher power level).
Note that no events rejected due to failure to auth against their auth chain
should appear in the process, as they should not appear in state.
should appear in the process, as they should not appear in state (an the
algorithm only uses events in one of the state sets or their auth events).
### Attack Vectors

Loading…
Cancel
Save