Projects of the scale and complexity of Ethereum and Bitcoin are typically subjected to the issue of how to fund them. The Bitcoin Foundation is funded by a consequent number of actors, some relatively large Bitcoin-based ventures as well as a fair number of individuals. Nonetheless, as of today, only three members of the Bitcoin foundation are actually paid salaries.
Ethereum is a very complex project, and it seems obvious that it could not be realized with only three full-time developers -- notwithstanding the large open-source participation it has benefited from, the core development of the platform requires a large focused effort.
There have been a few proposals on how to fund the Ethereum foundation in the future:
- calls for donation
- creating new ether that would be sold by the foundation (typically in the new genesis block)
- having miners pay a fraction of the mining fees they collected (or of the reward of the block they mined).
Those options are not mutually exclusive – although I particularly dislike the third option of artificially increasing supply. In this article I will explore the last possibility, focusing solely on Proof of Stake.
First off, let me say that this would probably not be adapted for Proof of Work – because of the nothing at stake problem; this is why we need Proof of Stake. Alright, let’s get started!
Let us introduce the parameter which is the percentage of the transactions fees that will be donated to the Ethereum foundation (it could apply to the block reward as well, this depends on the actual Proof of Stake implementation, so I will stick to the first option for now). Each time a new block is generated, that is every 17 seconds as of today, each validator of the platform will cast a vote of weight linearly proportional to its actual bounded stake in the platform in the form of a percentage. is the maximal allowed value for a vote.
The vote corresponds to the value that the validator wishes to be enforced. Concretely he would choose if he would like to become , while he would select otherwise. After every validator has voted, the value for the present block is given by simple weighted sum: . Additionnally, we could limit within some range, typically or less. To make things simpler, a validator casts his vote each time he bonds some stake in the platform, and he can change his vote every blocks for desirably relatively large but smaller than the bonding time.
Instead of limiting this feature to sending transactions fees to the address of the Ethereum Foundation, this could be extended into a full-fledged feature of the validating algorithm – for funding related side projects. This might be interesting; although there are quite a few subtleties that would introduce additional complexity and might divert this proposal from its original purpose. So let us stay focused on our main goal: funding the Ethereum Foundation.
This simple tweak would be directly implemented into the Proof of Stake validation algorithm in such a way that each block validator would automatically send of the transactions fees to himself and to a smart contract belonging to the Ethereum Foundation. In order for this mechanism to be enforced by all validators, the majority of validators would need to mark blocks that don’t respect this mechanism as invalid. Obviously, if all validators collude, they could choose not to enforce this mechanism, but they may as well just all vote for , so they have no incentive to game the system (in the form I described above). The only consensus problem could arise if there are a large amount of altruists, but still more “rational” validators – this is similar to the problem addressed in the next section.
Economical incentives analysis
So far we have only used very simple mathematics. Many different such mechanisms can be conveived of, but we only present the most basic here as it might be good enough. Let us now see if our proposal is robust in term of incentives. I generally refer to the Ethereum Foundation here, but this also applies to altruists. Obviously, since the Ethereum Foundation members as well as the Foundation itself own some Ethers, they could cast the highest vote possible every time in order to receive more fees – and as they receive more ether, they could bond more stake in order to increase their voting share, creating a feedback loop. I believe that this isn’t a real issue in practice, and I am sure that the foundation will behave honestly but for the sake of security let us try to mitigate this possibility. First, we could simply set the value lower in the validator client implementation, i.e. (this number is very easily verifiable in the source code so there is no incentive to cheat and getting caught in changing it in an update would create a hard fork – so they don’t have an incentive to do this). Or another mitigation would be to set even lower and introduce an additional ceiling , where it would be possible to vote above but the validator would have to pay while the other validators who voted would only pay – this would furthermore make it possible for altruists to fund the Ethereum Foundation even more generously if they so wish (without forcing others to pay more than ). This last parameter makes it not profitable for a potentially malicious foundation to cheat because in order to cast the recent gains as a vote to increase p, they need to bond this stake; and in the theoretical worst case, they would achieve at most , although I believe that this might not even be possible to raise it that high in practice.
Therefore, in the theoretical absolute worst case, we only need to have a global minimal consensus that . Although probably much less in practice, further analysis is required to quantify this precisely.
As a future validator, once we switch to Proof of Stake, I perceive this proposal as a fair balance between subsidizing the Ethereum Foundation and profiting from the transactions fees. Validators benefit greatly from a continuous development of the platform, since the security of their stake depends on it. This symbiotic relationship between the Ethereum Foundation, the core programmers and validators paves the way for a future where each actor wins from the bettermen of the platform.
Additionally, the switch to Proof of Stake is something that long-term holders seem to desire, and this way of funding the Foundation would further incentivize the switch to Proof of Stake to happen sooner as well – from which both would benefit.
In light of our quick analysis, this mechanism seems to fit nicely into the Proof of Stake system and the incentive structure appears to be pretty robust. Further analysis is required to precisely determine what the practical consensus upperbound is. Also, I believe that the community will probably not be opposed to this since every validator has his word, and everyone contributes equally – while altruits are given the possiblity to contribute even more if they wish.
As I said before, this proposal is not mutually exclusive to the other options of funding the Foundation, but this seems the fairest one. No inflation. No secret. No outside influence.
I am looking forward to reading your comments and suggestions for improving this article.
Thanks to HodlDwon for bringing up the issue of funding.