Telepathy – inside the black box

SuperNET runs on a platform that makes the most of both NXT’s and BTCD’s powerful features. NXT provides the functionality, BTCD the secure communication. Anonymous transactions are, of course, a major strand of this – take a look at the Teleport article if you want to know more.

Different cryptocurrencies approach anonymity in different ways – typically with ring signatures or mixing. In the case of Teleport, standard denomination addresses are cloned or swept into new ones by the recipient, so that they only ever lead back to one place: the originator. But no matter how sophisticated an anonymous cryptocurrency is, there’s always going to be a weakness. Even if everything on the blockchain is completely obscure, you can still be compromised if someone is monitoring your IP address or that of your recipient.

So the new cutting edge question becomes: How do you send a letter without anyone knowing the address of your recipient – including you?

Distributed Hash Tables

This is the problem that Telepathy, jl777’s anonymity network for BTCD and SuperNET, aims to solve. At its heart, it’s a peer-to-peer network – much like the one used by BitTorrent for file-sharing. These networks pass packets of information between users or nodes. Each node knows of a few others in its vicinity, but not the whole network – which could consist of tens or hundreds of thousands of nodes.

Each time a node receives a packet, it passes it on to those closer to the recipient than itself. In this way, the packet gets closer and closer to its destination, until it finally reaches whoever it’s meant for. No one needs full oversight of the network, and there’s no central look-up table – something that was the death of Napster, since it meant it could be shut down.

These networks use something called Distributed Hash Tables, or DHT. These are not just very fast, efficient look-up tables, they also have some other interesting and useful properties as well. The DHT provides a kind of overlay to the network that nodes use to route packets – this overlay functions like a map and is used by the nodes to pass information on to the next node.

However, although the map is internally consistent, it bears absolutely no resemblance to where the nodes are in real life. Two locations that are next to each other in network space could be in different continents in the physical world – or they could be right next door to each other. It’s a little like the London Underground map, which barely reflects its above-ground geography at all but still enables straightforward travel from A to B for commuters.

Dead drops

This property can be used to route packets anonymously.

All a node has to do is select a location in network space (designated by a NXT public key, as it happens) that is near to itself, as well as many other nodes, but that doesn’t correspond to any given node: a dead drop.

The packet will be routed through the network, peer to peer, getting closer to its destination at each step. It will never reach its destination, of course, because that point doesn’t belong to any node, but it doesn’t matter: so long as the intended recipient handles the packet at some point, it can read the contents. To make sure it does get to the recipient, the node closest to the dead drop sends the packet to all of the nodes within a given distance – perhaps 20 or 30 in all. Since the packets are all encrypted, no one else will be able to see inside – but no one else will know that the intended recipient has read it either.

An analogy might go something like this:

Alice wants to deliver a message to Bob. She doesn’t know where Bob lives, but the two of them have previously agreed a location to which to send the message. The address doesn’t exist, but Bob has suggested it because he lives close by and can be in the general vicinity.

Alice encodes her message with a cipher only Bob uses, and writes it on a postcard. She gives it to a courier and tells him to drop it at the fictitious address in the centre of town. She points the courier in the right direction and off he goes. After a few minutes, he stops a passerby to ask for directions. The passerby again points him in the right direction, and he walks a little further.

A few more stops and sets of directions later, and the courier is standing in the town centre. As he’s looking around for an address that doesn’t exist, he asks directions from a couple of dozen other people he sees there, including Bob. Understandably, none of these people know where the courier is going, but all of them look over his shoulder and read the postcard while they’re talking to him. Bob walks away with his message, but no one else knows that he was the intended recipient, or what the message said.

The Last Mile

This solution – called ‘Telepathy’ because messages are delivered apparently without anyone knowing they’ve even been received – effectively solves the so-called ‘Last Mile’ problem. In the network, packets are routed around from node to node. At the last stage, though, when the packet reaches its destination, anyone monitoring the network could tell who the recipient is. With this system, though, assuming an attacker even has the ability to see what network activity there is (no mean feat in itself), they now have to choose between twenty or thirty different potential recipients. That’s for every packet, whether it’s an anonymous cryptocurrency transaction or a simple ‘hello’ message. The more traffic, the harder it becomes to make useful deductions.

Telepathy has a few other tricks up its sleeve – onion routing before starting normal peer-to-peer transmission, random delays to confuse observers, and so on – but this solution to the last mile problem is what sets it qualitatively apart from its competitors. With the right encryption, no one can read your messages. Now, no one can even figure out who you’re communicating with – or whether you’re even communicating at all.

0 0 votes
Article Rating
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x