Bitcoin Q&A: Layered scaling and privacy

How should Bitcoin, as a network protocol, be scaled through a layered architecture? One of the fundamental principles of network protocol design is to have separation between the layers so they don't bleed into each other with unintended side-effects. These are the same principles in software engineering, where your goal is to create functions that first do one thing as simply as possible, and the build more complex abstractions using those primitives (once they are proven reliable). This ensures predictability of performance and security. When the internet and World Wide Web were built, the layers were not quite as separate as they should have been; the consequence is an immeasurable lack of privacy (or "fungibility of packets"). Retro-fitting it on top has not been easy or effective.