Vac

A modular, peer-to-peer messaging stack for private, secure, censorship resistant communication

RESEARCH LOG

WHAT IS Vac

Vac is being designed for client developers to provide the highest level of privacy and security for their users.

Full messaging stack

Concerned with all layers in the stack including underlying transports, p2p overlays and routing, initial trust establishment, and semantics for things like group chat.

Modular system

Provide options at each layer in the stack, instead of having a tightly coupled set of protocols. Allowing developers to choose what they use and ensure they know each choice comes with different trade-offs.

Peer-to-Peer

The protocols we work on are pure peer-to-peer, and aim to minimize centralization. This too is in opposition to many initiatives in the secure messaging space.

Generalized messaging

This includes both human to human communication, as well as machine to machine communication. Texting, data transfer, financial transactions, state channels and more.

Security, privacy,
censorship resistance

Assumes the basics such as end-to-end encryption, forward secrecy, avoiding MITM-attacks. Vac also places a premium on privacy and censorship resistance from port blocking, traffic analysis, and similar.


We take inspiration from core internet architecture, existing survey work and other efforts that have been done to decompose the problem into orthogonal pieces. Each layer provides their own set of properties and only interact with the layers it is adjacent to.

  • LAYER / PROTOCOL
  • Application Layer
  • Data Sync
  • Secure Transport
  • Transport Privacy
  • P2P Overlay
  • Trust Establishment
  • PURPOSE
  • End user semantics
  • Data consistency
  • Confidentiality, PFS, etc
  • Transport and metadata protection
  • Overlay Routing, NAT traversal
  • Establishing end-to-end trust
  • EXAMPLES
  • 1:1 chat, group chat
  • MVDS, BSP
  • Double Ratchet, MLS
  • Whisper, TOR, Mixnet
  • devP2P, libP2P
  • TOFU, web of trust

The team

Oskar Thoren

Dean Eigenmann