Should we really be concerned about these, if both the client front-end and API are served over HTTPS?
## Database leaks
A leaked database should expose no identifying information.
## Database + system keys leaks
A leaked database, even if it leaked with all the private keys used by the system, should expose as little information as possible.
Exposing information of a kind "this user has N non-mutual sympathies that were created on these dates" is probably unavoidable:
the system has to keep track of that information in order to prevent brute-forcing.
Exposing information of a kind "this user logged a sympathy towards you" to someone with their own private key is unavoidable too:
they can just emulate the entire system in a sandbox and brute-force that information.
No other information should be exposed.
## Log leaks
The system should not store any logs.
## Evil admin / maintainer
### Access to the database and system keys
This threat is identical to database + system keys leak.
### Backdoors in the code
Since all requests to API are signed, that means an admin, if they inserted some kinds of backdoors, can always know what users have been sending what kinds of requests.
No other additional information should be exposed if admin does not have an access to someone's private key.
### Colluding with an user
If an admin colludes with some user (who provides their private key), they will be able to obtain all the information that concerns this user,
if just by brute-forcing it.
We should think about how to make this as painful as possible.
No other additional information should be exposed.