Skip to content

Instantly share code, notes, and snippets.

@Milek7
Milek7 / proposal-milek7.md
Last active December 20, 2020 00:04 — forked from TrueBrain/proposal-milek7.md
OpenTTD multiplayer

Decentralized local authentication

Use a public key cryptography to authenticate yourself with the server. Your pubkey (public key) works like some sort of user ID. It can be repesented as 64 char hex-encoded string. (do we want to bother with Base58 or something?)
During joining process, client sends your pubkey to the server. Server uses challenge-response to verify that client is in fact posession of secret key matching with given pubkey.
Key material used to generate your keypair is stored at first launch in the config file.

Company access list

Company access list stores mapping of pubkeys and their respective access level: owner or member. Members can only join the company, while owners can also manage access list (retrieve access list, add/remove pubkeys, change access levels). At company creation, you are given owner level and only you can access the company.\