Stored Hashcash

One of the greatest inventions in the history of computer security is Hashcash. Internet blights like spam and denial-of-service attacks are what economists call “tragedy of the commons” problems. They exploit the fact that it’s free to send email and make web requests. At zero cost, you can have a profitable business even at extremely low success rates.

One way to fix these problems is to impose tariffs that hurt bad actors without hurting good actors. For example, you could impose “postage fees” on every email and web request. Unfortunately, in practice, this is impossible, because you’d have to set up billing relationships between every computer that wants to communicate.

The brilliant idea behind Hashcash is to replace a monetary postage fee with a computational postage fee. In order to send an email, the sender first has to solve a math problem. Legitimate activities suffer an indiscernible delay, but illegitimate activities that require massive volume are hobbled.

Hashcash is a great idea, but cumbersome in practice. For example, the cost imposed on senders varies widely depending on the performance of their email servers. It also hinders legitimate bulk emails like clubs and retailers sending updates to their mailing lists.

The offline analogy to Hashcash is a postal system where senders are required to perform some work every time they want to send something. If you’re a lawyer, you need to practice some law before you send mail. If you’re a doctor, you need to cure something before you send mail. Etc. This of course would be a preposterous postal system.

Adam Smith called money “stored labor“. You do your work and then store your labor as money, which you can later exchange for labor stored by other people. Storing labor in the form of money turns out to be a very flexible system for trading labor, and far superior to the barter system of performing work whenever your counterparty performs work.

So Adam Smith’s version of Hashcash is a system where you get credits for doing computation. You store your computational credits and spend them at your leisure. If you want to send an email, you can spend a little stored Hashcash. If I send you an email and you reply, we’re even. If you send out a billion spam emails, it costs you a lot and undermines your spammy business model. 

There are other important problems that stored Hashcash could solve. Denial-of-service attacks are spam attacks except they happen on HTTP instead of SMTP and the payoff is ransom instead of spam offers. Computer scientists have long believed that pricing schemes could dramatically reduce network congestion. Like every large-scale distributed system, the Internet benefits when scarce resources are efficiently allocated.

It seems plausible that if a system like stored Hashcash were developed, some people would prefer to purchase stored Hashcash directly instead of generating it themselves. A market for stored Hashcash would emerge, with the value being some function of the supply and demand of scarce Internet resources.

So here’s my question: suppose someone invented a way to store Hashcash. It could dramatically reduce spam and denial-of-service attacks, and more efficiently allocate network bandwidth and other Internet resources. How valuable would stored Hashcash be?

“I’ve come up with a set of rules that describe our reactions to technologies”

“I’ve come up with a set of rules that describe our reactions to technologies:

1. Anything that is in the world when you’re born is normal and ordinary and is just a natural part of the way the world works.

2. Anything that’s invented between when you’re fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it.

3. Anything invented after you’re thirty-five is against the natural order of things.”

- Douglas Adams (entire original article is well worth reading)

 

Four categories of Bitcoin-related projects

New Bitcoin-related software projects are launching every day. From what I can tell these projects fall into four main categories:

Bitcoin apps and services: These try to make Bitcoin more accessible, stable, secure, and useful. Examples: wallets, merchant services, fiat-to-crypto exchanges, crypto-to-crypto exchanges, Bitcoin derivatives exchanges, tipping services, and merchant microtransaction services.

Bitcoin protocol extensions: These are applications that use the Bitcoin blockchain as a global, secure, single-instance database and generally ignore Bitcoin-as-a-currency. Examples: Mastercoin, Colored Coins, and a Princeton project that is building a predictive market.

Altcoins: These are basically Bitcoin variants with branding and technical modifications (and their own blockchain). Like Bitcoin, the primary purpose is to allow the store and transfer of value. Examples: LitecoinDogecoin.

Appcoins: These are new projects that are inspired by Bitcoin’s architecture but are intended to do things besides storing/transferring value (they also use their own blockchain). Examples: Namecoin, Ethereum.

