Figure 8 — Encrypted Capability Tunnel Between Meta Machines
Two Meta Machines with matching namespace entries (shared key material), connected by an encrypted tunnel. Shows CAP.LOAD key access, CALL encryption, and GC sweep revocation path.
TWO META MACHINES WITH MATCHING KEY MATERIAL
META MACHINE A (Kenneth)
CTMM Sim-64 • Custom ISA
Thread Registers
CR8
me (Thread identity)
CR1
mymother (Outform, E)
CR0
tunnel key (Inform, R)
Namespace Entry: tunnel_key (index 7)
Word 0
Location: crypto key data ptr
Word 1
Limit: key length (256-bit)
Word 2
Seals:
MAC
|
ver=3
|
G=0
Accessed via CAP.LOAD CR0, #7 (R permission)
META MACHINE B (Priscilla)
Capability • RISC-V base ISA
Thread Registers
CR8
me (Priscilla)
CR1
myson (Outform, E)
CR0
tunnel key (Inform, R)
Namespace Entry: tunnel_key (index 4)
Word 0
Location: crypto key data ptr
Word 1
Limit: key length (256-bit)
Word 2
Seals:
MAC
|
ver=3
|
G=0
Accessed via CAP.LOAD CR0, #4 (R permission)
same key material
ENCRYPTED TUNNEL — CALL SEQUENCE
1. CAP.LOAD CR0, #7
R permission → reads tunnel key from namespace
mLoad validates
perm → bounds → MAC → G → shadow
Key material in CR0
2. CALL CR1 (mymother)
E permission on Outform GT → RPC tunnel
Encrypt payload
AES-256 with key from CR0
🔒 Encrypted RPC
═══ Encrypted Point-to-Point Tunnel ═══
HTTPS / capability protocol
Machine A ▶
◀ Machine B
3. Machine B receives → mLoad validates Outform GT on myson
Decrypts with matching key from own namespace entry → delivers to Priscilla's thread
GC SWEEP REVOCATION PATH
Deterministic garbage collection kills the tunnel by version bump
Phase 1: MARK
GC sets G=1 on all namespace entries
including tunnel_key entry
tunnel_key: G=1 (marked)
Phase 2: SCAN
Walk DNA tree via mLoad
Reachable entries: reset G=0
If reachable: G=0 (alive)
Phase 3: SWEEP
Entries still G=1 = garbage
Version bump invalidates GT
tunnel_key: ver 3 → 4 ☠
REVOCATION CASCADE
BEFORE: GT version matches namespace entry
GT in CR0: index=7, ver=3 — Entry: ver=3 ✔ MAC valid ✔
sweep
AFTER: GT version mismatch → FAULT
GT in CR0: index=7, ver=3 — Entry: ver=4 ✖ MAC invalid ✖
Tunnel killed: next CAP.LOAD or CALL using this GT → FAULT
• mLoad detects version mismatch (GT says 3, entry says 4) → MAC recomputation fails
• Both machines must renegotiate — old key material is garbage collected and overwritten
KEY INSIGHTS
Tunnel key is a standard namespace entry:
No special-case cryptographic subsystem. The tunnel key is a 3-word namespace descriptor (Location, Limit, Seals)
accessed via the same mLoad path as any other resource. R permission on the GT grants read access to the key data.
Revocation is deterministic and total:
GC sweep bumps the version on unreachable entries. Every GT referencing the old version becomes invalid. The tunnel
dies instantly — no "revocation list" to distribute, no race condition, no stale reference. One version bump = total kill.
Cross-architecture transparency:
Machine A (CTMM, 64-bit) and Machine B (Capability, 32-bit) use the same capability protocol. The ABI descriptor
in each namespace entry maps registers between architectures. Network cost (~10ms) dwarfs ABI translation (~50ns).