Reading Ethereum

Without revealing what you're reading.

Overview

Fewer parties will hold Ethereum's state, giving those that do more control over users' access to it.

Proposals to reduce issuance1 would reduce the reward for solo staking, weakening one reason people run their own nodes. Stateless verification2 removes another: once a node can verify a block from a proof, it no longer needs to store state for that purpose, but still pays the cost of keeping it.

Serving state is already concentrated. On the order of a hundred operators serve Ethereum state to other users, with a handful handling most of the traffic. Meanwhile, roughly ten thousand home nodes are running, but almost none serve state to anyone else. Those nodes could contribute capacity, though making them available as endpoints is only part of the work.

A caller also needs to be able to check the response. Without that, each additional endpoint is another operator that can log requests, return stale or incorrect data, or respond slowly. The caller has no reliable way to distinguish it from an operator that behaves as expected.

We propose a common interface for reading Ethereum state. Callers specify their requirements for origin privacy, content privacy, proof of correctness, and payment, and can check that those requirements are met without relying on the operator's claims. The interface stays compatible with JSON-RPC. Anonymity networks, retrieval schemes, and proof systems sit behind it and can be selected or replaced through configuration, allowing them to compete without committing everyone to the same implementation.

Operators also need a reason to serve requests. We do not design the incentive mechanism, but the interface must leave room for one through payment signalling and no switching cost between suppliers. We will publish measurements of what it costs to serve reads privately, including whether operators are willing to do so without payment. Previous volunteer-run networks for storing and serving Ethereum data have repeatedly faced this problem: serving data costs money, and without payment, supply dwindles to the operators willing to cover those costs themselves.

Our long-term goal is to get home nodes serving state again. We are starting with infrastructure providers because they can address the exposure of read requests immediately for the users they already serve.

This site covers the read path of Ethereum state access. It is maintained by the Reads team in the Ethereum Foundation's Access Layer cluster.

If you read or serve Ethereum state in production, we'd like to hear from you. We're also interested in talking with people working on retrieval, anonymity networks, or succinct proofs.