Privacy Model

Understanding how Bastion protects privacy and what information the server can and cannot see.

This page explains how Bastion is designed to protect user privacy, what information the server cannot access, and what limited metadata the server may still observe when operating the service.

Overview

Bastion is designed to allow people to coordinate in private groups without relying on a global account or a central identity provider.

Instead of creating a server-side user account, Bastion generates a cryptographic identity directly in your browser. That identity signs actions such as creating posts, joining circles, or managing membership.

Because identities are client-side and circle identifiers are derived differently for each circle, the server is intentionally designed so it cannot easily link your activity across circles.

The goal is simple:

Identity and Keys

When you first set up Bastion, your browser generates a cryptographic identity locally.

This identity consists of a private key and a corresponding public key.

Important properties:

Because identities are generated locally, Bastion does not have an "account recovery" mechanism. If your identity is lost and you do not have a backup, it cannot be recovered.

Circles and Unlinkability

Each Bastion circle operates independently.

Even if the same identity participates in multiple circles, Bastion is designed so that:

This reduces the ability of the server to link participation across circles.

In practice, this means the server processes requests like:

without needing to know whether that same identity exists in any other circle.

What the Server Cannot See

Because key operations happen in the client, the server cannot access several important pieces of information.

The server cannot see:

The server stores and processes only the data required to operate each circle.

What the Server Can Still See

Like any web service, Bastion still exposes some limited metadata to the server.

Examples include:

This metadata is unavoidable for most web applications. Bastion's design attempts to minimize how much of it can be used to infer relationships between users or circles.

Circle Sync

Bastion allows an optional feature called Circle Sync.

When enabled, Bastion stores an encrypted record of your circle list. This allows your devices to stay up to date when circles are created or joined.

Important properties:

Without sync, restoring from a backup will only include the circles present at the time the backup was created.

Backups and Recovery

Bastion identities exist only on your device.

To recover your identity if a device is lost, Bastion allows you to export an encrypted backup file.

Backups include your identity and a snapshot of your circles at the time of export.

Your identity is stored locally in your browser. If it is cleared or reset, it cannot be recovered without a backup.

Important distinctions:

Enabling Circle Sync does not replace backups. If all devices are lost and no backup exists, the identity cannot be recovered.

Threat Model and Limitations

Bastion reduces the amount of information a server can observe, but it does not eliminate all possible metadata.

Examples of remaining risks include:

Bastion's goal is not perfect anonymity, but rather to make privacy the default and reduce the amount of information centralized systems typically collect.

Summary

Bastion is designed around a simple principle:

The server should only know what it needs to operate a circle — and as little else as possible.

By generating identities locally, separating circles, and encrypting sensitive data before it leaves the device, Bastion minimizes the amount of information that must be trusted to the server.