David Bergendahl
6 min readSep 18, 2014
(image credit: digital trends)

Bitcoin Mark II

TLDR: PopcornTime is equivalent to Bitcoin Mk. 2. Much as file sharing went from Napster to BitTorrent to PopcornTime, Bitcoin will go from current version to a form which relies not on mining or transaction fees but on simultaneous peer CPU time as “payment” for transaction processing/clearing, solving the free-rider problem while remaining decentralized.

The history of file sharing (kind of). This story should be familiar to many of you. We start with Napster, which we can think of as v1 file sharing. If you want a great overview of all the versions I’ve left out in that sweeping simplification, here it is. Also, google. Napster is a peer to peer filesharing network. Roughly, if I have a file in my Napster sharing folder (see what I mean by “roughly”?), anyone else can download it from me. This is true peer-to-peer, as in it’s me to you, one-on-one. A few problems:

  1. Inefficient. Download time is limited by the sharer’s upload speed, when there might be others with an identical file and better upload speeds
  2. Centralized. Indexing and searching is all done on Napster servers. Centralization creates a potential weakpoint in the network, and is also expensive (although Napster never charged, hosting cost it money)
  3. Free-riders. Nothing stops me from downloading files without compensating the central index / search hub (and perpetuating the service), or from not sharing the files I have downloaded / other files (deepening or strengthening the network). This is important because the Napster network can’t scale without more people sharing the same file. If files aren’t duplicated, you end up with a lot of downloaders monopolizing the bandwidth of very few uploaders, which isn’t scaleable

Skip forward a bit (HT to Gnutella et al.) and you have BitTorrent. Let’s think of this as v2 file sharing. BitTorrent solves two of the above problems. By having each downloader connect to a distributed “swarm” of uploaders, looking for just a piece of the target file, BitTorrent is not limited by the upload speed of a single uploader. It’s also decentralized: to find and download through BitTorrent, I download a .torrent file (from a file site or forum), which (very roughly!) tells my BitTorrent client what the tracker URL is, and what the file I want looks like. My client reaches out to the tracker URL, which provides a list of uploaders, from which my client downloads pieces of the file as quickly as it can, without going through the tracker. So, BitTorrent improves on Napster by being efficient and decentralized. However, it still has a big problem:

  1. Free-riders. Nothing stops me from downloading files and not sharing them. This means that I’m using network resources (other people’s bandwidth / CPU time) but am not “paying” for it by re-sharing the files and thereby expanding available uploading bandwidth/CPUs and strengthening the network. Again, the free-rider issue prevents BitTorrent from scaling properly

To overcome this issue, members-only groups share private torrents, with membership regulated by an upload/download ratio. I “pay” for my downloads by sharing files, thereby strengthening the network. But this creates a familiar problem:

  1. Centralized. Frustrating, right? Now there’s a central location that lists the available private torrents and regulates upload/download ratios. On the upside, these members-only groups can scale easily — but that won’t solve the centralization issue

Which brings me to v3 of file sharing. Popcorntime is a crazy project based on BitTorrent. From the user’s perspective, I use Popcorntime like Netflix — I open the client, select a movie, it begins streaming to me, and I watch it. That simple. But behind the scenes is (roughly!!) very interesting. What’s actually happening is that, as you’re streaming this movie (over the BitTorrent network), Popcorntime is automatically uploading the parts you’ve downloaded, thereby strengthening the network. This solves the free-rider problem. I am “paying” to watch a movie by mandatorily uploading it to other clients. I can’t free-ride; I am forced to be a good actor. Most importantly, it enforces parity on the network between uploaders and downloaders, which solves the scaling issue while remaining decentralized. Pretty neat.

Ok, but what does this have to do with Bitcoin?

Well, Bitcoin shares much with BitTorrent (yes, beyond the first three letters) in that both are open source, decentralized, encrypted infrastructure for sharing. The difference is that BitTorrent’s trick is to help duplicate files as quickly as possible, whereas Bitcoin’s is precisely the opposite. Every Bitcoin transaction is processed and cleared by a “miner”, who receives a small transaction fee and the opportunity to receive a free “mined” Bitcoin for services rendered. This is Bitcoin’s answer to the same problem BitTorrent faced: the free-rider problem. Bitcoin wouldn’t work if I had to rely on the good graces of the community to process and clear my transactions. In my mind, Bitcoin needed a way to reward those that process/clear. Bitcoin can’t use dollars because the network can’t procedurally issue dollars (what is it, the US Treasury?), and using a central paying party would create the centralization problem. Instead, Bitcoin created the Bitcoin (!), a currency which could be procedurally issued to compensate miners, and, once issuance stops, traded among network users to compensate miners through transaction fees.

Is this a problem? Well, no. Sure, you could argue that Bitcoin is a naturally deflationary currency and that that’s a fatal flaw. Or you could say that it’s illegal, or value-less, or all kinds of other things. I don’t particularly care for any of these arguments. The problem with the above set up is:

  1. It doesn’t scale. Look at the hash rates and the amount of CPUs required to clear and process the current volume of Bitcoin transactions. And that’s while Bitcoin is in its infancy. Yes, technology could develop to meaningfully lower the energy required to process all that Bitcoin, but it still means that some small group of people (miners) will be trying to make a profit between the likelihood of receiving the next free Bitcoin and the cost of electricity. And, the more users of Bitcoin, the higher the demands on the miners. It isn’t an efficient set-up

Drilling down (pun!), what I’m really saying is that by making the distinction between “miners” and “users”, Bitcoin is creating a smaller group (miners) that services a larger group (users), where the survival of the small group is driven by exogenous factors, like the cost of electricity. At the end of the day, mining will logically be conducted by a few companies with access to the cheapest energy in the world, which creates a centralization issue.

So why Popcorntime?

Let’s just use this loose heuristic:

Napster is centralized. Napster = Visa / current card networks

BitTorrent is decentralized but still has scaling issues. BitTorrent = Bitcoin

Popcorntime = Bitcoin Mk. 2

What does that mean? It means that the Popcorntime model solves all scaling issues by procedurally removing the freerider effect. In Popcorntime, you are able to stream movies because you are uploading files. In Bitcoin Mk. 2, your transactions are processed / cleared because you are processing/clearing other transactions.

Said another way — miners are no longer a distinct group in the Bitcoin network. Every Bitcoin transaction temporarily creates a miner.

Or — the mining CPUs are decentralized to every computer engaging in a transaction at any given time on the network.

This model means that at any given time the number of Bitcoin transactions is equal to the number of Bitcoin processing/settlement resources.

How would this work? Very simplistically, every computer / CPU involved in sending Bitcoin is connected to the internet and thus to the network. Change the Bitcoin protocol so that it requires each sender to engage in the settlement/processing competition in order for their own transaction to transmit. You would probably need to make changes to the confirmation time, potentially require each sender to process/settle multiple transactions (so that you get multiple confirmations), and make changes to the way transactions are blocked and added to the chain… but I can’t see anything that would rule this configuration out.

Admittedly, this is very rough. I’m probably a fool, missing some obvious issues. But the heuristic makes sense to me, and I’m happy to be a fool if it allows me to ask the question: would this work?

Because, if it does, all of a sudden the Bitcoin network is just a very elegant “Bit” network, without the need of an explicit coin to reward processing/settlement. The “coin” can ride over the protocol alongside any other transfers that need to be settled to avoid duplication (smart contracts, digital media rights, identification information, etc.). This makes regulation a moot point (regulating a transfer protocol = regulating the internet), and means that there’s no need for a smart contract to ride alongside 1 satoshi. It makes things cleaner, more decentralized, and more efficient.

Bitcoin, Mark II.

David Bergendahl

Co-Founder @Hugo; husband & father; crushing the upfront cost of car insurance for millions of Americans