{
  "schema_version": "ecdlp-track-v1",
  "track_id": "shor-ecdlp-5bit-v1",
  "spec_version": "2026-06-18-oracle1",
  "status": "active",
  "title": "5-bit Shor ECDLP variable-Q oracle",
  "curve": {
    "name": "toy-ecdlp-5bit",
    "field_modulus": "0x1f",
    "a": "0x0b",
    "b": "0x07",
    "group_order": "31",
    "generator_x": "0x00",
    "generator_y": "0x0a",
    "example_q_scalar": "37",
    "example_q_scalar_mod_order": "6",
    "example_q_x": "0x1c",
    "example_q_y": "0x03"
  },
  "operation": "|a>|b>|Q>|0> -> |a>|b>|Q>|aG + bQ>",
  "coordinate_model": "5bit_affine_variable_q_with_infinity_flag",
  "point_at_infinity": "encoded_with_flag",
  "artifact_schema": "ecdlp-benchmark-package-metadata-v1",
  "submission_type": "benchmark_package_metadata",
  "score_model": "primitive-ccx-ccz-v1",
  "rank_gate": "trusted_9024_package",
  "primary_score": "round(metrics.toffoli) * metrics.qubits",
  "input_registers": [
    {
      "name": "a",
      "bits": 5,
      "role": "input",
      "description": "scalar a, interpreted modulo 31"
    },
    {
      "name": "b",
      "bits": 5,
      "role": "input",
      "description": "scalar b, interpreted modulo 31"
    },
    {
      "name": "q_x",
      "bits": 5,
      "role": "input",
      "description": "input Q affine x coordinate"
    },
    {
      "name": "q_y",
      "bits": 5,
      "role": "input",
      "description": "input Q affine y coordinate"
    },
    {
      "name": "q_inf",
      "bits": 1,
      "role": "input",
      "description": "input Q point-at-infinity flag"
    }
  ],
  "output_registers": [
    {
      "name": "r_x",
      "bits": 5,
      "role": "output",
      "description": "output R affine x coordinate"
    },
    {
      "name": "r_y",
      "bits": 5,
      "role": "output",
      "description": "output R affine y coordinate"
    },
    {
      "name": "r_inf",
      "bits": 1,
      "role": "output",
      "description": "output R point-at-infinity flag"
    }
  ],
  "ancilla_contract": "trusted eval_circuit must report oracle correctness, phase cleanliness, and ancilla cleanup across all ranked shots",
  "submission_package": {
    "schema_version": 1,
    "benchmark": "shor-ecdlp-5bit-v1",
    "manifest": "benchmark.json",
    "score_path": "score.json",
    "archive": "submission.tar.gz",
    "note": "submission-note.md",
    "artifact": "ops.bin",
    "editable_paths": [
      "src/shor_oracle"
    ],
    "max_note_bytes": 10240,
    "max_archive_bytes": 26214400,
    "score_model": "primitive-ccx-ccz-v1",
    "validation_shots": 9024,
    "validation_gate": "fiat_shamir_shor_ecdlp_5bit_variable_q_oracle",
    "required_validation_checks": [
      "oracle correctness",
      "input preservation",
      "phase cleanliness",
      "ancilla cleanup"
    ],
    "description": "Contenders submit the dist/submission-metadata.json and dist/submission-note.md produced by tools/package-submission.ps1 in the 5-bit baseline repository. The source archive is bounded to benchmark.json editablePaths."
  },
  "submission_validation": {
    "deterministic_shots": 9024,
    "generator": "fiat_shamir_shor_ecdlp_5bit_variable_q_oracle",
    "seed_hash": "SHAKE256",
    "seed_domain": "ecdlp-shor-ecdlp-5bit-variable-q-oracle-fiat-shamir-v1",
    "description": "The trusted Rust evaluator in the baseline repository validates 9024 Fiat-Shamir variable-Q Shor ECDLP oracle shots and writes score.json before package metadata is submitted."
  },
  "baseline": {
    "name": "direct_reversible_lookup_oracle_baseline",
    "repository": "https://github.com/ecdlp-contest/ecdlp-5-bit",
    "manifest_path": "benchmark.json",
    "score_path": "score.json",
    "artifact": "ops.bin",
    "score_model": "primitive-ccx-ccz-v1",
    "score": 7529550,
    "metrics": {
      "toffoli": 100394,
      "ccx": 100394,
      "ccz": 0,
      "clifford": 13146,
      "qubits": 75,
      "ops": 174472,
      "score": 7529550
    },
    "validation": {
      "shots": 9024,
      "gate": "fiat_shamir_shor_ecdlp_5bit_variable_q_oracle",
      "checks": [
        "oracle correctness",
        "input preservation",
        "phase cleanliness",
        "ancilla cleanup"
      ]
    }
  },
  "active_scope": {
    "track_number": 1,
    "scored_path": "src/shor_oracle",
    "reserved_unscored_paths": [
      "src/qft",
      "src/full_shor"
    ],
    "description": "Only Track 1, the Shor oracle, is active. QFT and full-Shor folders are reserved for future tracks and are not accepted by this server configuration."
  },
  "allowed_operations": []
}