Decentralized authentication

Nickname

Users may set their nickname via the /name <nickname> command. However, any nickname can be chosen by anyone, as there are no restrictions on uniqueness.

Tripcode

To attain a persistent and unique identity, a user must generate a tripcode via the /pass <secret> command. The secret is deterministically converted into a unique identifier, via an operation that is computationally infeasible to do in reverse – in other words, no one can find out which secret was used to generate a specific identifier.

For instance, the secret look_away may generate a tripcode such as jqN8nAcrWbHkBFJ5PM2McYmmGcN7BfdCWBC2dG6YejRW, which can be shortened to something like !jqN8nAc for display purposes.

As long as the user chooses their secret carefully, they are able to author their messages via a tripcode that uniquely identifies them. A good secret is at least 12-15 characters long and chosen such that it is highly unlikely that someone else would choose the exact same secret.

If no password is provided, the user will be assigned a temporary tripcode.

Tripcodes are generated client-side. In fact, a tripcode is a base58 representation of the 33-byte version of the public key in a secp256k1 keypair; the corresponding private key is the 32-byte output of the scrypt algorithm using a SHA256 hash of the secret as input material.

See the Tripcode generation page in the appendix for technical details.

Last updated