Technology

TorPlus is built on top of Tor, and provides the same anonymity guarantees as Tor, but extends it in two ways:

Monetization layer

Tor relies on volunteers. Servers and bandwidth are donated. The only incentive for someone to operate a Tor server is charity. Unfortunately, this means few resources: today there are about 6,000 Tor relays. For comparison, Google has about 1 million servers. TorPlus makes deploying relay servers profitable, which in turn means faster network.

In addition, the TorPlus protocol pays content providers (i.e. web sites), encouraging creation and sharing of new content, without the need to rely on tracking ads.

Caching layer

TorPlus incorporates IPFS for distributed storage and caching. This means web sites hosted on TorPlus can concentrate on creating great content. Storage providers are also incentivised via a monetization layer, resulting in faster and easier access.

The details

TorPlus relies on Stellar-based tokens (TorPlusToken = TPT) to pay for bandwidth, storage and content.

TorPlus Clients receive an allocation of tokens as part of the TorPlus subscription, which are sufficient for covering normal usage. In order to experience TorPlus, you can register for a trial and get some tokens for free, just by downloading the TorPlus client app here

These tokens are used to pay for services on the TorPlus network anonymously.

Payment and anonymity

When a client accesses the TorPlus network, it accesses a TorPlus “guard” node. This node acts as a standard Tor guard node which also supports TorPlus extensions. In particular, the TorPlus client will maintain a small “balance” with the guard. The client can then send requests (via Tor’s onion routing) which are opaque to the guard, maintaining anonymity.

Unlike Tor, TorPlus also includes payments. To maintain the anonymity of payments, payments are decoupled from requests: all nodes maintain balances with their peers. When the client sends an (onion) request for a web page (or an IPFS block), the guard checks the client’s balance, and passes the request to the next node in the circuit and so on until the exit node sends the request to the content provider (web site, IPFS). When the request is returned back to the client, each node updates the balance with the previous node on the chain.

As the client only pays to its guard node, and the content provider is only paid by the exit node, payments are anonymized, providing similar anonymity guarantees as provided by onion routing. Note that two relay nodes will usually a similar number of messages going in either direction, and would therefore only rarely need to pay their peers, reducing the number of transactions that are submitted to the blockchain.

Caching

TorPlus incorporates IPFS as a distributed storage and cache layer.

To maintain anonymity guaranties, all access to IPFS is done over the TorPlus protocol, with clients paying for IPFS content anonymously as described above.

By default, TorPlus IPFS nodes implement a caching protocol: nodes automatically fetch popular content on the network. This improves the network performance, while also making running an IPFS node more profitable.

Attention

TorPlus clients automatically pay for attention to any TorPlus-hosted site that is open and active (e.g. in the foreground), thus providing a seamless monetization without compromising the user’s privacy.

TorPlus protocol

A TorPlus circuit is established as follows:

  1. Client chooses a Middle Relay and an Exit node in random (the Guard node usually doesn’t change).
  2. Client composes an “onion” message which it sends to its Guard.
  3. The Guard decodes the outermost layer and forwards the message to the next node on the chain, and charges the client’s TorPlus balance for the service. It then forward the message to the Middle Relay it decoded from the onion message. The Middle Relay similarly charges the Guard node, decodes its layer of the onion and forwards the message to the Exit node, which finally forwards the message to its destination (whether on the TorPlus network or on the Internet). The same process in reverse happens for the reply.
  4. Each node maintains a balance with its peers and with clients (if it’s a Guard node). When the balance goes over a threshold (by default, on average, after about 50MB of data), the node sends a payment request to the peer. Note that for internal (not client) nodes, requests will flow in both ways, and therefore only rarely require settlement of the balance. This reduces the load on the Stellar network and improves network performance. As a bonus, this also improves anonymity as less records are maintained on the blockchain.
  5. On receiving payment requests, the peer node (or client) performs the actual payment of TPT tokens. As these payments are done between peers, anonymity is maintained.
    Once the payment goes through, the balance is “topped up”.

How users get TPT Tokens?

Users have two options of obtaining TPT Tokens:

  1. They can buy them at the DEX
  2. Users using the TorPlus client available on TorPlus.com can pay a small $5 monthly fee. The TorPlus company will issue tokens to these users as needed (up to the equivalent of $5 per month). Note that the TorPlus company cannot know how these tokens are used, maintaining user anonymity and privacy.

Check out our Demo sites:

Video demo: https://torplus.videotpdemo.com
Audio demo: https://torplus.podcasttpdemo.com
Wiki: https://torplus.wikitpdemo.com

For more information please visit our github at github.com/orgs/torplusdev