A central concept on the internet is Layering. Each of the protocols in the internet stack talks to the layer directly above and below it — new protocols can be added as long as they speak the language of their layer. Protocols at one layer can be upgraded so long as they don’t break compatibility with the layer above or below it. This architecture maximizes interoperability and allows for a great deal of flexibility. The shape of the layers has been described as an hourglass, like this:
(credit: University of Calgary)
Beyond layering at the protocol level, we have gone on to build layers at the infrastructure and application levels. Infrastructure like AWS and Cloudflare, software libraries like Node, Rails, and jQuery, services like Twilio and Stripe. To build an application today, you do not need to go build a data center (or many of them), think about how to manually process HTTP requests, or write bare-metal adapters to the payments or telecom systems.
In the crypto/blockchain space, we are just at the very beginning of establishing layers. I think it’s safe to say that today’s blockchain landscape looks more like the early days of AOL, Prodigy and Compuserve (standalone, disconnected networks) than like the open, interconnected internet. A major reason for this is the introduction of cryptocurrencies and tokens, which provide a strong incentive — for now at least — for starting new networks and maximizing value of existing networks. But, as teams continue to build, and continue to build the same things over and over again, layering seems both inevitable and needed.
Within blockchains, layers delineate networking (libp2p as a leading tool), consensus (tendermint, hashcash and others), applications/smart contracts, and perhaps indexing/search (something everyone is doing on their own right now, but that thegraph is looking to solve as a layer).
Perhaps the most interesting question is how different blockchain systems may layer together. Cosmos and Polkadot are building systems for interoperable blockchains via a hub-and-spoke model, with shadow assets pegged to outside chains for interoperability. Interledger is attempting to be a more universal cross-ledger (ledger, meaning blockchains and otherwise) protocol, akin to TCP/IP in the core internet stack.
How these systems interconnect, and layer atop one another, seems like a fundamental question as we move from the speculative phase to the functional phase. We are just now beginning to get glimpses of it.