While discussing the issues faced by current blockchains, sometimes great minds come at odds with each other regarding the nature of these issues and their understanding of them. This was the case recently, in a debate that ensued between Saito’s David Lancashire and Ethereum’s Vitalik Buterin regarding the Free Rider problem and governance structures in blockchain. The Saitozen Voice now brings this exchange to you, as it occurred:
David: The sad thing about this write-up/essay is that it shows how clueless the ETH developers are about economics, particularly in terms of how they think about collective action problems and public goods.
Public goods exist when, despite the fact that overall welfare is maximized when we do Y, everyone nonetheless does X because that is what maximizes individual income regardless of what others do. Thus, the tragedy of the commons where people put more sheep on the pasture because they are better off *regardless* of what others do. Or the free rider problem Vitalik is describing here where everyone mines/stakes rather than fund protocol upgrades because that maximizes my income regardless of what others do. Vitalik is missing something fundamental about economics and it is astonishing no-one is correcting him: people pursue individual interests not group interests. He is running into a public goods problem because his incentives are pointing to the wrong place.
The source of this problem has nothing to do with governance structures. His problem is not created by governance structures. And it is not solved by governance structures. All a governance structure can do is add more problems by further distorting incentives and inducing more complicated ways for people to avoid spending money on Y. Making matters worse, “governance” structures necessarily require adding forms of closure (i.e., closed voting rings, etc.) which is pointless if one is supposed to be designing an open system (i.e., a public blockchain).
Vitalik: I’m quite aware that [people will pursue individual interests], and this issue is exactly what both this post and many other posts are about! So I don’t feel like I understand your critique here.
About the solution you propose:
X = network security. Y = research, development, education, documentation, community building. Incentivizing X is easy because X is easy to measure. But how do you measure Y? The difficulty of measuring Y is exactly the core reason why this entire problem is hard.
David: The critique is that all attempts to solve this through the creation of meta-layer governance structures are doomed to fail because they (1) add closure, and (2) create complicated and game-able incentive structures to solve problems created by complicated and game-able incentive structures.
You are dealing with problems caused by openness (non-excludability). That is why they are creating problems that take the form of public goods provision (goods which are non-excludable and non-rival). You have to stop seeing your problems as technical patches and go back and read Mancur Olson to understand what they actually are; he explains why all solutions to funding public goods (i.e., your network) that do not align your mismatched incentives on that layer require closure, cartelization and monopolization. Technical complexity will only make these problems worse, and the market will add this closure as a last resort in the absence of any other solution.
[Rather than “how do you measure Y?”], a better question would be “what you are measuring?”
I suspect the reason you assume this problem is unsolvable is that you are treating the challenge as a technical problem of paying for specific activities (“research, development, education, documentation”) rather than measuring and paying for value. If you pay nodes for value, you solve the problem on the most fundamental level because you suddenly have an incentive structure cannot be gamed; the only way to extract more wealth is to provide more value to the network. That eliminates the problem without the need for closure/monopolization/Cartelization.
I have no idea how you can pay for documentation. But the value users get from the network is directly quantifiable in the fee they pay to use it. And that means that the value the network provides the user is also quantifiable in the same way. In fact, you do have an objective and quantifiable starting point for measuring the value that nodes contribute to the network and compensating them in proportion to value contributed.
You won’t make progress until you stop going down technical dead-ends. You should be able to see the form of work that is needed, and your challenge is to turn this into something that has the same security properties as PoW and PoS. But pay for that and if education/development/documentation is needed to get more fee-flow, you can bet your life that the network will fund it. And if it is not needed then you shouldn’t be paying for it anyway because you are just creating a complicated and game-able incentive structure and killing yourself that way.
Vitalik: OK, so for the sake of argument let’s accept the claim that value is adequately measured by TX fees as given (I have quibbles with it, but we can ignore them for the moment). Even still, how do you know to what extent a given action contributed to those TX fees? In the case of mining, you can measure not only the fact that mining happened, but also exactly who contributed how many blocks to the chain at what time. With writing documentation, or development, or research, you cannot measure this.
[When you say “the network” will fund it if it’s needed to get more fee-flow], who is “the network”? There is no agent called the network; there are a bunch of various actors (miners, stakers, transaction senders, potentially coin voters). Who specifically would fund the public goods, and how, in the absence of an explicit governance mechanism issuing rewards, would they internalize the benefit of doing so?
David: >Even still, how do you know to what extent a given action contributed to those TX fees?
You don’t. You simply intuit the fact that X produced value to the user by virtue of the fact that the user handed them money. How did they do it? Perhaps they provided edge-node access infrastructure like Infura (congratulations, you are now paying for infrastructure and killing free riding on Joe Lubin). Or perhaps they developed software or provided documentation and support for developers. Perhaps they are a small shop and get transaction flow simply because users value the fact they aren’t Google (congratulations, you’re now quantifying the value of “decentralization” to your users).
You cannot see the actual work that is done in the same way you cannot see miners actually pushing electricity through ASICs. You measure the output and intuit the existence of the input based on the need for participants to do the work to make money in a competitive environment.
>With writing documentation, or development, or research, you cannot measure this.
Of course you can: if you want the docs or development or research then use the endpoint that belongs to the person producing them. Free-market firms do this every day, it is exactly how documentation, development and research activities are typically funded by investment banks and corporate software shops.
Some activities won’t be funded, but in that case they are by definition extractive and siphoning off value (i.e., you are creating a free-rider problem and possibly circular economic attacks by paying for them). Not paying for stuff that induces economic problems is a feature. And at worst, even if you can find one or two examples of public goods that persist, you’ve reduced your problem space from a “we are failing to pay for practically everything of value and the providers of that stuff are enclosing and monopolizing our network” to “we can pay for everything except X.”
>Who specifically would fund the public goods?
What public goods? You now have private goods being provided by a functioning market and no problems with under-provision, market failure, or central economic planning. The entire point of having a solution is that it eliminates the need for public goods.
You are confused because you think public goods exist in the same form in every network simply because they exist in that form in Ethereum. This is not true: no-one considers staking a public good, but there are incentive mechanisms in which it could be.
This is a digression as the original post was simply pointing out that there are systemic problems with the way ETH devs approach collective action problems by treating them as technical issues that can be solved without addressing the underlying incentive mismatch. The point here that we actually *can* measure value was simply an example offered to rebut Vitalik’s claim that it is impossible to objectively measure value in the network if it is not mining or staking. All nodes participating in consensus have full access to transaction data. We may not know what activities were performed in exchange for the fee, but there is no question we can objectively quantify who did how much work.
If there’s an epiphany that ties these two streams of thought together, it’s that once you shift to paying nodes for the value they are providing to the network, you will by definition only be giving money to those who bring more fees into the network than they extract, eliminating the possibility of defection (“consumption-without-contribution”) without adding closure. You don’t have public goods problems in this system because there are no public goods: asking how to pay for them misses the point.
To be continued in Part 2 of the Deluxe Edition of the Saitozen Voice.
For more updates, please do follow Saito’s official social media pages: