zeekayandHanzo Dev 7ab576c1fa empirical-benchmark: when the harness measures no rate, print no rate
The bench harness now refuses to time anything on a machine whose load average
exceeds its core count, and marks both rate sections NOT MEASURED instead. The
stored run is one of those, so the throughput table has nothing behind it.

The paper handles that rather than papering over it. emit.py reads whether the
run measured rates and sets \ifconcMeasured; main.tex prints the table and the
paired ratios when it did, and when it did not says so, explains the gate, and
prints no number at all. The alternative -- leaving the last run's table in
place under a run that produced none -- is the same defect as the Native
column, one section over.

emit.py also follows the harness's renamed section header and stops assuming a
concurrent section exists, so a rate-free run generates cleanly instead of
crashing, and every non-rate macro is still emitted.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-10 20:31:39 -07:00

ZAP Protocol — Papers

Docs: ZAP design papers · part of the ZAP Protocol

Formal results on the ZAP wire, transport, and sub-protocol family. Every paper is in LaTeX, brand-neutral, and accompanies a proof in ../proofs/.

# Paper Topic Key result
1 pq-hybrid-kem Z-Wing triple-hybrid KEM (X25519 + ML-KEM-768 + ML-KEM-1024) IND-CCA2-AKE bound 2^-87 under standard assumptions
2 zero-copy-throughput Throughput vs gRPC/HTTP-2/QUIC/JSON p99 9–14× small msg vs JSON; 3.5–6× vs gRPC
3 transport-vs-jwt Transport-layer mutual auth vs bearer JWT ZAP advantage strictly dominates JWT; mint-storm impossibility
4 rns-identity-binding KEM-bound service naming Spoofing reduces to KEM key compromise + sig forge + small audit-able root
5 streaming-tail-latency Multi-stream pubsub, FEC, no head-of-line blocking Per-stream latency conditionally independent of other streams
6 fix-trading-channel FIX 4.4/5.0 over ZAP 1.5–8μs/msg savings vs FIX-over-TLS, 30–50% wire bytes
7 agent-communication ZAP-MCP / ZAP-A2A non-repudiation Audit artifact = signed frame; provenance chain bound k·(EUF-CMA + q²/2^257)
8 composability Categorical composition of sub-protocols ZAP-base is initial; tight-embedding additive loss bound

What composes onto what

Per the composability paper, every sub-protocol is a tight embedding of ZAP-base. Properties chain:

        ZAP-base  (PQ conf, mutual auth, zero-copy)
         ↑
         ├── zap-http          (HTTP req/resp; inherits all ZAP-base)
         ├── zap-ws            (multi-stream pubsub + FEC; HOL-blocking elimination)
         ├── zap-rns           (KEM-bound naming; inherits ZAP-base + adds spoofing reduction)
         ├── zap-fix           (FIX semantics; tail-latency-bounded)
         ├── zap-mcp           (MCP non-repudiation per frame)
         ├── zap-acp           (FIPA-style speech acts, signed)
         └── zap-a2a           (Google Agent2Agent, audit-grade)

A zap-fix session over zap-rns over zap-ws over zap-base inherits zap-base's post-quantum guarantees automatically — no FIX-specific PQ proof needed.

Build

Each paper directory has a Makefile. Most build under pdflatex (TeX Live 2025); a few are tested with tectonic. Compiled PDFs are checked in where the toolchain was available locally.

cd pq-hybrid-kem && make    # produces main.pdf
cd ../proofs/pq-hybrid-kem && make    # produces proof.pdf

transport-vs-jwt uses \cref, so it needs cleveref, which a minimal TeX Live such as TinyTeX does not ship. Without it latexmk -Werror stops at the preamble and writes no PDF, which reads like a broken paper rather than a missing package:

tlmgr install cleveref

License

CC-BY-4.0 for the paper text; MIT OR Apache-2.0 for any code samples.

S
Description
ZAP design papers and research
Readme
2.5 MiB
Languages
TeX 93.8%
Python 3.9%
Makefile 2.3%