Skip to content

[TRBFV - F5] Threshold-Zero Construction #124

Description

@0xjei

Assessment: Partially valid; strongest against ShareManager, weaker against generic Shamir.
Confirmed:

  • ShareManager::new does not call validate_threshold_config.
  • It is publicly re-exported.
  • Its fields are public, allowing constructor checks to be bypassed.
  • ShamirSecretSharing::split accepts threshold = 0.
  • A degree-zero sharing gives every recipient the secret.
    For ShareManager, this violates trBFV’s required honest-majority configuration. It should call validate_threshold_config, and its fields should be private so callers cannot construct invalid managers directly.
    For ShamirSecretSharing, threshold zero is mathematically defined, though it provides no secrecy. A generic Shamir primitive does not inherently need threshold == (n-1)/2; thresholds larger than half can also be valid in non-robust use cases. Therefore applying the complete trBFV threshold policy inside the generic Shamir type would be unnecessarily restrictive.
    A better generic validation policy is:
    1 <= threshold < share_amount
    prime is valid
    share_amount fits the evaluation domain
    The stricter honest-majority condition belongs in TRBFV and ShareManager.
    Verdict: Valid Medium defense-in-depth for ShareManager; Low/API-safety for ShamirSecretSharing. The proposed fix should not impose the trBFV honest-majority threshold on every generic Shamir use.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions