Tox is a peer-to-peer instant messaging protocol with end-to-end encryption, voice calls, video calls and file transfers
Instant Messaging is one of the most popular forms of electronic communication. You don't have to pay extra fees (not counting data charges) for chatting with family members, friends or colleagues regardless of their location.
But, there has been a rising concern about the privacy of such services. State-sponsored attacks and mass surveillance are some major examples.
Tox is a peer-to-peer instant messaging protocol with end-to-end encryption for Windows, Linux, macOS, Android and iOS.
What is a decentralized messenger?
Let me explain what a centralized messaging service is. Any instant messaging protocol that uses a cloud-based connection, aka a server, is a centralized service. Examples for this would be Skype, Hangouts, Facebook Messenger, Viber or Telegram. When you send a message through a centralized service, it is transmitted (passes through) a server, where it may or may not be stored before it is delivered to the recipient. This could potentially result in data being stolen, or the user being spied on.
A decentralized messenger is one that cuts out the middleman, i.e., there is no server in between you and your contact. The message that you send is delivered directly to the recipient, as in Peer-to-Peer (P2P). Combined with end-to-end encryption; this is better for privacy when compared to a centralized service.
Tox encryption and Security
Tox uses NaCl encryption for cryptography and the developers have labelled this as experimental. The encryption happens on a per-message basis. Also, worth mentioning is that messages are metadata free, which is important because metadata is used as a way to trace users. Your data is only stored on your device.
Is Tox secure?
The main concern with Tox is that despite being open source, its encryption protocol has not been audited. The developers don't hide this though and have clearly mentioned this on the official website, which is a good sign. Does Tox expose the IP address? Any P2P service will, that's how they work. Tox does by using your IP and your contact's to help you communicate with one another directly. You could try using it with Tor or a VPN to prevent this.
Note: Your IP address is only visible to people whom you add as contacts, other users can't see it. I strongly advise you to read the service's documentation before using it.
There are many clients available for Tox. The most popular desktop applications are uTox and qTox. The official mobile apps while outdated still work. I also tested Tok Lite (doesn't support calls), which is a fork of the official Antox Android app.
Signing up for Tox
There is no registration required as there is no account. When you install a Tox client and run it, you will see that it has a Tox ID (long alphanumerical ID) that's ready to use. You can change your name to whatever you want to. One of the biggest advantages of Tox is that you don't need to provide a phone number or an email address.
I installed uTox on my computer (set it up) and then installed qTox; it automatically picked up my Tox profile. That's because Tox saves a profile to the \AppData\Roaming\Tox folder. You will see a .Tox file here, this is your Tox profile. You can use it to export your profile to other devices, for e.g. if you want to import it to the mobile app.
There are a couple of ways to do this. You can send your Tox ID to someone to invite them to chat. They have to accept your request and optionally add you as a contact. Or you can send your QR code that they can scan to accept your invite (only on mobile apps). Some clients have additional functionality such as an option to send voice messages, capture a screenshot of a selected region on the screen and send it to the contact.
Messages, Voice Calls and Video Calls
Tox allows you to send instant messages to your contacts, but can also be used to make audio calls, and video calls. All communication made through Tox is end-to-end encrypted. The Mobile clients display notifications and function just like most IM apps.
You can send files to your contact and depending on the client that you're using, you'll be able to choose whether to accept the incoming transfer or reject it. This option can also be useful to save data, if you're on a mobile network.
Since everything is peer-to-peer based, the connection speed depends on the network quality of you and your contact. It worked flawlessly on local networks, mobile networks, and long-distance peer-to-peer communication as well. I used IPv6, but it also works with IPv4 networks.
The main issue with the service is probably getting people to use it.
Before I wrote this post, I was using Jami (formerly Ring) for a few days. It had way too many connectivity issues (couldn't deliver messages, unjoinable peer, etc), that I had to ditch it. Maybe you will have better luck with it. Wire used to be good, until it was acquired quietly (went from a Luxembourg based ownership to a US one). It has been criticized by Edward Snowden. Riot is another option, though it uses Matrix (which has been hacked twice iirc). Signal still seems to be the best secure messaging app, but it requires a phone number. Android users can try Briar, which uses Tor (for internet) or Bluetooth/Wi-Fi.Advertisement