Keys and security#
Rules for every key#
The TOG team will never ask for a key
Never send a key file, its contents or a backup of it to anyone, in any channel. Anyone who asks for one is trying to take your bond.
- Every key is a 32-byte random seed in a file. Make it with
head -c 32 /dev/urandomunderumask 077, so only you can read it. The software refuses key files that group or others can read. - Keep keys that control money (owner key, validator stash key, AppChain manager key) off the servers, on your own computer, offline when you can.
- Back keys up encrypted, and keep at least one copy offline.
- Never run two machines with the same worker or validator keys at the same time. They sign conflicting messages, and that is slashed.
Which key lives where#
| Key | Lives on | Controls |
|---|---|---|
| Owner key | Your own computer | A worker's bond and registration |
worker.key, vrf.key |
The worker, inside its signer | The worker's identity and draws |
Validator stash.key |
Offline backup, working copy only in the signer's keys directory | The validator's bond |
validator.key |
The validator, inside its signer | Block signing |
network.key |
Each node | Peer-to-peer identity only; signs nothing of value |
| AppChain manager key | Your own computer | Code upload, registration, coretime |
| AppChain author key | The collator | Block sealing and the collator's bond |
On worker and validator servers the keys sit with tog-signer, which runs as its own user. The node can ask it to sign but cannot read a key, and the signer keeps a journal so it never signs two conflicting messages.
Check what you download#
- Check release binaries against the published SHA-256 sums.
- Check the genesis hash against the value published in two places before a node starts.
- Compare the two copies of a light-client checkpoint before you use one.
Reporting a vulnerability#
Report security problems privately to [email protected], not in public channels. Include what you found, how to reproduce it and the release you used. A public bug bounty with its rules starts with the public testnet.
Getting help#
| For | Where |
|---|---|
| Questions about running a node or building | The TOG Discord: discord.gg/7jqU5thert |
| Joining as an outside validator | The TOG Discord: discord.gg/7jqU5thert |
| Security problems | [email protected] |
When you ask for help, include the release tag, your OS, the commands you ran and the relevant log lines. Never include key files.