Building Blockchain Incentives

Part of the Deconstructing Blockchain series.

The hardest part of building peer-to-peer technologies has always been designing the incentives. How do you keep the network healthy? How do you get each peer to participate in the activities that keep the system as a whole working instead of just doing what benefits an individual?

These aren’t problems you find in centralized services where you can control the producer and everyone else is a consumer. In a peer-to-peer system each node is both a consumer and a producer and incentive design is what keeps the system working as a whole.

As I’ve been diving head first into blockchain technologies I’ve been deconstructing the different approaches and thinking about what new incentive structures can be created. When used properly, blockchains offer a potential solution to one of the oldest problems we’ve had in building effective peer-to-peer systems.

Some History

Whenever you’re looking at a new peer-to-peer system it’s best to start with Bittorrent as a baseline for comparison. Bittorrent has proven to be the largest outright success in peer-to-peer technologies. Not only is it widely adopted but it‘s a superior experience for its intended use case: distributing large files over the internet. In fact, it out-performs centralized alternatives and this is mainly due to how its incentives are designed.

When you download a torrent your node makes decisions about which blocks of the file to download first and what other peers to prioritize in its own sharing. There’s really only one basic rule that all the peers follow:

  • Peers prioritize sharing parts of the file with peers that have shared the most with them.

Knowing that this is how the other peers will prioritize your experience, several second order rules are obvious if a node wants to download a file as fast as possible.

  • Peers will request the rarest parts of the file first. This increases the likelihood other peers will ask it for a piece of the file, which will in turn give the peer priority in getting future pieces of the file. In the aggregate this means the network is always keeping each part of the file alive and not allowing certain parts to become too rare.
  • Peers that have the best connection to one another will naturally send and receive more parts of the file between each other. This means that the larger the file is the more efficient the network becomes. Peers that are closer to each other on the internet will naturally be favored over peers that are farther away.

However, there’s one big incentive missing from Bittorent that makes it quite a problem for many use cases.

  • There is no built-in incentive to seed a file after you’ve downloaded it.

Without an incentive to keep a file available indefinitely the system is not very reliable and files will eventually become unavailable unless it is so popular that people are always in the process of transferring it.

The primary solution to this has been through the use of private torrent trackers. These are typically invite-only trackers that not only offer a searchable index of torrents but also keep track of how much each account has uploaded and downloaded.

Private trackers seed an account with a small number of credits to be used in downloading initial files. Downloading spends credit and uploading increases your credit. Keeping files alive for an indefinite amount of time is now a great way to continue accumulating credits. Another word we might use for credit is currency. A tracker is a like a central bank, managing the transactions of an application specific currency.

With Smart Contracts

Blockchains offer us an alternative to a central authority for managing application specific currencies. Anything we can prove with a smart contract can be used to exchange the currency for provable actions, like transferring a file.

Rather than come up with grandiose ideas about what changes this could bring to existing markets I’m just going to list a few of my favorites that are already happening.

This is a very new space that is developing very quickly. Not every use case can be designed as a currency exchange, nor can many use cases be accomplished if some form of currency is required, but this does offer a solution to one of the oldest problems we’ve had in pure peer-to-peer systems.

Show your support

Clapping shows how much you appreciated Mikeal’s story.