Glossia 4.0 · Section 10

Key transparency

A public, append-only log that makes it impossible to quietly swap someone’s keys.

People who choose a username can be found by it. To make sure that nobody, Frothly included, can quietly give someone a false key for a username, every binding of a username to an identity key is recorded in a public, append-only log.

How the log works

  • The log is a Merkle tree. Every change adds a new entry; nothing is ever removed or altered.
  • Every hour the log publishes a signed tree head, which commits to everything in it.
  • A client looking up a username receives the identity key with a proof that it is in the log, and a proof that the log is consistent with the last tree head the client saw.
  • Every client checks its own username in the log once a day, and warns its owner if a key appears that they did not create.

Witnesses

Two independent witnesses, a university research group and a press-freedom organization, check every tree head and countersign it only if it is consistent with every head before it. A client accepts a tree head only with both countersignatures, so the log cannot show different people different histories without being caught.

Pinning

Clients ship with the log’s signing key and the witnesses’ keys built in, and MUST NOT accept new ones except through a software update. Earlier clients learned the log’s key on first use, which could have let a compromised network show a new client a forged log. This was reported in the 2026 audit as GL4-M3 and fixed before release.

Contact codes, which people exchange in person or over another channel, do not depend on the log at all.