Skip to main content

Module client_id

Module client_id 

Source
Expand description

§Stable client (user-account) identity on the network

A ClientId is the self-describing identity of a single user. It bundles:

  • the Ed25519 public key (verification_key_bytes) used to verify everything the client signs (posts, feedback, follows, …);
  • a 32-byte post-quantum commitment (pq_commitment_bytes) — see crate::tools::keys_post_quantum — that future-proofs the identity against Ed25519 breakage without requiring a new identity;
  • a derived 32-byte crate::tools::types::Id that is the Blake3 hash of the two above.

Because the id is derived from the other two fields, any tampering is detectable by ClientId::verify: the recomputed id simply won’t match. Wherever the protocol refers to “who authored this” (post headers, RPC responses, peer records) it is referring to a ClientId.

This is distinct from crate::tools::server_id::ServerId, which is the analogous identity for a server and additionally carries a proof-of-work “birth certificate”.

Structs§

ClientId
The stable identity of a single client (user account) on the network.