At a fundamental level, blockchains are composed of multiple distinct layers, similar to other technology protocols like the internet paradigm (Link, Network, Internet, Transport, Application). Here, we present a framework of the layers that compose blockchains. The layers are defined such that each layer depends on the one(s) below it. Here, we discuss what each layer provides as opposed to how each layer is implemented.