Skip to content

Improve the ACI proving tools and simplify the mechanism - #86

Draft
h4x3rotab wants to merge 2 commits into
mainfrom
aci-protocol-usability
Draft

Improve the ACI proving tools and simplify the mechanism#86
h4x3rotab wants to merge 2 commits into
mainfrom
aci-protocol-usability

Conversation

@h4x3rotab

Copy link
Copy Markdown
Contributor

A self-contained rework of the ACI proving surface, focused on usability.
(No Privatemode upstream — that lives on its own branch.)

What changes

  • Simplify the mechanism. The keyset is the identity — no identity key,
    endorsement, revocation, or epoch. Artifacts verify as served bytes (JCS
    is a producer-side convenience, never a verifier step). One signature
    suite (ed25519) and one E2EE suite (sealed-body X25519 v3),
    content-addressed sessions, and a six-check verification procedure.
  • Verify the compose measurement. The report publishes app_compose,
    and verification replays the event log to the quote's RTMR3 and checks
    sha256(app_compose).
  • aci CLI (verify / audit / chat / serve) reusing the
    gateway's own verification code.
  • @phala/aci-verifier library — the browser verifier folded into an
    importable package with one-call verifyService and hardware-quote
    verification via @phala/dcap-qvl.
  • Byte-exact test vectors regenerated and pinned in both Rust and
    TypeScript.
  • Docs re-layered around a five-minute path and an executable
    quickstart; spec prose tightened to plain present tense (no normative
    changes).

Tests

358 Rust + 56 TypeScript tests green; fmt and clippy clean.

🤖 Generated with Claude Code

h4x3rotab and others added 2 commits July 14, 2026 09:36
A single, self-contained change to the proving surface (no Privatemode
upstream — that lives on its own branch):

- Simplify the ACI mechanism: the keyset is the identity (no identity key,
  endorsement, revocation, or epoch), artifacts verify as served bytes
  (JCS is a producer-side convenience, never a verifier step), one
  signature suite (ed25519) and one E2EE suite (sealed-body X25519 v3),
  content-addressed sessions, and a six-check verification procedure.
- Verify the compose measurement: the report publishes app_compose and L2.4
  replays the event log to the quote's RTMR3, checking sha256(app_compose).
- Ship the `aci` CLI (verify / audit / chat / serve) reusing the gateway's
  own verification code, and fold the browser verifier into the importable
  @phala/aci-verifier library with one-call verifyService and hardware-quote
  verification via @phala/dcap-qvl.
- Regenerate the byte-exact test vectors, pinned in both Rust and TypeScript.
- Re-layer the docs around a five-minute path and an executable quickstart.

358 Rust + 56 TypeScript tests green; fmt and clippy clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Plain present-tense wording for the channel-binding, verifier-profile, and
serialization sections; no normative changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant