Author | LXDAO
01 Fireside Chat
Bruce: Hello everyone, I am Bruce, a core contributor to LXDAO and ETHPanda. Today we will focus on the theme of "Coordination" to explore the multi-level coordination conflicts and possible solutions in the Ethereum ecosystem. I hope that through this dialogue, we can inspire everyone to think about how to deal with coordination issues in a decentralized ecosystem, and gain inspiration for coping with coordination challenges, so that the entire ecosystem can run more smoothly and efficiently.
As Vitalik is an important participant and observer of the Ethereum ecosystem, we are very happy to invite him. First, please let Vitalik give a brief introduction.
Vitalik: Hi everyone, I'm Vitalik Buterin, co-founder of Bitcoin Magazine. I've been involved in Ethereum for the past 10 years. I started out in research but have also been involved in many different aspects of the ecosystem.
Bruce: Today we are here to discuss topics related to coordination. From your perspective, how do you define coordination in Ethereum? Are there some good coordination cases in the Ethereum ecosystem?
VB: I think coordination can mean a lot of different things. In an abstract and general sense, coordination basically means multiple people acting together toward some common goal, and not acting in a way that ignores each other's needs or acts against each other. It can mean a lot of different things. For example, it could mean people contributing to some public good, like projects that are valuable to the entire ecosystem.
It could also mean people working together on some common standard, like people switching from speaking one language to speaking another because the other language is better in some way. This is basically what happens every time the Ethereum protocol is upgraded. It could even be a highly chaotic effort of people doing different things completely independently, but still contributing to some common goal in the end. Wikipedia edits are an example of this. No one is trying to boss anyone around, and no one is forcing everyone to do things the same way at the same time. But the result is that you still have many contributors contributing to one thing that benefits everyone. So I think all of these different types of coordination are happening in the Ethereum ecosystem, and the ecosystem relies heavily on this.
Bruce: Speaking of the Ethereum ecosystem, the Ethereum community encourages diversity due to the idea of the "infinite garden". However, this diversity may lead to competition for resources and reputation or similar issues. So, what conflicts and coordination challenges have you observed in terms of competition and cooperation between communities? What solutions do you think can promote better cooperation and development between communities?
VB: One of the challenges that we've seen so far that I think we've solved pretty well is that different Ethereum clients are working together to upgrade the Ethereum network and update their code at the same time, and many different parts of the ecosystem are doing this, which is actually a pretty impressive achievement. Ethereum is a unique ecosystem in that the largest Ethereum client, Geth, is estimated to only have about 52% of the network. This is not seen elsewhere. In most ecosystems, there is basically one player that controls almost everything. We see this in browsers, we see this in Bitcoin clients, and we even see this in many implementations of social protocols that are trying to be decentralized.
The challenge with this approach is that we still have to agree on the next upgrade to do every year. There are a lot of structures within Ethereum that try to do this, try to help achieve this goal. There are in-person meetups every year, several in fact. We had one in Kenya, and we had a smaller meetup yesterday. Then there are AllCoreDevs meetings, online discussions, incentives, and so on. In the beginning, the Ethereum Foundation gave some very significant grants to these client teams. Even to this day, it still gives some grants, but the majority of their income still comes from the clients themselves, so this is an example.
Another example is funding public projects across the Ethereum ecosystem. Historically, the Ethereum Foundation has been doing this, but now we're seeing the emergence of Gitcoin Grants, Protocol Guild, and other foundations. We released our transparency report about two days ago. One of the interesting stats is that in terms of the amount of public funding allocated in the ecosystem in 2022 and 2023, the foundation only accounts for 49%, just under half. 51% comes from other organizations. Now I think there are other challenges. One of the big challenges is standard cooperation between layer 2s and between wallets. This is an area that is starting to be discussed now. And all of these discussions about supporting public projects are continuing. There are more people trying different experiments now because Gitcoin, Optimism, and Protocol Guild have started to lead the way.
Bruce: You just mentioned issues like coordination conflicts between clients. Basically, as the Ethereum ecosystem grows, the EIP and ERC standard-setting process involves more stakeholders, which makes the process more compact and slower. What are the main conflicts you observed in the standard-setting process? How do you think we can balance openness and efficiency to more effectively reach consensus and promote the development of standards?
Vitalik: I think there are three types of conflict, and it's important to think about them separately. The first is different groups trying to push different standards because the standards they push are good for them, and this doesn't just happen in Ethereum, it happens all over the world. The second type of conflict is people pushing different standards simply because they either have what's called "not invented here syndrome" or because they want the pride and social status of creating something that everyone uses. The third type is not really a conflict at all, it's just people having some small differences of opinion, and you just need to work hard to get everyone to sit down together, put aside their differences, and come to a solution that everyone is relatively satisfied with.
For the first case, I think one thing we can do in a decentralized world is to establish basic norms about what types of standards are likely to be adopted. For example, if you publish an account abstraction standard and it requires that sending account abstraction transactions must go through my server, then no one will accept it. People will only accept things that seem truly neutral.
Another thing we are trying is that at Devcon and ETHcc, a lot of people are unhappy about having too many competing side events. So we did an experiment where during Devcon, we discourage people from hosting any kind of side events. Side events can be held before or after Devcon, and during Devcon, we encourage people to set up community hubs inside Devcon. If your community hub is not simply advertising for yourself but can promote substantive cooperation between different partners in the same industry, then the foundation will be more inclined to support it.
So basically, instead of having a separate Optimism event, Arbitrum event, or Starknet event, we're going to have a Multi-L2 event as part of Devcon. In this way, at least on a social level, collaboration is encouraged to happen, rather than one person driving everything and then passing proposals as their own. This is also what we're starting to experiment with more in terms of standards, trying to establish this norm. I think this helps solve other problems as well. On the one hand, there's the pride that people want to support their own things. On the other hand, there's the very human point of not wanting to succumb to the "strong dominance" of others, or resisting what's imposed on them.
The solution to both of these problems is to try to encourage more collaboration, even from the very beginning of a process. As for the third problem, it's that people aren't talking to each other enough, we just need more people and organizations to create those forums where that conversation can take place.
Bruce:Thank you. The next question is about Layer 2. Because we all know that Layer 2 solutions play a key role in Ethereum scaling. So, how do you view the coordination challenges between Layer 2 and Ethereum? What challenges or strategies exist in aligning the development and governance of Layer 2 solutions with other ecosystems?
Vitalik: Layer 2 started out in a very independent way, with a lot of people starting to build their own technology stacks and just trying to make something that worked, something that could scale Ethereum relatively quickly. And now the real focus of the ecosystem this year is basically that Layer 2 already exists, they work, and they work as expected. So everything is migrating to Layer 2. But how do we make sure that Layer 2 actually feels like and operates as an ecosystem, rather than feeling like 40 different blockchains? Here are specific examples. For example, if you have tokens on Optimism, but you have some applications on Arbitrum, the deposit process, that is, transferring tokens from one place to another, becomes very difficult. There are a lot of non-standard things like this, there are too many things that don't have unified standards.
So we've started discussions about how to standardize these cross-Layer 2 things, and that includes participation from Layer 2 teams and wallet teams, and it's an area where a lot of progress is being made.
Bruce: Thank you. As time is limited, Vitalik, do you have any additional thoughts to share on coordination?
Vitalik: When it comes to coordination, I think there are two important aspects. One is the social aspect, which is the communication between people, and the other is the economic aspect. It's funny, people like me tend to overemphasize the economic aspect. But I think in this conversation, we focus more on the social aspect, which is actually good.
But the economic side is also important, you can't try to force people to do things that are seriously against their incentives. Because as you can see, if you rely too much on moral pressure, then eventually, people will get frustrated and angry and then rebel against you, and sometimes even go tell someone else something completely different and crazy. So I think in this regard, what we've been successful at as an ecosystem is that we're good at funding small projects. Like, if you have an important public good that needs funding, and you only need $100,000 or $300,000 to do a demo, there are a lot of people who will fund it, there are Ethereum Foundation, individual funders, DAO organizations, individual Layer 2 projects, ETH big players, if they see the need, a lot of people will give you $300,000.
And the challenge we face is that when a project moves from a demo that needs $300,000 to a mainstream project that needs $30 million and needs to serve the entire Ethereum user base, the incentive mechanism basically shifts from full socialism to full capitalism, like at the $30 million level, there is actually nothing that really incentivizes you to do socially beneficial behavior except market incentives. Because everyone basically says, you already have enough money. And we want to fund projects that otherwise wouldn't be funded.
When you're already a company, you have users, you have investors, then the challenge is that when the incentives are fully market-based, to continue to do socially beneficial behaviors, like following standards, not trying to create vendor lock-in, continuing to keep it open source, etc., it's like the incentives start to disappear. So I think a fundamental challenge is, how do we actually improve the incentives at the $30 million level? This, to me, is an unsolved problem. I really welcome people trying different ways to solve it.
02 Audience Interaction
I was actually going to ask a question about standards, but some of what you said really inspired me. You just mentioned the sudden shift from small amounts to $30 million. Although the two situations have different operating mechanisms, isn't this sudden shift itself a problem? Can't there be a more gradual approach? What experiments can we do? For example, small businesses in Web3, I feel like we don't see enough of these businesses. It seems like everyone wants to soar to the sky, or they're just hanging out, taking saunas, and other fun things. How can we support more small businesses? I'm curious how you think about this issue, or what interesting experiments you've seen?
Vitalik: I think there are different types of support. One way of supporting is more proactive, if there is a promising project, it is to provide them with a user base, help the project get used in a coordinated environment, so that it can touch reality and improve. For example, an example at Devcon, we practiced a lot of things, ZK identity authentication tools, such as Zupass and many different projects on-chain or open source. The goal of this is partly to help projects overcome the network effect barrier, that is, no one has heard of them, no one uses them, which is a non-monetary support.
On the one hand, in terms of funding support, once the project has developed to a high level, the problem is basically that we need to find a balance point. You want a funding model that is not entirely charitable. Because even at the $3 million level, if you rely solely on charitable funds, it will be exhausted very quickly. You need a funding model that is not purely charitable, it expects to see returns, but at the same time is not just driven by returns. The key question is to find out who are the participants who are willing to participate in this model in terms of funding?
I think people are willing to do so, and there are a lot of people, even a lot of ETH Whales, who hold ETH because they believe in the vision and are even willing to make some small sacrifices, but at the same time, they are not in a hurry to donate everything they have.
On the other hand, the question is what are the actual institutions, what are the models, what are the funding models that actually encourage projects to stay open source, stay standards-friendly, stay decentralized, and ideally, if you end up being very successful, give back to the next wave of projects.
I know there are various projects in the ecosystem that are basically trying to bring together funding from different large ecosystem players, and the basic theory is that if you have those funds, then at least if they have confidence that everyone is participating at the same time, they will be willing to invest in projects on that basis, but it's definitely still in the early stages as of now.
Another issue is about people starting their own projects instead of working on existing ones, there seems to be little incentive. The financial rewards are not there if you are part of someone else's project. What we really need now is user experience and onboarding. But people, especially VCs, only fund the infrastructure if we want to do a bigger project, what can we do to improve this situation?
BU: That’s a good question. One of the interesting things is that both our private goods grants and public goods grants kind of fail in this regard. Because if you look at projects like Optimism’s retroactive grants or Gitcoin, one of their major weaknesses is that they basically become popularity contests, where in order to get a lot of funding you have to have a high public profile, you have to have your own marketing department, like you’re basically a political party. But there are a lot of people who are not interested in that model, they don’t want to be full-time, self-promoting politicians. And it’s essentially a model that follows existing social status trends, which clearly favor creators over maintainers.
I think at least in terms of public funding, if we could make a conscious effort to try to create mechanisms to identify and support those maintainers, that could help a lot. I've seen in public goods funding, things like the Retroactive Funding Community Project trying to do this, basically trying to identify the downstream dependencies of those big projects that everyone thinks are valuable, identify the dependencies, and then identify the dependencies of those dependencies. So you can support the entire graph.
There are even people in Optimism who are very explicitly trying to dig and find these kinds of projects. For example, the people who invented Keccak, a hash function that's used by everyone, they were some academics who didn't know how to present themselves on Twitter. They got a $200,000 retroactive grant a few years ago. So I think at least consciously creating a public information graph of who contributed to what and making it easier to follow is an important dependency in itself. Because once you have that, you can more easily support any mechanism that tries to improve it.