A proposal for Ethereum voting mechanisms and common funds distribution
I’ll start with a personal story. Just over a decade ago, when I was a freelance journalist, three police officers from the Greater Manchester police terrorism unit came knocking at my door. When I asked why they had shown up at my flat, they told me they wanted to talk to me about the book I was in the middle of writing. Not the kind of thing you’d expect to hear in a democracy, where the writing of books should never be the concern of the police.
After I let them in, they served me with a draft order instructing me to give them all of my source materials — recordings, notes, transcripts — pretty much everything I’d created in the course of my reporting of terrorism. Of course, journalists don’t give up their sources. We don’t hand over notes and recordings for fear of betraying those which we have promised confidences to. So I fought it. And a few months later I was sitting before three of the most senior judges in the UK listening to their verdict.
Although the court came to modify the scope of order, in the end they agreed with the Manchester police. And in that moment I came face to face with the realisation that if I didn’t want to do what three judges had ordered me to do — hand my precious belongings and my journalistic integrity to the police — I would likely be put in jail. The period of hearing out rational debate had ended and even though I’d committed no crime, nor caused civil injury, I could be forced against my will to do what the representatives of the state wanted me to do because, simply put, they had the right to put me in prison. I had come up against the wall that is the State Monopoly on Violence. So I gave in.
A few years later, I would come against the Monopoly on Violence again in a more direct fashion after getting whacked over the head with a truncheon by a police officer at a protest over student fees. I was covering the protest as a journalist but I knew there would be little point complaining. In such circumstances, officers are given much more latitude to employ violence lawfully. Privately I joked afterwards that I was grateful that the cops didn’t prosecute me for allowing my head to get in the way of the administration of justice.
States often abuse their Monopoly on Violence with total impunity. A lack of competition will have that effect.
Interestingly enough I’m writing this from a hotel in Istanbul, Turkey, where it turns out, searching for the term “the Monopoly on Violence” on Wikipedia is banned. I only discover this because after trying a few times and receiving an Err_Timed_Out page, the hotel manager suddenly appears at my breakfast table and presents me with a cartoon from the Economist about freedom of speech. “Isn’t this a funny cartoon?”, she says, laughing nervously. I quickly realise what she means and stop what I’m doing so that both she and I don’t get ourselves into serious trouble.
Of course, there are benefits to states having a Monopoly on Violence. Afghanistan and Somalia in the 90s are examples of what happens when there is no such monopoly. Hobbes was right; existence becomes, “nasty, brutish and short”. But in the modern era, the downsides are also very apparent.
The above examples are overt uses of the Monopoly on Violence. But there are many covert uses too. The Spy Cops scandal, where police officers appropriated the IDs of dead babies, and had children with ostensibly non-violent activists to maintain their deep-cover, is the horror version of Joseph Conrad’s, The Secret Agent. Except it was perpetrated by the UK’s largest policing authority, acting within a democracy with supposed civic controls over such matters, in the 21st century, not the 19th. States often abuse their Monopoly on Violence with total impunity. A lack of competition will have that effect.
In short, if you want to achieve serious change and you aren’t willing to be fined, go to jail, be killed, or renegotiate that monopoly through taking up arms yourself, (and how many political movements from the Suffragettes to the US Civil Rights movement, to Indian Independence, to the struggle against Apartheid, have done just this) then you better be prepared to roll over and submit, however good or righteous you think your cause might be.
In Defence of Szabo’s Law
So what has any of the above got to do with Ethereum governance? It’s become a heated topic of late. The tension at ETHCC in Paris at the start of March was palpable. There are flame wars brewing around Parity stuck funds, how to resolve the interests of well-funded incumbents vs new but much poorer entrants, how to push through upgrades, diversity and equal representation, and much more besides. It’s all feeling particularly fractious. Maybe the current very heated atmosphere might die down as crypto winter turns to (literal and figurative) spring. But the underlying issues aren’t going away.
There’s no point attempting to reference everyone here, despite the welter of incredibly well-articulated arguments. Lane Rettig’s opening talk at ETHCC summarised many of these points as did Hudson Jameson’s talk. Most of all, Primavera de Felippi is an especially cogent expert on these matters.
One particular proponent for the pro-governance point of view is Vlad Zamfir. Zamfir believes the reason for our lack of governance is our adherence to what he terms, (Nick) Szabo’s law. Given that blockchains will want to be, and should be legal, Zamfir asserts that we should abandon the mindset that the only acceptable changes to the protocol should be those that “are required for the purpose of technical maintenance”. In effect, we should dump the thought that ‘code is law’ because this a misnomer in actuality, and “Szabo’s law is is too radically anti-legal to be part of a sensible crypto legal system”. It’s simply not tenable, he argues, to tell people there can be no restitution in our system because the code runs autonomously.
Leaving aside the practical difficulties of trying to make a global protocol ‘legal’ in even half-a-dozen jurisdictions, let alone 200, I find Zamfir’s assertion that blockchain should endeavour to be legal for legalities sake, toadying of the worst kind. Ethereum’s vision has always been big and bold enough to set the ethical terms for itself, thereby forcing legal jurisdictions around the globe to follow suit, rather than the other way around. Why change that? Especially when state laws are not built around any consent to be governed, which any self-respecting Etherean would recognise.
More simply, ask yourself this: do we want Ethereum to be “legal” in Iran, Turkey, China or even the USA? Looking at what happened to Google and Facebook when they adopted that outlook might offer some salient lessons.
But the more fundamental point here is that as soon as you demonstrate that you are operating a quasi-judicial system of any kind, you make yourself utterly susceptible to having your quasi-judicial system coming under the larger jurisdiction of a state that views itself as sovereign. You will have identified a locus of power for states and will subsequently be made to stand under them. And there lies the problem. Is any Etherean willing to be heavily fined, or go to prison to keep the Ethereum network online?
And what will happen if Ethereum starts challenging financial structures of say incumbent military-run businesses of say Pakistan, Iran or Egypt, and Ethereans get defined as financial terrorists under the “law” of those countries? Or someone gets bumped off? And please don’t dismiss this as hyperbole. Investigative journalists regularly get killed, in Russia, Latin America even in ‘blockchain friendly’ Malta for god’s sake — for just exposing the fact that illicit financial structures exist, let alone attempting to take them down.
‘Sorry, there’s nothing we can do for you … [because the code runs autonomously]’ is a profoundly powerful response.
And although Ethereum governance may already be something which outside parties believe they can already point to in order to hold named individuals liable in a state court, that in itself is not a de facto reason to strengthen their argument by introducing ever more, and more formal, governance procedures.
So when you take these factors into account, the State’s Monopoly on Violence enforced through overt practises like the courts, and the willingness of even democratic states to engage in deeply anti-civic practises, the response, “Sorry, there’s nothing we can do for you [because the code runs autonomously]” is actually a profoundly powerful one.
Zamfir is right when he says, it just isn’t true that the code runs autonomously. Yes, it is still humans who choose to upgrade the basic protocol. Hell, the computers are still plugged into the walls. And de Filippi identifies lots of other vectors of attack that courts could deploy in this regard. But Szabo’s law is also another way of saying, no particular human is in charge of this revolt carried out by digital means. If we can’t all be as anonymous as Satoshi, then the best we can do is create a round robin of epic proportions. And if you’re not familiar with the original round robin, it is ‘I am Spartacus’ in letter form: a circular protocol ensured a level of anonymity for petition organisers.
We should endeavour, not to be legal, but to be like a force of nature against which the power of states not only fails, but is seen to fail in the most ludicrous fashion. 2,500 years ago Herodotus and his audience laughed as he retold the story of Emperor Xerxes commanding his soldiers whip the waters of the Hellespont for destroying his newly built crossing that would serve as a bridge to invade Greece.
Ethereum should for as long as possible endeavour to operate, and be seen to operate like nature — outside of human control. And when kings and courts try to whip us, let them look ludicrous for even trying.
And yet …
Rising out of the Tyranny of Structurelessness
Here’s a statement that might just advance above the level of truism: All human-created systems will have to deal with human fallibility.
So of course the Ethereum protocol will never actually be like nature. It was created by humans. It is operated by humans (or machines with human interests) and it will continue to be improved by humans. And that means there are going to be mistakes made. Therefore how arbitration occurs is a major problem for the wider decentralised space. How do you settle claims in code between parties who have valid arguments based in ethics and justice? We must also admit the fact of human fallibility if we want to allow for greater growth and experimentation. A system that permits only infallibility is one that is incurably bounded. And more than that, we already have governance, it just happens to terrible.
A system that permits only infallibility is one that is incurably bounded.
The 1970’s essay by Jo Freeman, The Tyranny of Structurelessness, on the failings of the feminist movement, is becoming a resurgent meme within the space. As it relates to Ethereum, the essay makes a brilliant high level point that structurelessness in governance only serves to birth its own terrible form of a governing elite who start inventing informal rules of the game (which of course they do not inform others about) to achieve outcomes that, though they might start off well-intentioned, inevitably end up as deeply unrepresentative of the larger movement at best, or utterly self-serving at worst.
The tyranny of structurelessness is already a growing problem within Ethereum, and the Cat Herder project is attempting to grapple with this head on. (Disclosure/virtue signalling: the project I belong to, Streamr, helps fund the Cat Herders).
Other movements such as the environmental activist movement (which I had the joy to personally witness in the early noughties) and of course Occupy, tried to circumvent this issue with — can you believe it — protocols for consensus-based decision making! Except they were non-digital forms — basically a set of hand movements — so they failed to scale.
So let me jump now to my proposals which attempt to reconcile two things:
- A desire to see Ethereum somehow operate as ‘a protocol outside direct human control’, or at least retaining the impression that it does whilst its power grows.
- Practical and structural issues of governance for the near future.
Distributing Common Funds: The Waitrose Solution
Let’s take two problems together. The first is, how do you fund community developments? Vitalik Buterin recently weighed in on this and Kevin Owocki put together this proposal with others, but let’s assume there is a need for this funding, and in so doing, we will skip the ‘why funding’ question and move straight to the last phase of the how. Critics rightly ask, even if funds could be raised through a user “tax”, voluntary contribution, or inflation funding (an indirect tax of sorts) etc, to whom or where would that value accrue? Who would control the wallet, or how could that fund be distributed otherwise?
The second problem is this: how do people who are ‘part of the Ethereum community’ signal their approval or disapproval of changes to the protocol? Hudson Jameson summated our current preferred signalling methods as the following: coinvotes weighted by ETH stake, loose consensus around EIP measures, Twitter polls, or Reddit threads.
For a community of developers, this is a derisory state of affairs. Do we give in to the plutarchy of coinvotes, or do we continue to morph into some dystopian technocracy taken straight from the pages Kurt Vonnegut’s Player Piano? What a choice!
The inspiration for the following potential fix comes from Waitrose, a supermarket in the UK, which is a mutual i.e. it is owned by its employees. Which is why I like shopping there. They also have a charity giving scheme called Community Matters and it works like this:
There is a pot of money put up by each store every month. And when you check out your groceries, you get given a number of green plastic tokens. I tend to find (though I doubt it is formalised this way) that the more you spend, the more of those green tokens you are given by the cashier. Usually I get two or three because I tend to spend an outrageous amount on French wine, baked flatbread, oat milk, and organic eggs each week. Most people just get one plastic token. Then beside the exit there is always a choice of three charities to choose from, with a description for each. I pop my tokens in the box of the charity or charities I most approve of, and at the end of the month Waitrose distributes the pot on the basis of accumulated token preference percentages.
There are some nice mechanisms at work here. Firstly, the more you use Waitrose the more you can impact the decision which charities get funded. But, there is also a max cap as to how many tokens I receive. I can’t buy the vote in that sense. Also the pot is small enough (or the cost of food expensive enough) not to make “buying” the vote worth it.
How could something like this work for Ethereum?
Firstly, the tokens, let’s call them ERT’s — Ethereum (user) Rebate Tokens, because who doesn’t like a rebate — need to be distributed. I’d suggest that a smart contract distribute these tokens based on Ethereum use. And nothing signals use in Ethereum like transactions per address.
You could also have a minimum cap of something like five transactions in a given month (or year?) in order to qualify for one ERT. That would stop one-off or casual users from gaining voting rights but also raise the effective price of ERT creation which might serve as another useful measure against those trying to game the system. But there could also be a max cap of say of 55 transactions to qualify for something like 10 ERTs. (I’m just putting my finger in the wind with these numbers here but I’m hoping the basic principles are right).
A maximum and minimum cap on ERT issuance based on transaction fees paid, (or just number of transactions) will cut out outliers, stopping them from gaining an outsized number of ERTs. In effect, you’d be issuing ERTs to the Ethereum middle classes, regular users with some differentiation in distribution between more and less frequent users. Another way of describing this is that the Ethereum community begins to be defined in the co-operative model, represented by its users, not by its founders, savvy technicians, or those with the most capital stake.
Secondly, Ethereum Rebate Tokens should decay over time. I’d propose a half-life of say one month but again that number is somewhat plucked from the air. But the reason for a half-life/decay utility is important. It is so ERTs can not be hoarded whilst also supplying the converse incentive to spend/employ them while you can. Of course given the tokens will be time stamped to achieve this, then you will be effectively outsourcing the decay function to third parties and they can pick a half-life most suited to their own aims.
Thirdly each token should be tagged with the Ethereum address for which it was generated, a device that (see below use cases), could make buying ERT’s and secondary markets really difficult without people passing out private keys.
Fourthly the issuance should take place from an entirely decentralized platform unconnected with the main Ethereum protocol. A smart contract could simply read the numbers on transactions from the main chain and, using something like the side chain solution Monoplasma, could redistribute millions of ERTs (with next to no transaction costs to the issuing contract) along the parameters stated above. Issuing through a side-chain solution will probably mean (depending on the given use case) individuals paying for transaction costs to exit the side-chain. But that could also bring benefits in terms of raising the costs of secondary markets in these tokens. The downside might be lower voter participation. But there could be technical fixes for this.
Fifthly, and this really is difficult to figure out, in order to avoid people creating transactions — and from multiple wallets — *just* to generate voting tokens, ERTs will need to be worth less in the value they might come to represent in the following use cases (and more than the cost of the transactions that generate them). Of course there would be some natural corrective to this; too many Ethereum network transactions would increase the costs of those transactions, and given ERT decay it would be hard to run a long game on this.
Perhaps the smart contract could somehow self-correct to either issue more ERTs per transaction, thereby devaluing those in existence, or raise the bounds of the min/max cap upwards, but that’s as far as I get on that point.
So let’s recap. ERTs should have these basic properties:
- Distributed on the basis of transactions per Ethereum address with min and max caps.
- They should be time stamped to allow others to implement a decay function.
- Be tagged with the Ethereum address for which they are generated.
- Issuance should take place from an entirely decentralized platform unconnected with the main Ethereum protocol.
- Token representative value is lower than the cost of the transactions which generate them.
Marketplace for distributing Community Funds
So what will you be able to do with these ERTs? Well for a start, rather like at Waitrose, these tokens could be taken to decentralized Marketplace where anyone can put up a proposal to be funded. There, they will be counted and then *possibly* burned (or held in escrow during a vote period). It would depend on the platform itself. And given that it will be a decentralized marketplace, anyone will be allowed to put up proposals. However, the protocol for winning a proportion of a funding round should perhaps run along the lines Kickstarter where there is a set time period to raise, in this case, x number of voting tokens. Users could also auto-donate their ERTs to a given project. You could imagine this system potentially creating a lot of engagement all-round.
Perhaps the best part of this setup is that it represents consent within the decentralized framework. This system is in no way part of the core protocol, is completely non-binding and fully decentralised. If people want to donate funds to the pot, then excellent. If a “tax” is raised from within the Ethereum protocol and it is decided to send that money to the marketplace, then excellent! But the system for choosing how that money is distributed. The governance part sits outside the core protocol whilst also being (through ERT issuance) inextricably linked to the representation of its constituents.
The design is by choice, consent, and social custom, not by force of statute or protocol, and that, in my mind, distinguishes it from official governance, and certainly from centralising control.
Because of the way ERT’s are distributed and the particular features they have, I would say they would likely make a useful token for signalling preference for proposed governance measures. They get around the issue of staking-type votes which descend into plutarchies. They are also far more formal than the odd Twitter poll or Reddit thread, and potentially more representative than consensus garnered within a core dev call or from chatting to “trusted” participants at conferences.
ERT’s would represent users and the decay function means they’d weight in favour of current users of the network. But since the tokens are issued as an aside from the core protocol, anyone can choose to adopt votes using ERT’s in a non-binding fashion. Or not! They are a tool for people to adopt as they see fit. You can imagine further provisions being taken by those wishing to hold votes that:
- ERTs must exit the side-chain to be counted, meaning each wallet that ERTs are issued to must pay another transaction cost to do so (further increasing the cost of setting up multiple wallets to obtain extra ERTs).
- ERTs are burned (signalling perhaps a more important vote).
- ERTs can only be deployed in a given vote from the wallet to which they were issued (stymying secondary market vote buying).
- Vote organisers might also demand that the total number of tokens deployed in a vote as a proportion of all existing tokens, represent a quorum (which might be a factor in maintaining a high-ish ERT half life).
Another major problem is fund recovery. Parity’s stuck fund issue is one such example. Because of its retrospective quality, it raises other problems to those outlined above. Can people find justice within Ethereum? Or can it only be that code, once deployed, is law? Again, humans make mistakes and are fallible. For the meantime, EIP999 may have failed to win the support it needs to be implemented. Despite thinking about it long and hard, I personally don’t really have a solution for this. Perhaps ERT tokens could come to be a more definitive way of settling preference signalling mediums in matters like this.
However it should be stated that those with a direct interest in recovering their stuck funds, for example the Web3 Foundation, have hitherto acted in good faith and in the interests of the wider community. The wider community should be thankful this is the case and it was not a bad faith actor who had their funds frozen because that bad faith actor might well have decided to take people to court.
If Ethereum is to keep a semblance of its nature-like qualities, then maybe those who lose funds, even in the most unjust fashion, have to bear that pain. And maybe too it would be right if the community banded together when misfortune strikes.
Tools for Human Coordination
In November at Devcon4, Wendell Davis described the Ethereum community as people who are building “the next generation of human coordination tools”. That’s a neat description. In a sense though, we must learn to coordinate ourselves before we aid others. Especially because we are no longer simply a group of technicians with better technical architecture than the centralized platforms of Web 2.0. We are rapidly becoming digital cooperative (digicoop) builders and that will mean managing an ever increasing number of intersections between human preferences and underlying protocols. In other words, these problems of governance, both as directly related to the Ethereum protocol but also our ecosystem, are set to explode. In this I am in complete agreement with Zamfir.
There are new solutions on the horizon, such as Colony and of course Aragon, that might possibly make something like ERTs or any other solution, obsolete very quickly. Good. But the form that this community coordination takes is crucially important. Maybe then the conclusion to this too long essay is this: while we are still very much in our infancy, let it be that only code (most especially at the Ethereum protocol level) should enforce more binding consensus, whilst consensus that requires direct human decision making should be adopted through non-binding arrangements.
But however we progress on these issues, let it be done in the spirit of good faith, comradery and above all solidarity, because the enemy within is far more vicious a beast than the enemy without.
Thanks to Juuso, Francine, Wei, Melchior, Maria and others for all their help with this.