v0.11.0 · Self-certifying nodes. Local proof. No ambient trust.

korium.io

A Rust network fabric built around self-certifying identities, signed contacts, and local verification. Reach exact services and resources over encrypted connections that can follow changing network paths.

identity-hex 64 chars BLAKE3-derived, not raw pubkey hex
DID length 88 + scope base contact DID + optional authority root
grant expiry cap <= 300s enforced by the verifier
covered path 9 hops forwarded QUIC and tunnel tests
korium.io, in motion

One node. Four trust boundaries.

Follow a request through Korium's trust boundaries. The network can help a packet move; only the destination can decide what that movement means.

01 · AuthN

Authenticate the live key, locally.

The node presents a did:korium identity, its raw Ed25519 key, certificate proof, and PoW. The destination binds the DID digest to the certificate SPKI before trusting the mTLS session—without a CA, resolver, or online registry.

did:koriummTLSkey-bound PoW
02 · AuthZ

Authorize the exact stream and action.

Authentication only proves key possession. Inbound application admission is closed until explicitly enabled. A service-authorized node additionally checks an authority-rooted exact-service chain and source policy; protected actions still require a short-lived Biscuit matching issuer, audience, service, resource, and action.

explicit admissionBiscuit v6≤ 300s grants
03 · Discovery

Find services without inheriting their authority.

Exact service lookup verifies authority-bound providers. Signed resource placements locate a specific application object under a trusted placement key. Live service bindings and signed source policy still decide who may connect; discovery grants no access.

exact livenessexact resource placementno inherited trust
04 · PQC

Harden confidentiality without overstating signatures.

QUIC uses TLS 1.3 with only X25519 + ML-KEM-768 hybrid key exchange. No classical group is offered, so there is no downgrade path. Identity signatures remain classical Ed25519, stated explicitly, while BLAKE3-384 identifiers keep routing, grants, and logs compact if a future signature primitive becomes much larger.

ML-KEM-768X25519 hybridBLAKE3-384 IDs
Overview

Korium is an autonomous network fabric.

Korium is addressless by design. Signed contacts carry identity and authority, never network addresses. Transport owns endpoints and reaches discovered identities through consented introductions. Identity, discovery, routing, streams, pub-sub, tunneling, and authorization share one local-verifier trust model. Applications control inbound admission, name services with stable DIDs, place resources with signed records, and verify protected actions locally.

Encrypted QUIC carries messages, streams, and TCP tunnels with BBRv3 congestion control. Open connections can survive NAT rebinding, address changes, and direct-to-relay switches while retaining the same authenticated destination, within their existing deadlines. Request deadlines cover discovery through response reading, and the client never replays a request after timeout. Local mDNS and regular DNS are opt-in, mutually exclusive adapters. Explicit seeds provide wider introduction. Korium requires Rust 1.99.0+; Linux is the production target.

01

One security model

Identity, discovery, transport, stream admission, and L7 authorization share local verification at every protocol edge.

02

Self-certifying identity

Every node is named by a did:korium URI derived from the public key. The pubkey travels in band, then BLAKE3-binds to the URI before signature verification.

03

No central resolver

Verification does not depend on a DID document fetch, CA, SPIRE server, key registry, or online root. The destination checks the evidence it received.

04

Exact-service admission

An explicitly enabled DID-only node leaves handler policy to the application. Supplying exact-service authority activates fail-closed source and stream admission with configured authority roots and an exact signed source policy; protected actions still require a scoped Biscuit.

05

Identity-routed QUIC

Korium routes encrypted QUIC sessions by node identity and uses BBRv3 congestion control. Transport validates paths, detects stalled delivery, and selects another live address or eligible relay. Recovery preserves the destination and never replays application work.

06

Bounded discovery

Applications explicitly start bounded IPv4 and IPv6 mDNS. Wider introduction uses identity-pinned seeds and literal endpoints. Construction performs no public DNS seed lookup; connections still require signed transport validation and PoW-valid mTLS.

07

Production data planes

Direct and forwarded QUIC, GossipSub, raw streams, request-response, and TCP tunneling use authenticated fabric paths. Linux batches UDP sends and receives; explicit memory and queue limits bound work under pressure.

08

TCP over QUIC

