Skip to content

Charge Authority v1 freeze ​

Status: Feature-frozen, claim-frozen, adversarially exercised, ready for independent review.
Not claimed: audited, formally verified, or Halborn-complete.
Freeze label: charge-authority-v1-freeze
Date: 2026-08-20

Verdict ​

Charge Authority v1 is ready for a serious third party to try to break. Claims 1–3 each surfaced real bugs before freeze. Claim 4 pinned the overclaim boundary where “historically valid” must not become “was allowed to execute.”

Claim set (frozen) ​

#Claim
1Signed authority bound to fingerprint-committed identity and execution intent
2Fingerprint-committed charge satisfies authority constraints
3Consumption PASS only from a trusted evidence channel for this authority + event + intent
4Request-path enforcement is an integrator non-claim; no post-facto MAY_EXECUTE

Anything new (signed ConsumptionEvidence, reservation/release, multi-use grants, in-circuit intent binding) belongs in v1.1 / v2, never in frozen v1 semantics.

Artifact digests (SHA-256, exact UTF-8 file bytes) ​

Specs ​

FileSHA-256
protocol/docs/charge-authority.mdcca3cba52b668a4a565684f41db48f004522df7408f28a18dcaf0d34514524b7
protocol/docs/qzr-1.md00fca3df1faeb4170a1b689d24f09b380bda00977993fbadf406a7ca35f5e724
protocol/docs/qzr-1-section-4-4-freeze.md60de678ea0b0256a5b2faba8f3acff88aaa206f13fb007f118d0fa79654aad17
protocol/docs/charge-authority-v1-reviewer-map.md32e9cdca99c6f4025d04b3848f6066658719207b12fa98f92b44b66ec0ee324c

Language-neutral §4.4 artifacts ​

FileSHA-256
protocol/conformance/qzr-1/authoritative-field-registry.json1a2e01b8e2a89bf530da4ad87fc185b29f5915882a6fefa9e5dde41c4a762676
protocol/conformance/qzr-1/committed-value-vectors.json138b56b72f2874c869cd44b0ba46c70c6be99b09a48bb47c2f85a954b8973dbb

Claim suites ​

FileSHA-256
protocol/test/committed-values.test.js25cf62640770ef53cc8f04a0b1961ee08ebc121644514a3cbb110cb452b1627d
protocol/test/authority-intent-binding.test.js4aa09f7cb939165d0dd9dd923a2c857da662905fb25cd9f55d3b2b04e198e210
protocol/test/claim2-charge-constraints.test.js79ade65beb7ec072cdb7afe58f35689518cd2a125c8fc77fe4ff1cc450e1d91a
protocol/test/claim3-consumption-evidence.test.js62058f216ebc09082a60cf18873f25fd6230ff075d87b468d19cbe86b10fc2c3
protocol/test/claim4-path-enforcement.test.jsd2c824d88341495289b5168957dd162223c3cdf3a6bc3fa5d207e06404d8fc0b

Reference evaluators (supporting TCB) ​

FileSHA-256
protocol/packages/sdk/committedValues.js26e6ab84f450922808e06e80efbcfb856886f0251c5ecacbdcaebbaff61e8884
protocol/packages/sdk/evaluate.jseeee8d90d446d0ad01214254acfa6b697049c0269fb910d8f8b32276d8ee0fe8
protocol/packages/vdi-billing/chargeAuthority.js5ef5b04394f5f8184c3bde5d6705a02912ed607f38645c1b7797c676d4600f3f
protocol/packages/vdi-billing/authorityConsumption.js9e75a8cb798b3ca86b5b8fa18702a56e3cc8a283b7d92ba1634a536fdc882396
protocol/conformance/qzr-1/committed_values.py7987821547f84feb014bf66d8f181dc6e141b13933792ab947baba7b1a1ebf01

Digests are SHA-256(exact UTF-8 file bytes), not JCS. One-byte edits change the pin.

Git tag procedure ​

Working trees may contain unrelated dirty files. Tag only a commit that contains this freeze package and the hashed artifacts above.

bash
# After a focused commit that lands the freeze package:
git tag -a charge-authority-v1-freeze -m "Charge Authority v1: claim-frozen, adversarially exercised"
git rev-parse charge-authority-v1-freeze^{}
# Record that commit SHA in the reviewer packet.

Base HEAD at freeze-doc authoring time (may predate this file’s commit): 2412b3ba4f9001db427a2a35acd057b73c7128fe.

Reproduce ​

bash
cd protocol
npm run test:sdk
npm run test:committed-values
npm run test:qzr1
# Claim suites are included in test:sdk:
#   committed-values, authority-intent-binding,
#   claim2-charge-constraints, claim3-consumption-evidence,
#   claim4-path-enforcement

Verify pins:

bash
cd protocol
shasum -a 256 \
  docs/charge-authority.md \
  docs/qzr-1.md \
  docs/qzr-1-section-4-4-freeze.md \
  docs/charge-authority-v1-freeze.md \
  docs/charge-authority-v1-reviewer-map.md \
  conformance/qzr-1/authoritative-field-registry.json \
  conformance/qzr-1/committed-value-vectors.json \
  test/committed-values.test.js \
  test/authority-intent-binding.test.js \
  test/claim2-charge-constraints.test.js \
  test/claim3-consumption-evidence.test.js \
  test/claim4-path-enforcement.test.js

This freeze document’s own digest is not self-pinned (embedding it would change the bytes). Recompute docs/charge-authority-v1-freeze.md after checkout and record it in the review engagement notes.

Reviewer entry points ​

DocumentRole
charge-authority-v1-reviewer-map.mdClaim → text / fields / controls / tests / non-claims
charge-authority.mdNormative claims and freeze boundary
qzr-1-section-4-4-freeze.md§4.4 registry/vector freeze evidence
independent-review-prep.mdBroader engagement packet outline

Out of v1 (deliberate) ​

  • Signed portable ConsumptionEvidence envelope (v1.1 candidate)
  • reserve → authorize → execute → settle → release
  • Multi-use / cumulative grants
  • In-circuit execution_intent_digest binding
  • Cryptographic proof of gateway path enforcement

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