Mysterium
Mysterium https://www.mysteriumvpn.com/ is a decentralized VPN. The basic idea is that all users can run a Mysterium node, and then present their own node as an exit node to the VPN. If you allow other people to use your node, you earn MYST tokens, if you want to use other nodes, you must spend MYST tokens. This is a utility cryptocurrency based on ultimately bandwidth. Therefore you are allowing others to rent your IP and bandwidth.
It is also a hybrid business model with a centralized control plane hosted on https://app.mysteriumvpn.com/, and a decentralized data plane via the nodes that are deployed in user's platforms.
In order to partake in the platform, you must download their node and start it.
There are serveral options:
- Desktop App https://github.com/mysteriumnetwork/mysterium-vpn-desktop
- Mobile App https://github.com/mysteriumnetwork/mysterium-vpn-mobile
- Mysterium Node https://github.com/mysteriumnetwork/node (no GUI)
Setup
I've only explored using with Docker.
docker pull mysteriumnetwork/myst
MYSTERIUM_DIR=/srv/mysterium
docker run \
--cap-add NET_ADMIN \
-d -p 4449:4449 \
--name myst \
-v $MYSTERIUM_DIR:/var/lib/mysterium-node \
--restart unless-stopped \
mysteriumnetwork/myst:latest service --agreed-terms-and-conditions
Then we have to go to: http://localhost:4449/ to go into the local node web control plane.
It shows a web UI that has a quick setup and advanced setup.
The quick setup redirects you to the mysterium centralized control plane to sign up for an account.
You need to provide an email address and password.
This provides you access to the main dashboard showing you all your mysterium nodes, as well as information on your MYST tokens and bandwidth usage.
It provides you an API key to authenticate your decentralized node to your Mysterium control plane account.
You then have to go back to http://localhost:4449/ to configure your local node by passing in the API key.
Upon doing so, your Mysterium node is now activated.
On top of this you need to provide Polygon wallet address. Polygon is an Ethereum L2 network. This address is used to withdraw and deposit MYST tokens.
The Mysterium node now tries to do things:
- Establish the ability to communicate with the external internet using your IP and bandwidth.
- Establish connections to the internal VPN network.
For these 2 things to be achieved, additional privileges must be granted to the mysterium node:
- For the external internet, the program needs to run on the host network - or some form of NAT bridging is needed.
- For the internal VPN, the program needs to do what tailscale does - using hole punching, using STUN, using TURN relays, using UPnP... etc
ATM, I do not believe Mysterium is capable of zero-conf VPN, it still relies on the user to understand how to configure their router to be capable of this.
Unit Economics
Mysterium creates a MYST token that is publically tradable on DEXes, this would be faciliated through a smart contract.
However Mysterium also charges a monthly fee in USD, I suppose for using their control plane.
It is interesting to consider how Mysterium would work in a fully decentralized business model without any central point of taxation.