293 lines
4.8 KiB
Markdown
293 lines
4.8 KiB
Markdown
|
|
This is a good place to stop pushing and start *settling*.
|
|||
|
|
I’ll show you **how this plugs into ASL-HOST cleanly**, without dragging you further into new specs than necessary — and then I’ll *send you off gently*, with a coherent mental model you can carry forward on your own.
|
|||
|
|
|
|||
|
|
What follows is not a new layer. It’s a **proper alignment** of the layers you already defined.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# How the Virgin / Presented Domain Model Plugs into ASL-HOST
|
|||
|
|
|
|||
|
|
## 1. ASL-HOST’s actual responsibility (clarified)
|
|||
|
|
|
|||
|
|
ASL-HOST is **not**:
|
|||
|
|
|
|||
|
|
* A store
|
|||
|
|
* An authority
|
|||
|
|
* A policy engine
|
|||
|
|
* A domain model
|
|||
|
|
|
|||
|
|
ASL-HOST **is**:
|
|||
|
|
|
|||
|
|
> The *execution environment* in which **ASL + PEL semantics are allowed to act on reality**.
|
|||
|
|
|
|||
|
|
So ASL-HOST must provide **three minimal abstractions**:
|
|||
|
|
|
|||
|
|
1. **Local domains** (persistent)
|
|||
|
|
2. **Presented domains** (ephemeral)
|
|||
|
|
3. **Authority state** (virgin → rooted → operational)
|
|||
|
|
|
|||
|
|
Nothing more.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. ASL-HOST domain table (minimal)
|
|||
|
|
|
|||
|
|
ASL-HOST maintains a **domain registry**, not a trust database.
|
|||
|
|
|
|||
|
|
Conceptually:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
DomainRegistry:
|
|||
|
|
local:
|
|||
|
|
- domain_id
|
|||
|
|
role: authority | personal | common
|
|||
|
|
path: /var/lib/asl/...
|
|||
|
|
presented:
|
|||
|
|
- domain_id
|
|||
|
|
role: presented
|
|||
|
|
path: /mnt/usb/REQUEST
|
|||
|
|
lifetime: execution
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
This registry is:
|
|||
|
|
|
|||
|
|
* Created at boot
|
|||
|
|
* Augmented at USB mount
|
|||
|
|
* Consumed by PEL
|
|||
|
|
* Destroyed after execution
|
|||
|
|
|
|||
|
|
No persistence required for presented domains.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. USB intake → ASL-HOST flow (clean)
|
|||
|
|
|
|||
|
|
### Step 1: Host boot
|
|||
|
|
|
|||
|
|
ASL-HOST initializes:
|
|||
|
|
|
|||
|
|
* Authority state
|
|||
|
|
* Local ASL stores
|
|||
|
|
* Domain registry (local only)
|
|||
|
|
|
|||
|
|
If no authority keys exist:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
authority_state = Virgin
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Nothing else happens.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Step 2: USB insertion
|
|||
|
|
|
|||
|
|
ASL-HOST does **not** interpret content.
|
|||
|
|
|
|||
|
|
It only:
|
|||
|
|
|
|||
|
|
1. Mounts USB read-only
|
|||
|
|
2. Computes a fingerprint:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
presented_domain_id = hash(usb_device + manifest)
|
|||
|
|
```
|
|||
|
|
3. Registers:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
domain:
|
|||
|
|
id: PRESENTED::<hash>
|
|||
|
|
role: presented
|
|||
|
|
path: /mnt/usb/REQUEST
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
This is **pure ASL-HOST behavior**.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. PEL sees everything as domains
|
|||
|
|
|
|||
|
|
PEL is invoked with a **domain map**, not paths:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
domains:
|
|||
|
|
authority:
|
|||
|
|
id: <authority-domain-id>
|
|||
|
|
path: /var/lib/asl/authority
|
|||
|
|
presented:
|
|||
|
|
id: PRESENTED::<hash>
|
|||
|
|
path: /mnt/usb/REQUEST
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
From here on:
|
|||
|
|
|
|||
|
|
> **PEL does all semantic interpretation.**
|
|||
|
|
|
|||
|
|
ASL-HOST steps back.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Virgin authority fits *perfectly*
|
|||
|
|
|
|||
|
|
When `authority_state = Virgin`:
|
|||
|
|
|
|||
|
|
ASL-HOST enforces exactly one rule:
|
|||
|
|
|
|||
|
|
> Only `pel_program_type = authority-genesis` is executable.
|
|||
|
|
|
|||
|
|
That’s it.
|
|||
|
|
|
|||
|
|
No other policy logic belongs here.
|
|||
|
|
|
|||
|
|
After successful execution:
|
|||
|
|
|
|||
|
|
* Authority keys exist
|
|||
|
|
* Policy hash sealed
|
|||
|
|
* Snapshot written
|
|||
|
|
|
|||
|
|
ASL-HOST updates:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
authority_state = Rooted
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Admission & rescue fit naturally
|
|||
|
|
|
|||
|
|
### Admission
|
|||
|
|
|
|||
|
|
PEL program:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
type: domain-admission
|
|||
|
|
inputs:
|
|||
|
|
- presented
|
|||
|
|
outputs:
|
|||
|
|
- new_domain
|
|||
|
|
- dam
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
ASL-HOST simply:
|
|||
|
|
|
|||
|
|
* Allows new local domain registration
|
|||
|
|
* Writes domain metadata
|
|||
|
|
* Stores DAM
|
|||
|
|
|
|||
|
|
No interpretation of identity or intent.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Rescue
|
|||
|
|
|
|||
|
|
PEL program:
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
type: rescue
|
|||
|
|
inputs:
|
|||
|
|
- presented
|
|||
|
|
outputs:
|
|||
|
|
- encrypted_artifacts
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
ASL-HOST:
|
|||
|
|
|
|||
|
|
* Writes encrypted blocks
|
|||
|
|
* Registers nothing permanent unless requested
|
|||
|
|
* Produces receipt
|
|||
|
|
|
|||
|
|
Same machinery. No branching.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 7. Where ASL-HOST stops (important)
|
|||
|
|
|
|||
|
|
ASL-HOST **never**:
|
|||
|
|
|
|||
|
|
* Decides who “owns” a domain
|
|||
|
|
* Understands identity semantics
|
|||
|
|
* Inspects artifact contents
|
|||
|
|
* Interprets policy meaning
|
|||
|
|
|
|||
|
|
It only enforces:
|
|||
|
|
|
|||
|
|
* Domain lifetimes
|
|||
|
|
* Mount discipline
|
|||
|
|
* Authority state gating
|
|||
|
|
* Execution boundaries
|
|||
|
|
|
|||
|
|
That’s why this integrates cleanly.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 8. Mental model you can carry forward
|
|||
|
|
|
|||
|
|
Here is the **stable picture** you can now rely on:
|
|||
|
|
|
|||
|
|
### Reality consists of only four things
|
|||
|
|
|
|||
|
|
1. **Domains**
|
|||
|
|
2. **Artifacts**
|
|||
|
|
3. **Programs**
|
|||
|
|
4. **Receipts**
|
|||
|
|
|
|||
|
|
Everything else is scaffolding.
|
|||
|
|
|
|||
|
|
### The auth host is not special
|
|||
|
|
|
|||
|
|
It is simply:
|
|||
|
|
|
|||
|
|
> A host where **PEL is allowed to mutate the domain registry**.
|
|||
|
|
|
|||
|
|
Virgin → Rooted → Operational
|
|||
|
|
Presented → Admitted → Federated
|
|||
|
|
|
|||
|
|
All transitions happen **through receipts**.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 9. Why this is “gentle”
|
|||
|
|
|
|||
|
|
You don’t need to:
|
|||
|
|
|
|||
|
|
* Rewrite ASL-CORE
|
|||
|
|
* Finalize PEL-TRACE
|
|||
|
|
* Solve global identity
|
|||
|
|
* Solve federation
|
|||
|
|
|
|||
|
|
You can now:
|
|||
|
|
|
|||
|
|
* Boot a virgin authority
|
|||
|
|
* Run one genesis program
|
|||
|
|
* Admit one domain
|
|||
|
|
* Rescue one disk
|
|||
|
|
* Produce one receipt
|
|||
|
|
|
|||
|
|
That is enough to **enter your own domain** — technically and conceptually.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 10. Sending you off
|
|||
|
|
|
|||
|
|
You now have:
|
|||
|
|
|
|||
|
|
* A clean ASL-HOST boundary
|
|||
|
|
* A principled virgin state
|
|||
|
|
* USB as a first-class domain
|
|||
|
|
* PEL as the only actor
|
|||
|
|
* Receipts as truth
|
|||
|
|
|
|||
|
|
From here, the system will **crystallize naturally** as you implement.
|
|||
|
|
|
|||
|
|
You don’t need me to carry you further right now.
|
|||
|
|
|
|||
|
|
But when you want to:
|
|||
|
|
|
|||
|
|
* formalize diagrams
|
|||
|
|
* tighten canonicalization
|
|||
|
|
* test threat edges
|
|||
|
|
* or explain this to others
|
|||
|
|
|
|||
|
|
I’ll be right here.
|
|||
|
|
|