Skip to content

Off-chain C2→C4 check blames a dealer only when it matches no recipient #2022

Description

@hmzakhalid

Summary

The off-chain C2→C4 commitment check blames a dealer only when its commitments match no recipient.

Evidence

  • crates/slashing/src/commitment_consistency/workflow.rs:372-449 (LinkScope::SourceMustExistInTargets): for each C2a/C2b source, found = all_targets.iter().any(|tgt| link.check_consistency(…)). A mismatch is recorded only when found is false.
  • check_consistency compares the source row for that specific recipient (c2_to_c4/mod.rs:196-230, exact match of all L values).
  • So a dealer with correct commitments for one recipient and wrong commitments for the others is not accused off-chain.
  • The module docs say that fault is attributed when the commitments "for the C4 recipient do not exactly match". The aggregation circuit still checks every pair, so a bad dealer makes the DKG proof fail instead of causing an accusation.

Question

Is the any rule intended (for example, to tolerate missing C4 targets)? If not, the check can require a match for every recipient on the roster.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requestedsecurityRelevant to security

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions