The Transaction Costs of Tokenizing Everything

I wonder if Al Gore ever looks down at us peons, crawling around the internet like eight-legged leeches:

I invented that. I took the initiative in creating the Internet. Now all these freeloaders are using MY internet protocol to drive billions of dollars worth of value. For FREE.

Damn, I should have done an ICO.

Even though Al Gore neglected to tokenize his internet protocol*, someone else came along with the next-best thing.

In 1999, a clever company called Enron invented something called a bandwidth contract.

The internet is just a bunch of routers and cables, sending and receiving data all day long. Most internet providers have peering agreements, where they carry each other’s traffic for free. Sharing is mutually beneficial, and their customers pay a fixed monthly rate regardless of use.

That’s all well and good when capacity is plentiful, but what happens if half the country wants to stream Sunday Night Football while I’m trying to sync my Bitcoin node? Whose data gets to go first?

Enron’s bandwidth contracts were designed to solve this potential queueing problem. By forcing internet users to bid for bandwidth by the minute, the free market would decide the optimal allocation of resources [1].

Sadly, Enron imploded before it could fully realize its bandwidth trading dream. Still, the idea of turning every network into a market was pretty hot in the dot-com days [2]. To see how things might have turned out, we can look at a company called Mojo Nation.

A MASSIVE AMOUNT OF STORAGE SITS UNUSED IN DATA CENTERS AND HARD DRIVES AROUND THE WORLD. Let your hard drive shit out money by fulfilling storage requests on the open market!

Such is the marketing pitch of services like Filecoin, Sia, Storj, MaidSafe, and all those other decentralized file storage tokens. Seventeen years ago, their founders were still in diapers when Mojo Nation launched to address the problem of Pareto-inefficient data storage.

Mojo Nation created a digital payment system to buy and sell computational resources. Participants could earn Mojo tokens by contributing things like disk space, bandwidth, CPU cycles. Those who wanted resources offered bids in outgoing requests. Mojo tokens relied on a centralized mint because blockchains weren’t around yet, but centralization was the least of its problems: Tokens were a huge distraction from what users really wanted to do, which was share files [3].

A bidding market is an awfully complicated thing. Take Bitcoin, for instance. Each block has a finite capacity, so participants submit transaction fees to incentivize miners to include their transactions. It’s a simple concept, but transaction fees are the most aggravating part of Bitcoin. There are people like Roger Ver who have been using Bitcoin since 2011 and STILL can’t figure out how transaction fees work.

I’m not trying to pick on Roger here; this is not a user-friendly experience. Those who want to tokenize all the protocols are effectively shoehorning the same shitty experience into every aspect of the internet. My mother can’t even update her Facebook picture without backup assist; how on earth will she manage five-dozen protocol tokens to navigate the web?

Many dot-com era platforms tried to create bandwidth exchanges, but none found willing participants. Enron and Blockbuster temporarily joined forces to create on-demand streaming video, in hopes that they could clog up so much bandwidth that internet providers would start a bandwidth bidding war. No such luck. As it turns out, bandwidth — and most computational resources — are simply too cheap to meter.

After Mojo Nation’s demise, a former employee stripped the token incentives out of the protocol and created a simple tit-for-tat filesharing system. The software client uploads files to peers that provide downloads [4]. Users can’t accumulate credits, and sometimes freeloaders go unpunished, but people don’t care about perfect resource allocation — they just want convenient file access. By 2004, BitTorrent was responsible for a quarter of all the traffic on the internet.

And everyone lived Pareto sub-Optimally ever after.

* Kidding. The Internet Protocol was created by Vint Cerf and Bob Kahn. The only thing Al Gore invented was global warming.

1. Enron’s Bandwidth Trading patent, 2001.

2. Mark Miller and K. Eric Drexler. The Agoric Papers, 2000.

3. A conversation about Mojo Nation on Unenumerated, ca. 2007.

4. Bram Cohen. Incentives Build Robustness in BitTorrent, 2003.

5. Bryce Wilcox-O’Hearn, who now goes by Zooko, CEO of ZCash. Mojo Nation: Experiences Deploying a Large-Scale Emergent Network, IPTPS 2002.

6. Mojo Nation website from 2000.

OpenBazaar: How Does a Decentralized Marketplace Work?

I love Etsy. Etsy’s great! Except… I just wish it wasn’t so… centralized.

I assume that’s what Andreessen Horowitz and Union Square Ventures were thinking when they invested $1 million into decentralized marketplace OpenBazaar.

Whatever, this is how it works.

BitTorrent, not Blockchain
People call OpenBazaar a Bitcoin company, but it’s not. Not any more than Microsoft is a Bitcoin company for accepting bitcoin payments, anyway. OpenBazaar uses the network structure of BitTorrent.

Bitcoin Network vs BitTorrent Network
A brand-new Bitcoin node discovers other nodes by hitting up a few known seed nodes. The seed nodes return a list of IP addresses for other known nodes. When someone sends a transaction through a node, the node broadcasts it to all of their peers. If the peers consider the transaction valid, they rebroadcast it to all of their peers.

Whereas Bitcoin operates on consensus, BitTorrent operates on discovery. I don’t need to broadcast to the entire network that I’m looking for a pirated copy of Game of Thrones. I just want to find some peers who have the episode.

BitTorrent nodes maintain a distributed hash table (DHT), which is like a location map for all the clients in the network. An infohash of each available torrent is also stored in the table.

If I want to download Game of Thrones, I send a request for the torrent infohash to any known node. That node will reply with the contact information of nodes from its routing table that are closer* to the infohash than itself. I keep querying subsequent nodes, getting closer and closer, until I hit a node that has the infohash. The node with the infohash replies with the contact information of peers who are downloading the Game of Thrones torrent. And I connect to them for my download.

*The distance metric is an XOR function. Not physical distance.

OpenBazaar, the Decentralized Marketplace
The OpenBazaar network operates using the same distributed hash table approach as BitTorrent. Stores are nodes, each running OpenBazaar on a client machine. Each store has a unique GUID.

Assume for a moment that I have the GUID of my friend George’s store. Through the distributed hash table, I locate the store’s IP address and connect to the store. Maybe I see that his store is selling a ziplock bag containing some carpet freshener:


The store listing is actually an unsigned Ricardian contract containing a description of the item. No, it’s not a smart contract.

If I want to purchase this bag of carpet freshener, I sign the contract. George signs the contract also, to confirm that we agree on the trade. The contract is sent to a third party. An arbiter, notary, oracle, whatever, someone who agrees to settle any disputes. The arbiter puts a third signature on the contract and sends everyone a copy. A multi-signature bitcoin address is appended to the contract.

This is the escrow address. Outbound transactions require two out of three keys. Me, George, and the arbiter each have a private key. As the buyer, I send a bitcoin deposit to this address and wait for my carpet freshener to arrive in the mail.

My input initiates an unsigned transaction. I set the output to George’s bitcoin address, but without any signatures, the transaction doesn’t do anything. I send the unsigned transaction to George.

If the carpet freshener arrives and I am happy, then I send George my signature, which is generated from my private key and the transaction.

George generates his signature too, because he wants to receive the money. With two signatures, George can send the complete transaction to a Bitcoin node, which will broadcast it to the network for confirmation and settlement.

If the carpet freshener arrives and I discover that the bag actually contains some morally reprehensible substance, I might refuse to sign the transaction. Then the arbiter comes in, and if she agrees that I have been wronged, she doesn’t sign either. The transaction expires without completion and the input deposit is released back to its origination, which is my bitcoin address.

Or maybe I lied, and the arbiter determines that I did in fact receive Grade A pure Colombian carpet freshener. Then she would sign the transaction instead of me, and George uses her signature to get his payment.

Bazaar Bay
How can I discover all the fantastic resources on offer in my BitTorrent network? The Pirate Bay provides a searchable database of torrent infohashes. And of course, someone already set up a Bazaar Bay to search for stores and their associated listings.

Check out Elaine’s store!
I set up a node to run a store on my server. I created a tunnel so that anyone can use my store as a portal to try out OpenBazaar without actually running a node. Try it! You can even sell stuff! Just don’t list anything that would get me thrown in prison, please.


1. DHT Protocol –
2. OpenBazaar wiki
3. OpenBazaar Git Repository