Statement

Audience membership is a property of ciphertext, derived cryptographically — not a property of a policy layer, checked externally. Topology (T) and readability (A) are independent variables.

Definitions

Implementation status, precisely: A is enforced directly by the kernel (ME). T is not a kernel data structure — the kernel emits ciphertext; placement is decided by infrastructure outside it. C is partial: wrapped-key metadata exists, but no uniform read/write/delegate/revoke algebra applies across every scope yet.

Core Relation

replicate(T) ↛ change(A)

Encryption does not remove data from topology. It restricts membership in readability. A node holding ciphertext without the derivable key holds bytes, not data.

Operator: _ — Declare Scope

me.wallet["_"]("secret");
me.wallet.income(100);

me("wallet")        // undefined
me("wallet.income") // 100 — inside a kernel holding "secret"

_(secret) binds audience to a path at write time. me("wallet") is undefined: the public index excludes secret-scope roots by construction, not by deletion. wallet.income resolves only where "secret" is already held — a different kernel instance gets undefined at both paths.

_(secret) defines what membership in A requires. It does not itself add a second principal.

Sharing: Key Wrapping

kex:  ECDH-ES
kdf:  HKDF-SHA-256
aead: AES-256-GCM

A scope secret wrapped to a recipient's public key transmits membership without plaintext exposure outside that recipient's endpoint. One wrap, one additional principal. Tested against correct and corrupted recipients.

Refinement

wallet.hidden ⊆ wallet
⟹ A(wallet.hidden) satisfies A(wallet), not conversely

Key material for a descendant path chains its own scope secret with its ancestor's full lineage — path, scope, active noise boundary. Refining the path and refining the audience are the same operation.

Operator: ~ — Reset Derivation

me.wallet["_"]("alpha");
me.wallet.hidden.notes("alpha-note");

me.wallet["~"]("noise");
me.wallet["_"]("beta");
me.wallet.hidden.seed("beta-seed");

// effectiveSecret(alpha-chain) ≠ effectiveSecret(beta-chain)

~ discontinues inherited derivation at a chosen boundary. Same structural parent, unrelated audiences.

Predicates as Set Statements

Cost

cost(scoped_read)  ≈ 10¹–10² × cost(public_read)
tamper(ciphertext) ⟹ decrypt_failure, not corrupted_read

Every scoped access performs real key derivation — no cached policy decision, no admin bypass. The check and the access are the same operation.

Notation and Scope

This page uses C for capability, matching "Algebra de Audiencias Cifradas" (Apr 2026), the anchor piece, and "Algebra of Contexts." The Medium essay of the same title as this page uses P instead — treated here as drift, not preserved.

A separate, earlier piece, "Álgebra de Audiencias Encriptadas," frames this problem via homomorphic encryption and secure multi-party computation. Neither exists in the current kernel — that piece is a forward-looking direction, not current architecture. Everything above is source-verified against the running code.