Skip to content

Do we need to generate Evidence for provably invalid messages? #39

@fjarri

Description

@fjarri

We currently distinguish "provable" errors that can occur when we receive a message - that is, some fault that is not only attributable, but can be proven to have been caused by some party. The question is: why do we care?

If some node is actively malicious and for some reason wants to send a garbage message, it can just send garbage (say, a message with an incorrect signature), or not send anything at all. Why expose itself by signing an invalid message and thus making a verifiable offense? The only attack vector I see here is that a message with a verifiable offense will take more time to process (everything needs to be checked, evidence generated etc), but DoS seems unlikely since the set of nodes that can possibly send messages is already limited at the start of the protocol.

Another possibility is a node sending an invalid message by mistake (e.g., running an old version of the code). This will probably happen more often in real-life applications than an attack. On the other hand, it seems strange to punish nodes more harshly for negligence compared to malicious actions.

Of course, we still need correctness proofs, which are used to identify a malicious party at finalization time, that is when there is no specific message known that triggered an error.

If we do not in fact need to generate evidence of malicious actions when receiving messages, it will greatly simplify the session logic (which is already getting complicated).

Metadata

Metadata

Assignees

No one assigned

    Labels

    APIInvolves backwards-incompatible changes of the public APIsecurityCounteracting malicious behavior

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions