Noise Protocol Framework
P2P ProtocolsCryptographic meta-framework for constructing secure two-party handshake and channel protocols based on Diffie-Hellman key exchange. Provides a pattern language for composing authenticated key establishment (AKE) protocols supporting mutual/optional authentication, identity hiding, forward secrecy, and zero round-trip encryption. Not a full protocol itself — a framework other protocols implement at the session/crypto layer. Widely adopted: WhatsApp, WireGuard, Lightning Network, I2P.
Fully P2P Community Low capture risk
Links
Details
License Public Domain
Dev Status WIP
Owner Trevor Perrin (independent cryptographer)
Country USA
Start Year 2014
Stack C, Rust, Go, JavaScript, Python, Haskell, Java
Funding None
Last Investigated Jan 15, 2026
P2P Protocol Attributes
P2P Architecture Two-party session establishment — provides authenticated key establishment for any P2P or client-server architecture; does not define a network topology
Overlay Network N/A — session/handshake layer only
Content Addressing No
Local-First N/A — session-layer primitive
E2EE Yes — mutual authentication, identity hiding, forward secrecy, zero-RTT encryption
CRDTs Lib N/A
Byzantine Fault Tolerance N/A — no network-layer BFT; session security only
Signature Yes — ECDH-based static and ephemeral key exchange; ed25519 / X25519
Permissions Key-based (static public key as capability; PSK extension available for pre-shared key layer)
Semantic Web Compatability No
Smart Contract No
Protocol Stack Position Session/crypto layer — operates below application protocols and above transport; provides authenticated key establishment for any P2P session
Asset / Value Embedding None — cryptographic session framework only; no value or asset transmission
Protocol Maturity / Standardization Mature / De Facto Standard — specification stable since revision 34 (2018); adopted by WhatsApp, WireGuard, Lightning Network, I2P; academic security proofs published; not submitted to formal standards body