YAMN v2 / technical protocol reference

Packet specification.

A compact description of the fixed-size payload and the routing information revealed one layer at a time along a YAMN chain.

20,480 BYTESMAX 10 HOPSNACl BOXAES-256-CTR

01 / LINEAGE

YAMN and Mixmaster.

YAMN is a close relative of Mixmaster. Keyrings, statistics and the layered payload concept are similar enough for Echolot to support YAMN with targeted parsing changes. The cryptographic and mixing choices differ.

FunctionMixmasterYAMN
Public-key encryptionRSANaCl Box
Symmetric encryptionTriple-DESAES-256-CTR
Integrity checkingMD5, partialBLAKE2
Pooling algorithmDynamic mixBinomial mix
Maximum chain length2010

02 / PAYLOAD

Fixed outer size.

The YAMN payload contains ten fixed hop-header slots followed by the body. During construction, all headers after the current one and the body are wrapped in multiple encryption layers. A hop removes one layer and obtains only its next routing instruction.

FieldBytesDescription
Headers2,56010 headers, 256 bytes each
Body17,920User-defined content plus padding
Total20,480Fixed payload size

04 / SEALED HEADER

Routing and anti-tag data.

FieldBytesDescription
Packet version1Format version.
Packet type ID1Intermediate hop 0, Exit hop 1.
Delivery protocol1SMTP 0, currently the delivery protocol.
Packet ID16Unique value used for replay detection.
AES-CTR key32Decrypts subsequent headers and body layer.
Timestamp2Days since epoch, little-endian, with a random 0 to 3 day subtraction.
Packet info64Intermediate or Exit-specific instructions.
Anti-tag digest32BLAKE2 digest of subsequent headers and body.
Padding11Encrypted zero bytes.
Total160

05 / INTERMEDIATE HOP

Prepare the next layer.

FieldBytesDescription
Partial AES-CTR IV12Random bytes used to construct per-layer IVs.
Next-hop address52Address of the next YAMN remailer.
Total64

The four-byte counter completes the 16-byte IV. Headers use ordered sequence values and the body uses the final sequence. The historical notation is RRRRNNNNRRRRRRRR, where N marks the counter bytes.

06 / EXIT HOP

Recover the delivery body.

FieldBytesDescription
AES-CTR IV16Used to decrypt the body.
Chunk number1Sequence number for chunked messages.
Total chunks1Number of chunks in the message.
Message ID16Common identifier for all chunks.
Body length4Unpadded body length, little-endian.
Delivery method1SMTP 0, dummy 255.
Padding25Encrypted zero bytes.
Total64

A valid chain has one final YAMN Exit. The Exit performs concrete final delivery by SMTP, which may target an email recipient or a Mail-to-News gateway.

Historical upstream packet reference

PAGE SHA-256 (CANONICAL) c29715ed12666b28597f29e7219c736ff6fa5d58aadb0d68657b4c1aeac9bdb3 Merkle proof