Full stack startups

Many of today’s most exciting startups were tried before in a different form.

Suppose you develop a new technology that is valuable to some industry. The old approach was to sell or license your technology to the existing companies in that industry. The new approach is to build a complete, end-to-end product or service that bypasses existing companies.

Prominent examples of this “full stack” approach include Tesla, Warby Parker, Uber, Harry’s, Nest, Buzzfeed, and Netflix. Most of these companies had “partial stack” antecedents that either failed or ended up being relatively small businesses. The problems with the partial stack approach include:

  • Bad product experience. Nest is great because of deep, Apple-like integration between software, hardware, design, services, etc, something they couldn’t have achieved licensing to Honeywell etc.
  • Cultural resistance to new technologies. The media industry is notoriously slow to adopt new technologies, so Buzzfeed and Netflix are (mostly) bypassing them.
  • Unfavorable economics. Your slice of the stack might be quite valuable but without control of the end customer it’s very hard to get paid accordingly.

The full stack approach lets you bypass industry incumbents, completely control the customer experience, and capture a greater portion of the economic benefits you provide.

The challenge with the full stack approach is you need to get good at many different things: software, hardware, design, consumer marketing, supply chain management, sales, partnerships, regulation, etc. The good news is that if you can pull this off, it is very hard for competitors to replicate so many interlocking pieces.

My guess is we are still at the very beginning of the full stack movement. Many large industries remain relatively untouched by the information technology revolution. That will likely change now that startups have figured out the right approach.

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).