To me, the first two categories are probably the most interesting. If there is one thing we’ve learned from the development of Internet protocols like HTTP and SMTP, it’s that network adoption is key. There will always be better protocols, but the combination of broad adoption and open extensibility generally wins. (Although Naval and Balaji make a compelling case for Appcoins here).

Why I’m interested in Bitcoin

Some people assume that all Bitcoin advocates are motivated by a libertarian political agenda. That is certainly not my agenda. I’m a lifelong Democrat who supported Obama in the last two elections. I think the Federal Reserve plays an important function, and I don’t agree with people who think inflation should be our nation’s primary economic concern.

It is true that many early Bitcoin proponents were libertarians. But it is also true that almost every significant computing movement had early proponents who were ideologically motivated. The developers of the first personal computers were closely aligned with the 60s counterculture movement. Open source software was originally created by people who believed that all software should be available for free. Early advocates of blogging and collaborative systems like Wikipedia were trying to democratize the production and dissemination of information. This isn’t coincidental: broad-based technology movements have depended on non-economic participants early on since it often took years for commercial participants to get involved.

If not for political reasons, why am I interested in Bitcoin? Like a lot of people, I was disturbed by the aftermath of the 2008 financial crisis. I thought the government did what it had to do at the peak of the crisis but missed an important opportunity afterwards to reform the financial system. It seemed to me that there were two ways to improve the system: from above through regulation (which I support), or from below through competition.

I wrote a blog post about this issue about four years ago. My argument was that if the technology industry wants to change the financial services industry, it can’t just build new services on top of existing financial services companies. That would be like trying to disrupt Google or Apple by building services on top of their platforms. To actually have an impact (and create large businesses) you need to create services that completely bypass incumbent financial companies. I gave a series of examples including payments:

Charging 20% interest rates (banks) and skimming pennies off every transaction (Visa and Mastercard) is a very profitable business. Starting a new payment company that doesn’t depend on the existing banks and credit card companies could be disruptive.

Since then I made a number of financial services technology investments, all of which were consistent with this thesis.

I started getting interested in Bitcoin about two years ago. Like a lot of people I initially dismissed Bitcoin as a speculative bubble (“Internet tulip bulbs”) or a place to stash money for people worried about inflation (“Internet gold”). At some point, I had an “aha!” moment and realized that Bitcoin was best understood as a new software protocol through which you could rebuild the payments industry in ways that are better and cheaper.

The payment industry is a $500 billion industry (or larger, depending on how you measure it). That means banks and payment companies charge $500B per year in fees to provide a service that mostly involves moving bits around the Internet. There are other services they provide like credit, security, and dispute resolution, but in any reasonable analysis these services should cost dramatically less than they currently do. The payment industry should be at least an order of magnitude smaller than it is today.

Another thing that informed my view was seeing what a huge headache payments were for startups I was involved with. Let’s say you sell electronics online. Profit margins in those businesses are usually under 5%, which means the 2.5% payment fees consume half the margin. That’s money that could be reinvested in the business, passed back to consumers, or taxed by the government. Of all of those choices, handing 2.5% to banks to move bits around the Internet is the worst possible choice. The other main challenge startups have with payments is accepting international payments. If you are wondering why your favorite technology service isn’t available in your country, the answer is often payments.

But the most exciting aspect of Bitcoin (and this is admittedly more speculative) are all the interesting new business and technology models that “programmable money” could enable. For example, I am very bullish on micropayments (this is a longer topic which I plan to write about separately). The world recently ran its first large-scale micropayments experiment – so called in-app payments on iOS and Android – and despite some serious design flaws (centralized control, 30% fees), it was a smashing success. I think Bitcoin could enable a micropayment system for the open web, and thereby provide a business model beyond banner ads for many important services such as journalism.

I’m not claiming that Bitcoin (or any new technology) can save the economy or the world. The technology industry is in the business of creating products and services that either enable new activities or make existing activities less expensive. Venture capitalists are in the business of funding entrepreneurs who run experiments to try to create these new products and services. I believe the only way the technology industry can offer meaningfully improved financial services is by building new services that don’t depend on incumbent companies. Bitcoin is a serious proposal for dramatically improving the payments industry. There are plenty of open questions but I think it’s an experiment worth running.