Incentivized relay networks

Drew Stone
4 min readJul 4, 2018

--

Imagine for a moment that we analyze Bitcoin as a flow network, where the transaction endpoints, i.e. the users/accounts, are nodes in our graph. The flow commodity is money. The efficiency of the network is a mixture of how “well” the network routes money. This could be defined as a ratio of the routed flow amount versus the fees taken for each edge or transaction in the network or some other combination — maybe how much bandwidth a node offers versus its available capacity. If we want to incentivize “good” behavior, where we define good as minimizing or maximizing the respective ratio defined above, how should we reward individuals?

As I dive further into research in these coming years, this is one of the specific questions I’m interested in with respect to cryptocurrencies and designing incentive compatible protocols. Many of the existing protocols of interest rely on routing and relaying some underlying crypto-commodity. Think energy and bandwidth for obvious examples. Thus if we want to design new protocols for decentralizing how we deliver these commodities, we have to understand the incentives of routing these commodities.

Mining rewards fall short for incentivized relaying

The statement above is one of my current hypotheses. Stated, existing mining rewards reward one winner or one pool (still one winner, realistically). In a network where miners are also responsible for routing and relaying resources, many parties are instrumental for successful delivery.

Tor (bandwidth relay)

Another good example deals with how Tor, the anonymous onion routing protocol/network works. Onion routing is a method of routing an individual’s internet requests in an anonymous fashion to ensure they are virtually untraceable. Apart from the process, individuals (called Tor relays) who participate, not to mention pro bono, never know the true origin of a request because requests are passed between one another by peeling away a cryptographic layer of this metaphorical “onion”. If you are interested in truly understanding how this works, check out the wikipedia on onion routing.

Moreover, Tor relays offer their bandwidth for free to users of the Tor network. What happens if we want to reward these relays or allow them to charge for relaying? We can imagine adding incentives into the Tor network, by rewarding peers who relay requests. We accomplish this by injecting payments into the onion layers, adding some insurance against failed deliveries and already peeled payments.

The mining reward that could work on a relay network such as Tor could be based similarly on a proof of power type consensus mechanism. That is, Tor relays are rewarded with probability proportional to the total amount of bandwidth they relay. While this may lead to undesirable behavior, it still offers a means of analysis. Given that we reward relays based upon sheer bandwidth sharing, I propose that we do not reward that Tor relay alone. This is fundamentally where a mining reward distributed to a single entity fails. Instead, compile all intermediate Tor relays who also helped route traffic on paths with this winner. Then, reward these relayers at some lesser amount with respect to their distance from the winner of the round’s mining reward. With this mechanism, nodes are incentivized to participate regardless if they don’t route a substantially large amount of traffic. As long as they contribute to routing and relaying traffic throughout the network, they will be included in a larger Tor relayers contributions and thus earn rewards — hopefully proportional to their size and contributions.

Cooperative mining rewards

A more general description of the mechanism described above is as follows. Given a flow network over some time interval and access to the aggregated flow rates of every node in the graph (flows it helps route and relay), we wish to design a mining reward that gets awarded to nodes with probabilities proportional to their relay rates and aggregated relay amounts. Before rewarding the winner at each round, we look at all the flows that passed through the winner, compiling a list of all the other nodes also on these paths. These nodes helped route traffic that the winner is being rewarded for and should also be rewarded to some degree.

Given the winning miner, the list of cooperative miners, and the reward, we want to design an incentive compatible split to reward all miners involved. Maybe we start by giving the winner half of the reward and recursively rewarding the nearest cooperative miners with the respective fraction of the remaining half. Maybe there is something wiser. I only use this as a motivating example of ideas in my head :).

Though large miners dominate the mining rewards in most cryptocurrency protocols, incentivizing the formation of mining pools, there is certainly less centralization of power in flow networks. This is due mostly to the geographic separation of individuals and their resources. In a bandwidth sharing network, users from all over the world will need hubs in their respective regions to help relay traffic, however small or large. In an energy sharing network, individuals will need access to an initial source of energy to gain access to a larger infrastructure of buyers and sellers. In any case, these initial entry points are not necessarily incentivized in today’s decentralized protocols because they lack sheer power for earning mining rewards. With new cooperative rewarding schemes, these individuals may have more incentivizes beyond sheer capabilities. The mere incentive to route traffic throughout the network allows them the opportunity to earn rewards more often than they would being selected individually.

There are plenty of new protocols being developed and more failed attempts. I myself attempted to design a bandwidth sharing protocol called Source not too long ago. Though I wasn’t successful, I still am captivated by the ideas of incentivized routing and relaying protocols since this encompasses a huge number of applications in the digital and physical world, not that they all lend themselves to decentralization. Nonetheless, if we want to incentivize relaying of resources in any network using mining rewards, we must not forget that many parties should be rewarded to ensure all parties are incentivized. Would love to hear thoughts of people interested, feel free to reach out or comment!

--

--

Drew Stone

Tech @ Edgeware | CTO @ Commonwealth Labs | NETS @ UPENN