I've been reading more about the future of blockchains. I just came across this great piece that looks at it from first principles.

The thesis is that blockchains as we currently use them are a intermediary step, towards future where computation/block production is centralised, and verifications is *highly* decentralised. In that world zero-knowledge proofs are the enabling technology, and would be the primary way in which we access trustless compute.

We currently use blockchains as distributed computer, with the execution environment acting like a CPU and the state acting as memory.

The computer ensures the property of trustlessness by running all transactions through all nodes in the network. That makes the network as performant as its weakest link, and seriously limits the complexity of applications leveraging trustless computing. Forget about anything that requires complex maths like ML, or many transactions like games.

One path to improvement is to increase node requirements. The problem is that raising the price of the hardware needed excludes validators, and leads to more centralisation.

Another path is to break down the computer into specialised components. That's been the Ethereum roadmap, through rollups. These are cheaper (and more centralised) execution environments that keep their own state and occasionally settle on Ethereum. They achieve scaling by bundling many transactions into a single one, posted to an L1 like Ethereum.

There are different ways to do this, but the most promising seems to be zero-knowledge proofs - they are a mathematical tool that guarantees that an given computation was performed according to a certain set of rules, without having to perform the computation again. Instead, a prover creates a mathematical proof that can then be verified much more cheaply than it would take to run the computations themselves.

Bringing it back to how we ensure trustlessness in blockchains, this creates an alternative for nodes. Instead of running all transactions, they could simply run proof verifications to the same effect, but more more cheaply. In that new architecture, state still exists on a blockchain, where all nodes store a record of it at all times. But state transactions occur as a result of computations that are executed off-chain and verified on-chain. Once all nodes have verified, state can be updated.

I like to think of this as hybrid architectures, where the computation happens offchain in a provable way, and state is available at all times to all participants. That's a model where block production is centralised, but trustlessness is guaranteed by the zero-knowledge proofs and the number of nodes (lower requirements = more nodes).

This is what Vitalik envisions in his ethereum endgame, and a future I see as increasingly probable as developer tooling brings down the costs of using proofs. At some point, using proofs becomes 100x cheaper and enables developers to build much more complex applications.

If we reach that point, zero-knowledge proofs will be the dominant mode of accessing trustless computing.