Test blog

This is the test blog

There is a chain, which is made up of a series of blocks. Each block is connected to the previous block by a hash. Each block's validity is verified by proof of work, which means... checking that the first few bytes of its hash are zeroes. Each block contains transactions. Transactions spend coins that were either created through the mining process, or outputted by previous transactions. And that's pretty much it. Even a smart high school student is capable of fully wrapping their head around and understanding the Bitcoin protocol. A programmer is capable of writing a client as a hobby project.

Keeping the protocol simple brings a number of benefits that are key to Bitcoin or Ethereum being a credibly neutral and globally trusted base layer:

  • It makes the protocol simpler to reason about, increasing the number of people who understand and can participate in protocol research, development and governance. It reduces the risk that the protocol gets dominated by a technocratic class that has a high barrier to entry.
  • It greatly decreases the cost of creating new infrastructure that interfaces with the protocol (eg. new clients, new provers, new logging and other developer tools).
  • It reduces long-term protocol maintenance costs
  • It reduces the risk of catastrophic bugs, both in the specification itself and in the implementation. It also makes it easier to verify that there are no such bugs.
  • It reduces the social attack surface: there's fewer moving parts, and so fewer places to guard against special interests.

Historically, Ethereum has often not done this (sometimes because of my own decisions), and this has contributed to much of our excessive development expenditure, all kinds of security risk, and insularity of R&D culture, often in pursuit of benefits that have proven illusory. This post will describe how Ethereum 5 years from now can become close to as simple as Bitcoin.

Simplifying the consensus layer