Rule
signature-key-identity-exclusion-review
Review unknown native signature keys without modeled exact identity exclusion.
Specimen 54 of 96 · Other active opt-ins / Authorization, identity and membership
- Severity
- info
- Confidence
- varies
- Maturity
- experimental
- Selection
- Opt-in
- Policy intent
- not required
- Release
- v0.1.1
- Engine facts used
canonical-native-verifier-operandscomplete-original-successful-historiestyped-immutable-key-exclusion
Selection and scope#
Not selected by default. Select it with --detectors or the detectors list in nightshade.json. Either one replaces profile selection, so list every rule you want.
./.nightshade/node_modules/.bin/nightshade ./contracts --detectors signature-key-identity-exclusion-review
./.nightshade/node_modules/.bin/nightshade detector show signature-key-identity-exclusion-reviewThe first command runs only this rule; --detectors takes a comma-separated list. The second prints the rule's metadata from your installed version.
Severity is review priority. It does not express exploitability or impact. Confidence is detector metadata, not a probability. All built-in rules are experimental.
Compiler scope: the engine supports the pinned profiles 0.28.0, 0.29.0, 0.30.0, 0.31.1, 0.33.0-rc.2, 0.34.0, 0.35.0-rc.1 and 0.35.0, with ZKIR2 by default. Support for this rule can be narrower; the rule documentation below states any narrower scope.
Corpus checks#
Synthetic corpus checks for this rule in the 0.1.1 proof run. A check counts only with compiler acceptance and complete analysis.
| Positive detected | Corrected quiet | Lookalike quiet | Other negative quiet | Incomplete |
|---|---|---|---|---|
| 3/3 | 3/3 | 2/5 | 1/1 | 0 |
Deviations recorded for this rule:
| Case | Kind | Expected to observed lines | Issue |
|---|---|---|---|
| manifest.json / signatureIdentityExclusion46/drafts/signature46/caller-key/lookalike.compact | lookalike | [5,9] to [5,9] | control hit |
| manifest.json / signatureIdentityExclusion46/drafts/signature46/persistent-key/lookalike.compact | lookalike | [12,17] to [12,17] | control hit |
| manifest.json / signatureIdentityExclusion46/drafts/signature46/counter/lookalike.compact | lookalike | [44,45] to [44,45] | control hit |
These are behavior checks on synthetic fixtures, not a precision or recall estimate. See evaluation.
Rule documentation#
From docs/detectors/signature-key-identity-exclusion-review.md at v0.1.1.
Availability: opt-in, informational severity, high confidence in the reported source relationship. No policy required.
Review an unknown caller key or an unknown whole persistent Cell snapshot passed to the canonical native Jubjub Schnorr or secp256k1 ECDSA verifier. A finding says that a complete original modeled successful history contains no modeled mandatory caller or internal check excluding the identity of the exact immutable key on its own curve. Message-only checks retain the key obligation. An application namesake verifier is outside scope.
This does not establish that the key is identity, that an identity input could satisfy the other checks, that enrollment is unsafe, or that a signature is mandatory. Curve membership, subgroup validity, sole authorization, concrete feasibility and application impact remain unproved. Trusted initialization or application policy can make the observation intentional. A check in a separate enrollment transaction cannot validate an unknown later storage snapshot without a complete storage invariant.
The observer captures caller-refined arguments in evaluation order before the callee adds constraints, then retains the invocation only on its successful history. Imported aliases, ordinary helpers, callbacks and summary replay use the ordinary transfer engine. Empty callback sequences retain zero-iteration behavior. Exact key inequalities, mandatory equalities and native identity-to-identity ecMul/ecNeg observations are joined only within that history. An enforced nonidentity cofactor result excludes identity of that exact Jubjub input; it proves no curve or subgroup property. Native generator nonidentity is evidence about its output only. Coordinate checks or derived verifier points cannot validate an input key by inversion. Guards on another key, a different Cell revision or a mutually exclusive history cannot discharge the obligation.
The supported exact profiles are Compact 0.34.0/ZKIR2 for Schnorr and 0.34.0/ZKIR3 for both families, plus 0.35.0 and 0.35.0-rc.1/ZKIR2 Schnorr. The latter source-pinned verifiers reject identity internally and are quiet. ZKIR3 is currently qualified only for 0.34.0; this rule supplies no guessed 0.35 ECDSA model. Unsupported profiles, relevant opaque predicates, lost provenance, unknown collection or struct projections, transformed verification operands, checkpoints, external composition, unfinished histories and exhausted allowances produce incomplete diagnostics. Known point constants are outside this unknown-key review. The default identity-signature-key, Jubjub enrollment and signed-input rules keep their existing contracts and observation cost.
Preparation, observation, retained metadata, immutable keys, typed predicate closure and finding emission share the unchanged 40000 steps per entry, 256 paths per entry, 50000 cumulative abstract values per rule. There is no separate proof allowance or retry. Experimental Counter-query mode lacks this exact observation contract and reports unavailable evidence when selected.
From a built source checkout, select this rule with node dist/src/cli.js scan examples/review/contract.compact --detectors signature-key-identity-exclusion-review --zkir-version 3. Inspect its CLI metadata with node dist/src/cli.js detector show signature-key-identity-exclusion-review --json.
Suppress a match#
If a match is intentional, suppress it on the line before with the exact rule ID and a reason of at least eight characters:
// nightshade-disable-next-line signature-key-identity-exclusion-review -- Reason this match is intentionalDiagnostics cannot be suppressed, and an unmatched directive for a selected rule makes analysis incomplete. See configuration for fingerprint suppressions and baselines.