Written by
2021-02-04

The Three Solutions to Scaling

We need to go intellectual today, with a post about collective action problems like the tragedy of the commons and the free-rider problem. The reason is that how our consensus mechanisms address these issues (or fail to) determines whether we end up with public or permissioned blockchains at scale.

If we start with the tragedy of the commons, the blocksize issue is the purest embodiment of this problem: when miners add transactions (sheep) to the blockchain (pasture) they make money but also degrade the sustainability of the blockchain / pasture. The tragedy of the commons exists because individuals can profit by passing costs into the future. And the non-excludable property of the blockchain / pasture means that if they don’t do it, someone else will.

The free-rider problem is similar, except that nodes pass costs to each other in real-time. This dynamic is harder to see because there are more ways it happens. Also because when nodes prune the blockchain, connect to fellow-miners (at the expense of users), do headers-only mining, or make blocks with fees collected primarily by others, it isn’t clear that they are foisting costs on anyone. But they are — every failure to perform the unprofitable work necessary to support consensus imposes a higher cost on those who continue to behave altruistically (i.e. pay for public data services / non-excludability).

As with most incentive problems, scale makes both of these problems worse because it increases the profits available from “cheating” and the cost burden shouldered by “altruistic” nodes. Once costs rise high enough market pressures force us into either a market failure or one of two scalable solutions. Before we get to those two possibilities, lets step back and identify the common characteristic of both the tragedy of the commons and the free-rider problem.

Although the Saito whitepaper discusses these issues separately, the abstract problem in both can be generalized as follows: perverse incentives allow participants to increase income (“privatize gains”) by passing necessary costs on others (“socialize losses”). As economists have known since Mancur Olson wrote about the problem in 1965, asking the private sector to provide goods in markets with these characteristics requires firms to eliminate the property of non-excludability. In blockchain this means businesses making strategic businesses that add closure to the network, controlling the distribution of fees and simply refusing to pay for expensive activities which benefit the general public but make them uncompetitive relative to their peers.

When developers notice these problems — the desire of miners to prune the blockchain, close-off public access to their mempools, or throttle support for lite-clients — they approach them sympathetically and rush to make changes that protect the interests of those participants. For surely the for-profit motives of these players is evidence that the private sector is working! But ask the same developer to specify how they expect the network to fund public access is if they are enabling privatization strategies and you will open a circular maze of arbitrary post-rationalizations: suggestions that solve one problem by creating another elsewhere. The circularity is actually created by underlying incentive problem: you necessarily up playing whack-a-mole because helping one participant to cheat just changes who is left holding the bag.

This is a hard discussion to have with most developers. But it is the most important realization most need to experience, because from a theoretical perspective there are exactly two solutions to this problem. The first solution is what is happening in most scalable blockchains: permit the market to eliminate openness (non-excludability) in order to induce the private sector to operate network infrastructure. Economists have known that this form of closure is necessary to all solutions of this type since 1965. It is a horrible solution because it delivers a de facto permissioned blockchain.

For those who care about having a public blockchain the only viable solution is the second. When forced to sacrifice one of our two properties, we have to keep openness — the entire point of the network — and instead eliminate the ability for participants to pass costs to each other. This is the nature of a proper economic solution. And it is possible. In the case of Saito, we solve the tragedy of the commons by removing the ability for block producers to collect fees today for work which must be performed in the future. We eliminte the free-rider problem by securing the network with the only form of work (efficient fee collection) which can pay different participants for the value they contribute to the network regardless of who participates in the bundling of transactions into blocks and distribution of that data throughout the network.

Our choices are market failure (non-solution), permissioned networks which eliminate non-excludability, or public networks which eliminate the ability of participants to cheat. That is the full solution space. And considered from this perspective, it is really not a hard choice at all.

Written by