Skip to content

Charge Authority v1 reviewer map ​

Audience: Halborn / NCC / equivalent.
Purpose: Attack each frozen claim intelligently.
Companion freeze: charge-authority-v1-freeze.md
60-second end-to-end map: independent-review-prep.md §60-second map

Charge Authority v1 is feature-frozen and claim-frozen. It is ready for independent review, not “audited” and not “formally verified.”


Claim 1: Authority ↔ intent continuity ​

Normative textcharge-authority.md claim 1; qzr-1.md anti-downgrade § (fingerprint authority_id / execution_intent_digest)
Authoritative fieldsbilling.billing_verify_fingerprint.authority_id (vs recomputed grant identity); billing.billing_verify_fingerprint.execution_intent_digest (vs meter intent projection and mirrors)
Negative controls0x vs bare digest still binds; mutable wire authority_id lie fails vs recomputed id; wrong grant / meter mismatch / digest split fail Minimal and Standard
Test fileprotocol/test/authority-intent-binding.test.js (+ §4.4 committed-values.test.js for representation consistency)
Expected failurePresent identity/intent mismatch → authority_continuity / execution_intent_binding = FAIL at every profile; missing required Standard commitments → NOT_CHECKED and Standard FAIL
Non-claimsReceipt authority: PASS is not MAY_EXECUTE; digest on wire alone does not prove CAS

Claim 2: Fingerprint charge ↔ authority constraints ​

Normative textcharge-authority.md claim 2; max_charge_micros section
Authoritative fieldsbilling.billing_verify_fingerprint.expected_charge_micros only for the cap; grant max_charge_micros, tariff id/version/digest, unit_price_micros, currency
Negative controlsConvenience/meter under-cap cannot rescue over-cap fingerprint; missing fingerprint charge cannot fall back to meter; string coercion rejected; currency / unit_price / tariff substitution fail; Phase-2 commitments split fails §4.4
Test fileprotocol/test/claim2-charge-constraints.test.js
Expected failureOver-cap or unavailable/malformed fingerprint charge with present cap → QZA_ERR_MAX_CHARGE / authority: FAIL; conflicting mirrors → committed_consistency: FAIL
Non-claimsTaxes/credits outside the canonical integer; tariff_snapshot max is distinct from grant cap

Claim 3: Consumption only from trusted evidence ​

Normative textcharge-authority.md claim 3; consumption evidence table
Authoritative fieldsTrusted-channel row: authority_id + event_id + execution_intent_digest → CONSUMED_BY_THIS_EVENT
Negative controlsNo log → NOT_CHECKED; empty → AVAILABLE/FAIL; wrong authority/event/intent → FAIL; bare event_id when intent expected → FAIL; unsigned map forgery is a trust-channel control, not portable crypto
Test fileprotocol/test/claim3-consumption-evidence.test.js
Expected failureauthority_consumption_check = FAIL fails Standard; PASS only for THIS_EVENT with matching intent when digest expected
Non-claimsUnsigned consumedAuthorityIds is not self-authenticating; portable signed ConsumptionEvidence is out of v1 (v1.1 candidate)

Claim 4: Path enforcement is an integrator non-claim ​

Normative textcharge-authority.md claim 4; freeze boundary; TOCTOU / gateway section
Authoritative fieldsNone on the receipt for “path enforced.” Only preflightChargeAuthority may set execution_eligible / may_execute true
Negative controlsSkip preflight → attest reject; mutate outbound action after preflight → bind fail; revoke before receipt → REVOKED with may_execute false; receipt authority PASS still may_execute false; open_signature blocked; read-only evaluator cannot flip eligibility; gateway_enforced / may_execute mirrors ignored by reportOffline
Test fileprotocol/test/claim4-path-enforcement.test.js
Expected failureAny attempt to manufacture post-facto MAY_EXECUTE must leave receipt reports at may_execute = false / execution_eligible = false
Non-claimsQuantZK does not stop out-of-band vendor calls; historical validity ≠ permission to execute; gateway mirrors never upgrade the claim

Cross-cutting: §4.4 committed-value dominance ​

Normative textqzr-1.md §4.4; qzr-1-section-4-4-freeze.md
Authoritative artifactauthoritative-field-registry.json v1 (1a2e01b8…); vectors 138b56b7…
Negative controlsWrong authoritative source; self-authorizing schema; exact artifact pin; Minimal downgrade on conflicts
Test filesprotocol/test/committed-values.test.js; protocol/conformance/qzr-1/run_committed_values.py
Expected failureConflicting representations → committed_consistency: FAIL at every profile
Non-claimsRegistry consistency does not replace grant-signature derivation or vkey correspondence

Suggested attack order ​

  1. Split-brain representations (§4.4 + Claim 1/2)
  2. Cap / coercion / missing fingerprint charge (Claim 2)
  3. Consumption classification and “authenticated” meaning (Claim 3)
  4. Manufacture MAY_EXECUTE from receipt or mirrors (Claim 4)
  5. Profile downgrade (Minimal vs Standard) on present conflicts

Reproduce ​

bash
cd protocol && npm run test:sdk && npm run test:committed-values

Pin commands: see charge-authority-v1-freeze.md.

QuantZK Control docs: gateway, reconciliation, and optional portable evidence.