This Article was originally written on January 25th and posted on Medium. All of my future work will be simultaneously cross-posted to read.cash from now onwards.
The Infrastructure Funding Plan for Bitcoin Cash is a great idea. I have always been a long time advocate of self-funding mechanisms. Admittedly, I am surprised that we are now seeing such an up-swelling of support for this. I did not think that this was possible over Bitcoin Cash, considering the controversial nature of such a proposal.
I would first of all like to make it clear that I support the implementation of a self-funding mechanism in Bitcoin Cash. I just think that how this was initially proposed is flawed in its implementation, being that it is unnecessarily divisive considering that there is also a much better way to do this, which has been the way changes to the rules have also been made for Bitcoin in the past.
I would like to also add that I have the utmost of respect for the authors of this proposal, many of whom have been my personal heroes over the years. Which made it especially difficult for me to speak out against this, since I very much consider them to be my allies. I hope you can appreciate my principled approach to this and that I also just want what is best for Bitcoin Cash.
As a Fund Manager applying fundamental analysis I have to be objective and apply consistent principles to the evaluation of cryptocurrency. Having been an investor in Dash, Tezos and Decred since inception gives me a good understanding of self-funding mechanisms and experience in evaluating them. If Bitcoin Cash is going to continue to have a self-funding mechanism into the future, I would recommend that BCH adopts a similar governance structure to these protocols in regards to the process and mechanism of the distribution of funds.
Unfortunately, what is being proposed now has much more in common with the Zcash self-funding mechanism, which I have been an outspoken critic of for years. This is in part why I cannot support the current proposal, it would make me a hypocrite. I am not going to change my principled views just because this now might be implemented in Bitcoin Cash, if I did it would perfectly fit the definition of tribalism.
To explain the difference in classification, Dash, Tezos and Decred have a self funding mechanism with a decentralized voting mechanism and process. Zcash has a self funding mechanism with a centralized voting mechanism and process.
It is worth noting here that Zcash, as our only prominent precedent for this type of self-funding mechanism has recently extended their funding period, after initially promising it was strictly temporary. Showing us that this risk is also present with the current proposal over Bitcoin Cash. I would much rather use Dash, Tezos and Decred as our examples of how to do this right.
I do understand that practically speaking, decentralizing the voting mechanism over BCH is not possible from a technical point of view over the short term, even though I do think that this should be the stated goal as we go down this road, since this commitment helps to avoid lock-in and strengthens the social contract.
I also understand that further decentralizing the process of decision making does add certain inefficiencies. However, I would argue that the trade off here is worthwhile, considering that this has always been the case when adding more democratic processes to any governance mechanism.
What is wrong with the current proposal is that it unnecessarily centralizes the decision making process of how to distribute these funds within a centralized company controlled by a selected subset of miners, making this effectively a permissioned approach.
The danger here is that this further centralizes and entrenches power, giving this consortium an unfair advantage in implementation competition through leveraging the block reward at the exclusion of smaller players, effectively increasing the barrier to entry for effective implementation competition.
This creates perverse incentives, such as not wanting to surrender this advantage further down the road. In history and politics people generally do not willingly surrender their own power, it does happen but it should be considered an exception to the rule. Therefore it would be unwise to give away such power no matter how benign we might think our leaders are. We also have to account for future leaders when they inherit these mechanisms that can be potentially abused in order to increase the vulnerability to capture.
This vulnerability to capture is one of the largest governance vulnerabilities we need to be concerned with within BCH. Considering that BCH was in part born in response to BTC becoming captured, as its vision diverged. This is exactly why proper self funding mechanisms are so brilliant because they reduce the risk of capture by making developers less vulnerable to being bought out. However, in the way that this is currently being proposed it can have the opposite effect, due to it imbuing this consortium with an unfair advantage further entrenching their power by creating dependencies, lock in and perverted incentives.
To get some of the more sticky semantics out of the way, I would argue that the block reward of a cryptocurrency is like a type of voluntary tax, since it impoverishes all of the holders through inflation. Not entirely dissimilar to how a government might impoverish its population through inflation. The critical difference being that participation in the system is entirely voluntary and people can easily vote with their feet among alternatives.
We should not get stuck on the semantics of this word, it does not really matter what we call it, what does matter is that the distribution of the block reward does concern all of the participants of the network, especially all of the miners, which attaches certain duties and ethical responsibilities.
This is relevant due to the fact that the current proposal would exclude any miners that are not part of this consortium of their proportional vote in the distribution of these funds. Which currently represents at least 1/5 of miners, what is worse is that this consortium maintains its decision making power regardless of any future shifts in mining power. This is inherently unfair and can even be compared to a form of taxation without representation.
This is not about whether I trust these people or not, the principle here is that we are supposed to minimize trust as much as we can when it comes to the governance of the protocol itself. While at the same time finding compromise and equitable solutions in order to avoid further conflict and division.
The Short Term Solution:
We implement this change at the next hard fork, in order to avoid contention. Miners can simply put a message in the blocks they create, one block = one vote. We can measure this in the same way we did during the blocksize debates when the miner signaling was occurring for XT & Classic. Which means that everyone can see for themselves in a block explorer with charts exactly how the miners are voting. If miners abstain that is fine as well and we only count the total which did vote. The HK company can then distribute these funds over a set period such as per month or quarter, by counting the result of this onchain vote.
This way the entire ecosystem can track the votes and all of the transactions coming in and out of the HK company. This means that the entire process becomes completely transparent while effectively decentralizing the process of decision making when it comes to the distribution of these funds, this is also important in that sets a positive precedent for the future, making it easier to evolve this into a proper self-funding mechanism.
Under this proposal the HK company would also do basic vetting, making sure that the recipients of funding are legitimate. This critically avoids the tragedy of the commons and free riding problems that would otherwise occur, due to the possibility of miners attempting to send these funds back to themselves. Corruption is definitely still possible but it is significantly mitigated by having this HK company act as a intermediary for the time being. This is one of the advantages of having the self-funding mechanism itself still be centralized for now. Since it helps to avoid corruption and misappropriation problems that we have seen in other cryptocurrencies with fully decentralized self-funding mechanisms. The HK company is effectively acting as centralized oracle in order to facilitate the result and legitimacy of the onchain voting process.
What I am proposing is simply decentralizing the process of decision making when it comes to fund distribution, while keeping everything else the same from the initial proposal. This one relatively minor change solves many of the ethical and political problems thereby reducing contention allowing the entire community to move forward in a more unified fashion, by simply allowing the minority of miners to also have a vote. I do understand that the majority of miners could attempt to force this through in its current form but that would also trigger a response from many people to either leave or split, exercising their right to also vote with their feet. Taking a more parliamentary approach as I am suggesting instead of exercising direct majority rule would significantly reduce the contention of this proposal.
Allowing voting on the distribution of these funds to be proportional to hashing power and not limiting this to a permissioned subset of miners is the more fair, egalitarian and decentralized way to do this.
The next part of the article was written by Tobias Ruck to help explain this proposal from a technical perspective:
Jonald Fyookball wrote the following in his article on read.cash: “Other attempts/ideas to fund infrastructure via mining haven’t worked. I’ve seen suggestions involving everything from hashrate voting to p2pool, to covenants, etc.”
But this doesn’t mean we have to outright discard the idea of miner voting. In fact, miner voting has been the standard of how protocol upgrades have been activated in the past of Bitcoin. Even Pay-To-Script-Hash, which every wallet now supports (i.e. addresses that start with a ‘p’) has been voted on by miner vote, by putting “/P2SH/” into the coinbase transaction.
I think it would be a good idea to return to this historic precedent. Each miner can embed a certain string in the coinbase transaction, which represents a vote. After a certain period of time has passed, say every month, the money collected by the Hong Kong company will be distributed according to the votes of the miners.
We propose, to keep things simple, that this voting mechanism should just be a vote on certain, well-defined infrastructure developer groups. Voting on individual proposals would be too much of a burden for miners to decide on and add unnecessary friction.
This will allow the Bitcoin Cash community to have more confidence in the actions taken by the consortium, as the way funds are to be dispersed can be verified on the blockchain and compared to the audits released by the consortium.
...and you will also help the author collect more tips.