open-standards/jcp/jcp-rs/crates/jcp-cli
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 76b55fc4d2 jcp v0.2: group work — delegation control, sharded budgets, rotation, threshold actors, signed wire, receipt-replay
The group-work layer: everything an orchestrator, a team of workers, or a pair
of partnering agents needs, enforced by the same deterministic runtime.

- Delegation control (SPEC §4.4): grants carry delegate_depth — absent =
  unlimited, 0 = leaf-only. Depth narrows every hop (child = parent − 1);
  attenuate() refuses delegation of a leaf-only grant and verify_chain()
  refuses forged deepening. An orchestrator's workers cannot mint sub-workers.

- Sharded budgets (SPEC §4.5): shard() splits a grant into siblings whose
  budgets MUST sum within the parent — one shard per enforcement point, each
  enforced locally. Distributed budget state with no consensus: conservation
  by mint-time arithmetic. Receipt-settled channels noted as OPTIONAL profile.

- Identity continuity (SPEC §2.1): KERI-style pre-committed rotation. KeyEvent
  log where rotation N is signed by the NEW current key, which must hash to
  event N−1's next_hash. A thief holding the current key cannot rotate the
  identity away; an owner who lost it still can. Identity = inception DID,
  stable for life. Trust roots made normative: enforcement points are
  configured with the root issuers they honor (authorized_keys shape, no CA).

- Threshold actors (SPEC §2.2): jcp-threshold (10th crate) — FROST (RFC 9591)
  k-of-n Ed25519. The group key is an ordinary did:key, so a 2-of-3 team
  issues, holds, delegates, and signs wire requests with nothing else in JCP
  changing. The two-agent rule for irreversible actions, refused by
  arithmetic, not policy.

- Caller-signed wire (SPEC §11): WireRequest now carries the caller's Ed25519
  signature over its canonical bytes; the endpoint authenticates from the
  request itself, denies impersonation bad-signature, and seals the refusal.
  A threshold aggregate signs the same field, indistinguishable on the wire.

- Receipt stream as WAL + group accounting (SPEC §8.1–§8.2): extract() parses
  a verified envelope's signed core; replay_spend() + Runtime::restore()
  rebuild a crashed enforcement point's budget state from its own sealed
  output; aggregate() keys a team's receipts by (grant, subject) for
  per-worker cost attribution from evidence, counting (not skipping) receipts
  that fail verification.

Conformance grows to C1–C14 (threshold caller over the wire, runtime restored
from its own receipts, depth/shard/rotation invariants). SPEC bumped to
v0.2.0 draft; published vectors unchanged byte-for-byte. 58 tests, clippy
clean.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-10 04:07:02 -04:00
..
src jcp v0.2: group work — delegation control, sharded budgets, rotation, threshold actors, signed wire, receipt-replay 2026-06-10 04:07:02 -04:00
Cargo.toml jcp: energy backends, revocation + chain enforcement, jcp/1 wire binding 2026-06-10 02:00:58 -04:00