Noise Protocol Framework

P2P Protocol

Cryptographic 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.

Comunidade

Detalhes

Licença Public domain specification; open source implementations in C, C#, Go, Haskell, Java, JavaScript, Python, Rust
Status de Dev 🔨 Em desenvolvimento
Detalhe do Status de Dev Stable / Mature — specification at revision 34 (2018); post-quantum extensions in development
Proprietário Trevor Perrin (independent cryptographer)
País USA
Ano de Início 2014
Stack Language-agnostic specification; implementations in C, Rust, Go, JavaScript, Python, Haskell, Java
Financiamento None (independent research)
Última Investigação 15 de jan. de 2026

Capacidades

Contextual disclosure

P2P Protocol Atributos

Origins Reaction to complexity and error-proneness of hand-crafted AKE protocols; inspired by Signal Protocol and NaCl Cryptobox philosophy of simple, composable cryptographic primitives
Database N/A
Query Language N/A
Data Formats Binary (handshake message sequences); no defined application data format
Collaborative Live Editing No
Rich Text Editing No
Mobile Support Yes (via adopters: WireGuard mobile, WhatsApp mobile)
Web Support Yes (via adopters: WhatsApp web, Lightning web)
Native Apps Yes (via adopters)
Terms Public domain
Funds N/A
Based On Signal Protocol (design philosophy); NaCl Cryptobox; Diffie-Hellman key exchange
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 Compatibility 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