TCP tunnel entry carries local application traffic to an identity, exact service, or resource over encrypted QUIC. The destination explicitly enables admission and drains its in-process stream handler.

09

Wire bounds, not wishes

DHT values, liveness records, RPC bodies, GossipSub messages, grants, lookup expansion, tunnel concurrency, and caches all have explicit caps.

10

Observable decisions

Verified grants return issuer, audience, service DID URL, action, resource, expiry, token digest, and bounded app claims. Complete, durable, or tamper-evident audit collection remains a deployment responsibility.

11

PQ-aware identifier surface

The did:korium URI carries a 48-byte BLAKE3-384 digest; identity hex uses its first 32 bytes. DHT routing positions are separately derived from the key and PoW proof, raising the cost of targeted placement. Scoped routing adds an authority prefix.

12

Owned lifecycle boundaries

Each node owns its tasks, receivers, listeners, and shutdown. DNS and mDNS can stop and restart independently of transport. Awaiting tunnel stop releases its listener and sessions within a bounded grace period.

Identity

Self-certifying identity with explicit cryptographic boundaries.

A Korium node is named by a compact did:korium URI, but the verifier never treats the URI as the key. The raw public key is carried as evidence, BLAKE3-bound to the DID, then checked before any signature or transport claim is trusted.

01 DID names the node

did:korium gives routing, grants, logs, and audits a stable node name.

02 Pubkey proves the DID

The certificate carries the public key; the verifier hashes and compares it locally.

03 Crypto is scoped

Ed25519 authenticates current identities while BLAKE3-384 keeps the DID compact.

04 PQC posture is enforced

TLS 1.3 offers only X25519 + ML-KEM-768, while identity signatures remain classical and explicit.

Encryption

Encrypted paths stay bound to identity.

Korium uses QUIC and TLS 1.3 mTLS for encrypted node sessions, then carries those sessions over an identity-aware UDP substrate. Direct traffic, forwarded traffic, raw streams, pub-sub, and TCP tunnels all keep encryption separate from authority.

Session crypto TLS 1.3 mTLS over QUIC Nodes authenticate live keys before encrypted streams are accepted.
PQC-only confidentiality X25519 + ML-KEM-768 over TLS 1.3 The only offered key-exchange group removes classical downgrade paths; identity signatures remain Ed25519.
Encrypted overlay Direct QUIC and forwarded QUIC Transit nodes can forward ciphertext after bounded relay checks, not read it.
Tunnel transport TCP clients over QUIC TUNNEL Local TCP access uses authenticated encrypted fabric streams.

Direct QUIC

Node-to-node encrypted sessions with mTLS identity and service-scoped admission.

Forwarded QUIC

Relay paths forward bounded ciphertext after adjacent-hop token, TTL, and route checks.

TCP tunnel

Local TCP clients reach destination handlers through encrypted QUIC TUNNEL streams.

Signed data planes

GossipSub, raw streams, and request-response keep signatures, replay windows, and size caps.

Authority

L4 admission and L7 rights are separate decisions.

Inbound application admission is closed by default. Explicitly enable authenticated-node handlers or supply exact-service authority for fail-closed L4 source and stream admission. Exact discovery locates providers without granting network permission. L7 AuthZ verifies the exact resource descriptor and invocation grant, then requires a local policy decision before protected work.

L4 node proof mTLS DID binding

The node proves key possession and the destination binds the key to the caller DID.

L4 service authority did:korium:service:…/service

An authority-rooted exact-service chain and terminal binding prove which instance may serve the exact service.

L4 stream admission Caller, service, stream type

The fabric checks whether this node can open this kind of stream to this service.

L7 invocation grant Biscuit right(resource, action)

The application request still needs an issuer-approved, audience-bound grant.

L4 caller

The authenticated caller DID must match the node that opened the transport stream.

L4 service

The destination service DID URL must be backed by current exact-service binding evidence.

L4 stream

Stream type, route, relay token, TTL, and bounds are checked before the payload is useful.

L7 issuer + audience

principal() identifies a service-approved grant issuer; audience() must match the caller DID seen at mTLS.

L7 scope

The grant must match service DID URL, issuer policy, resource, and action exactly.

L7 freshness

exp() is mandatory, must be live, and is verifier-capped at 300 seconds.