Resisting blocks
Velum is designed to keep working even if someone tries to shut it down. Here we explain what we do and, just as clearly, what we can't prevent.
Several gateways, with the name hidden
- There are several gateways on different domains (the
GATEWAYSlist in@velum/core). Apps and nodes try them in order and move to the next one if one fails. - The gateways use ECH (Encrypted Client Hello) on Cloudflare: anyone watching the connection can't see the name of the site you're going to.
Nodes that find each other
- Each node publishes its address (
endpoint) on the chain. Apps and nodes keep the list and, if the gateways go down, connect directly to each other, as Bitcoin nodes do. - Nodes swap lists of neighbours (PEX).
- There are DNS seeds: TXT records listing nodes, spread across several domains, to find the network from scratch.
App ──▶ gateway 1 (ECH) ──✕ blocked
──▶ gateway 2 (another domain, ECH)
──▶ known node (endpoint saved from the chain)
──▶ DNS seed ──▶ nodes ──▶ neighbours (PEX)
Roadmap
- Disguised transports: traffic that looks like normal HTTPS (WebTunnel or obfs style).
- Tor and I2P.
- Bluetooth mesh to talk without internet to people nearby.
- Three-hop Sphinx-style routes and cover traffic against someone watching all of the internet at once.
What we don't promise
- No system is impossible to block. A country can block domains, IP addresses or all of Cloudflare. The network stays alive as long as nodes can reach each other, but connecting to it may be harder.
- A global observer who sees all internet traffic at once can try to match departure and arrival times. Fixed-size padding and rotating mailboxes help; three-hop routes and cover traffic will come later.
- App stores can remove an app in a country. That's why we also publish the Android APK and the node binaries on this website, signed.