Skip to content

H-7: challenger /24 subnets are self-reported, so the diversity floor is fabricable (was: capability proofs do not prove the capability) #605

Description

@defenwycke

This is a redesign, not a patch — it needs a design decision before code.

  • Archive +5 is headers-only. Every response field is derivable from the public 80-byte header; tx_count is self-reported; the ArchiveTx path is dead. A pruned node, an SPV client or an on-demand proxy passes every honest challenger, no collusion required.
  • GhostPay +4 is unanchored self-attestation. The challenger checks field shapes and nonce binding only; epoch_state_hash is never compared to anything; recipient re-derivation cannot return Fail by construction; the anchoring epoch_proof is None. A node with no L2 passes with a random hex string.
  • Stratum +3 is a bare TCP connect. nc -l 3333 passes. The handshake-capable StratumVerifier exists but is unused in the challenge path.

Compounding this: challenger /24s are self-reported and never probed (H-7), and the payout-gating verification_ledger stores passed verbatim with no evidence the challenger probed anything (H-8). Griefing resistance rests on distinct-subnet majorities that are fabricable.

Direction: archive → demand tx-level data with merkle-branch verification (revive the dead ArchiveTx path); ghostpay → anchor epoch_state_hash in a fleet-visible epoch commitment; stratum → complete a real mining.subscribe in the probe; challengers → count toward diversity only after passing a reachability probe at the claimed address; ledger verdicts → carry a target-signed artifact.

Until then these three are honesty-graded, not proof-graded, and the docs should say so. Blocks multi-operator.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions