poztter.org

poztter.org / what is POZ

What is POZ?

POZ — Portable Ownership Zone — is a collection of open standards: a binary file format, a network protocol, and a set of cryptographic operations. A POZ record is a self-contained, signed identity that you can hand to anyone, anywhere, and they can verify without trusting the server it came from.

the problem POZ solves

Online identity today is a pile of accounts, each one owned by the platform that issued it. You have no portable proof of ownership that survives the failure or malice of any single provider — and the existing decentralized alternatives (PGP web of trust, blockchain DIDs) either don't address how most people are actually discovered and contacted, or pile on costs and complexity that keep them niche.

POZ takes the opposite path: centralized providers continue to exist and continue to be where people are discovered. POZ just changes who owns the relationship. You hold the record. The provider attests to a binding. Trust the provider, you transitively trust the binding.

the file

A POZ record starts with the bytes POZ, a version, and a length. What follows is a table of contents pointing at typed sections — keys, the master zone, zone authorities, and zone data.

POZ │ v0 │ size           ← 8-byte file header
TOC entries → offsets
┌────────────────────────────────┐
│ 0x0000  Public Key Map         │  required
│ 0x0001  Master Zone            │  required — root of authority
├────────────────────────────────┤
│ 0x0010  Identity Authority     │
│ 0x0011  Identity Zone          │  ← who you are on which platform
│ 0x0030  Email Authority        │
│ 0x0031  Email Zone             │  ← inboxes, addressed by GUID
│ 0x0040  Auth Authority         │
│ 0x0041  Auth Zone              │  ← trust groups for login
│ 0x0050  Service Authority      │
│ 0x0051  Service Zone           │  ← where to find your servers
├────────────────────────────────┤
│ 0x8002  Private Key Map        │  optional, encrypted at rest
│ 0x8003  Zone History           │  optional
│ 0x8004  Key Names              │  optional
└────────────────────────────────┘
fig 01 · sections in a POZ file. Authority sections (0x00X0) delegate; zone sections (0x00X1) hold the data.

the master zone

The master zone is the root of all authority in a POZ record. It says which keys control the record itself, and which keys are delegated authority over each sub-zone. Every revision is hash-chained to the previous one and signed by enough authorizing keys to clear a threshold.

One key is enough in the simplest case. For higher assurance, ownership is distributed across several keys — so the loss or compromise of any single one doesn't take the record down. The same model scales from an individual all the way to critical infrastructure.

SOLE OWNER 1 key, value 100 hw token 100 RECOVERY none SURVIVES — nothing. Lose key → locked out. MULTI-SIG · 3-OF-3 3 keys, 34 / 33 / 33 key A 34 key B 33 key C 33 SURVIVES single-key compromise. Attacker alone ≤ 34 < 100. PRIMARY + RECOVERY hw key OR 3×40 GROUP 1 hw token 100 GROUP 2 · RECOVERY 40 40 40 SURVIVES hw key loss. 3×40 = 120 ≥ 100.
fig 02 · the same threshold model handles every case — from a single hardware token to a multi-group setup with an independent recovery path.

survivorship — built for compromise

The master zone uses a threshold model. Each key has a value; authorization requires a set of signing keys whose values sum to at least 100. With one key at 100, you get sole ownership. With three keys at 34/33/33, you require all three to act. With a hardware key at 100 plus a separate recovery group, you get a daily-use path and a backup path that don't share dependencies.

The point isn't the specific numbers. The point is that POZ treats key compromise as something to be planned for, not avoided. Every cryptographic key will eventually be broken. A protocol that doesn't account for it is one good incident from disaster.

grant and deny — asymmetric authority

When the master zone delegates to a sub-zone (Identity, Email, Feed, Auth, Service), it gives each delegation key two independent values: a grant value (authority to add or modify entries) and a deny value (authority to revoke or remove them). Both follow the same threshold rule, but they're evaluated separately.

This makes a useful pattern natural: configure two devices, each with grant=50, deny=100. Either device alone can revoke a compromised credential (fast incident response). Both devices must agree to add a new credential (deliberate authorization). Locking down is unilateral; opening up is consensual.

identity — bindings to the world

The master zone's hash uniquely identifies the record but tells a human nothing. The Identity Zone is where the record connects to names that humans actually use.

An identity entry is a signed link from one record (the provider) to another (the user). The provider uses its own signing keys to attest the binding. Concrete cases:

The result is a web of attestations. To impersonate someone, you would need to forge not one binding but every binding in the chain — every provider, all at once.

USER alice AUTHORITY provider 01 SUBMIT_REQUEST · handle, POZ hash, proof 02 signed attestation (PENDING on authority) 03 assemble + sign Identity Zone 04 SUBMIT_SIGNED · activate
fig 03 · four steps from "I'd like this binding" to a signed, verifiable entry in the Identity Zone — both parties sign, both parties agree.

the network

POZ records are distributed over a small purpose-built TCP protocol — not HTTP, not a blockchain. Three ports do all of it:

PortEncryptionUse
7074NonePublic lookup. Data is self-verifying.
7075Noise NKPrivate lookup. Hides which user is being queried.
7076Noise NKSubmit a signed record update to its authority.

Discovery uses what already works: a _poz._tcp DNS SRV record points to servers, a _poz TXT record binds the domain to a specific master hash, and an HTTPS /.well-known/poz file is the fallback. Cross-validating multiple paths is the whole point — compromising the binding requires compromising DNS and PKI and the POZ chain.

CLIENT verifies DNS SRV + TXT POZ SERVER dumb pipe 01 resolve _poz._tcp.example.com 02 SRV → host:7075 · TXT → master hash 03 Noise NK + QUERY 04 POZ record (signed) 05 validate chain
fig 04 · the server moves bytes; the client decides whether the bytes are trustworthy. Compromising the server only denies service — it cannot forge the answer.

what POZ is not

read next

depth

Each zone type in detail — Identity, Email, Feed, Auth, Service.

Read
why

The reasoning behind the design — trust the data, identity ownership, survivability.

Read
contrast

How POZ differs from PGP, DIDs, and passkeys. Common questions about operations.

Read
code

Internet-Draft RFCs and the C++ reference implementation. Apache 2.0.

github.com/Poztter