Let the DAO decide “how much”

I wrote an article for Medium on how to use Black Theorem to let people in an online community decide a value. The article is available here: https://pietrosperoni.medium.com/let-the-dao-decide-how-much-3181bfdf1e7c


A technique to let a community speak with one voice

I present a technique to make decisions in an online community. The technique is simple to use, trivial to understand, and can be applied to a well defined wide range class of questions. The result is both representatives of the desire of the community as well as it approximates an expert’s decision.


Right now there is a lot of excitement over the possibility to take decisions together. We have a vague sense that it is possible to take decisions together, and those decisions are bound to be better than the ones taken by policymakers. After all, given any question, we might have among “us” there is always an expert on that field. You need to fix a house, there is a plumber among us. You need to buy stocks, there is someone who is able to evaluate the fundamentals of a company, and so on. To say that this trust is misplaced would be incorrect. But surely the difficulty of realising what is the correct answer among a cacophony of wrong ones is greatly underrated. Voting can be a solution, but voting itself is not a simple process. There are many ways of voting, many ways of counting the votes, resulting in hundreds of possible processes. Each with its own properties. In this confusing context, it is important to start with the “low hanging fruits”. The simple solution that offers mathematically certain results.

Maybe the most simple form of voting is among two options. Do you prefer A or B? And if the majority of people chooses A we go with A and if the majority of people chooses B we go with B. Simple enough, right? This actually hides a lot of complexity. Who decides what are the two options? Who phrases them? And what if there are multiple options, like A, B or C? Now, this opens a conundrum of possible forms of voting. We are not going to explore this because this article wants to suggest that the lowest hanging fruit is in fact another. Not choosing among multiple, distinct, options (which then opens the question of who chooses the options), but choosing among a continuity of options as long as they lie (or can be placed) on a 1-dimensional line. Not only the voting will be more simple, but the result will be both more representative of the community and with a higher probability closer to the optimal solution. Sounds good enough, eh?

Now we need to explain how to do it, why does it work, when to apply it. And once we have all this we need to discuss how to integrate it in the DAO spaces that are been programmed right now.


Before explaining the whole mathematics of why does it work, I want to explain how does it work. Let us suppose we need to decide a number among us. Maybe we want to invest in a company and need to decide how much to invest in it. Or we need to decide how much to pay someone working for us. Or maybe we are taking a break from work, and need to decide how many days of vacation to take. The context does not matter much. The process is simple. Each person must vote their favourite number, and then we pick the median of all the voted numbers. It’s very important that we pick the median and not the average (also known as the mean), the reason will be clear after. If you order all the votes from the lowest to the highest one, the median will be the vote in the middle (if the number of votes is odd) or halfway between the two middle votes (if the number of votes is even). The standard voting procedures apply: you should not be allowed to see what others have voted before the end of the voting period… but in this case, it does not really matter; voting should be anonymous… but the system works also if it is not anonymous. In short, it is a very robust decision-making system.

Now that we clarified how to vote, let us dig into why this system works.


Before describing how to vote when deciding a 1-dimensional value, let us take a detour through a more traditional voting scenario. Suppose we need to choose a result among several distinct possibilities (or candidates). As I mentioned before there are multiple ways to vote in this situation. And each system has different properties. One of those properties is the ability to pick the “Condorcet Winner” as the winner; if it exists.

What is a Condorcet Winner? It is a candidate that would win all pairwise comparisons.

What is a pairwise comparison? It is a simple voting event among two candidates.

So let us suppose we have three candidates, A, B and C. We would then have to make three comparisons, A to B, A to C and B to C. And if the majority would rather have A over B (we would write A>B), and the majority would rather have A over C (this A>C), then we can say that A is the Condorcet Winner. It should be noted that in this case, we do not need the result of the B to C comparison since we are interested in one winner (thus those systems are called “single-winner voting systems”). Also, ça va sans dire, the majority of people that voted A over B do not need to be the same majority of people that voted A over C. Some people will prefer A over B and C, but some people will prefer A over B but not C, and others will prefer A over C but not B. Yet when we compare A vs B, and A vs C, A wins in both cases. The A is a Condorcet Winner.

Now let us clarify one thing. Not always there is a Condorcet Winner. It is possible to have a situation where the majority of people prefers A to B, prefers C to A, but then counterintuitively prefers B to C. Thus we would have to write A>B>C>A. This would say that {A, B, C} form a cycle. A Condorcet Voting system (and there are multiple) would pick the Condorcet winner when it exists. And if it does not exist… different systems will act differently. Some systems for example pick a completely different procedure in this case. Others compare by how much A is preferred to B, B to C and C to A to decide which preference is weaker and ignore that preference. And so on.

Calculating the Condorcet Winner is also not always easy. Usually, it requires asking all participants to order all proposals from the one they like most to the one they like least. And then the counting algorithm will extract the information on what would happen if we were to run all the necessary pairwise comparisons. But this process can be cumbersome if done by hand.

Now let us move back to our 1-dimensional problem. We want to extract one value out of a continuum. And (secondary important requirement) each participant will have one value they prefer, and their preference will decrease as we move away from this favourite value. This secondary requirement is called being “single-peaked”. Suppose we are evaluating how much to invest in a company, and I would like that we invest 10% of our working capital. Let us associate to each percentage a number between 0 and 1 that associates how much do I like it. We associate 1 to 10% because that is my preferred value, and then it goes down in both directions. The result might look something like this:

Example of a single peak preference. The voter prefers a result. Any other result will be liked less and less as it moves away from its favourite result.

It does not matter at what value the peak is, it does not matter how steep the side of the peak is, it does not matter if it is symmetric, nor if it decreases always in by the same speed, or it changes steepness. It only matters that there is a single peak, and the value decreases monotonically as we move away from it. Then we can say that my preference in this system is “single-peaked”. Now let us suppose that not only is my preference single-peaked, but everybody’s preference is single-peaked, too. Everybody has their own favourite value. For each will be different, for each the steepness will be different. It does not matter. This is why I like mathematics, it cuts away the irrelevant element letting you focus on what is important. And what is important is… that in this case… (drum rolls) there is a Condorcet winner among all the possible values. Yes, we could make all infinite pairwise comparisons among all values and we would find one value that wins over all others. Not just between 5% and 15% but between 3.544587% and 4.457547%, and so on. Can’t you see the incredible importance of this result? Out of an infinity of results, it extracts the single value, the single winner, that is preferred by the majority over all others. How incredible is this? And how is it done? In the simplest way: each participant votes for their favourite value. No other information is necessary. No information over how steep the two sides of the peak are. Most people would not even know it. Instead, just the value with the highest preference and that’s it. Then once the voting algorithm has all the favourites values it can easily extract the Condorcet Winner. This is done by extracting the median of all the voted values. How simple is that?!
This was proven in 1948 by a British mathematician called Duncan Black. And it is thus called Duncan Black’ Single Peakedness Theorem, or simply Black’s Theorem.

But now that we know that there exist a Condorcet Winner and how to calculate it, why should we rely on this? And this is because of something called The Wisdom of the Crowds. And it all goes back to a paper in Nature from a statistician Francis Galton in 1907, Vox Populi. This scientist was, at the time, walking through the countryside and came across an event where around 800 people were guessing the weight of an ox. Whoever came closer would have won a monetary prize. Galton observed that the median of all the guesses came close to 1% to the actual weight of the animal. Sure some experts came closer than that. But some went farther, and you would not know, in advance, which expert will be closer. In the subsequent decades, this result was reproduced several times up to the point where this is now considered a generally accepted result. It is actually quite easy to reproduce. I did it myself with a friend. I was at a coffee shop in Brighton and I asked all the customers that were present in the coffee shop to guess how many sugar cubes were present in a glass container. Everybody could see the container but no one could count them. We had about 8 people in the room at the time and the resulting median was within 10 % of the result. As the number of participants grows the result tends to approximate the actual result. So why it is important to use the median and not the average? Because a single person can manipulate the average by throwing in an impossibly high or low number. In fact if someone knew all the votes so far, and were the last person to vote could generally get the value they wanted simply by voting a number high enough or low enough (negative numbers included for this). This form of manipulation does not happen when you pick the median.

So a Dao using this principle to decide quantitative questions would be an organisation relying on a system that consistently extracts the answer to quantitative questions on par with its best experts. Something even the best, centralised, organisations are unable to do. This is why such a simple voting strategy is a must-have for each Dao out there.


But when would this system not work? One of the requirements is that the preferences should be single-peaked. In absolute terms requiring this from all participants is impossible. But as long as the number of participants who do not have a single-peaked preference is small enough this would not matter. So, in practical terms, if we can assume participants are single-peaked, we probably should go forward with this procedure. Sometimes this is not the case. For example, suppose you need to decide when to have the next meeting in the next 15 days. Well, I want to have it between 4 PM and 7 PM Central European Time. So if you look at my calendar for the next 2 weeks, hour by hour, you will see many peaks, one for each day. And the same is probably true for all other participants. So this is an example of when this system would not work, and should not be used.

Another requirement is that the question is unidimensional. We are looking for one number. If we are looking for two values, as the optimal point in a plane, we could be tempted to apply this system recursively (first vote for one value, then for the other), but we should know that there is no assurance that the result is the absolute optimal value, nor the Condorcet Winner among all the possible value pair. Just the optimal value of the second value, given the first. Another option is to vote on the two values at the same time, and then calculate the multidimensional median. This is more complicated than it sounds as the multidimensional median is not even uniquely defined, and since this article focuses on the low hanging fruits of voting theory we shall kiss the KISS principle and exclude this case, for now. So when should we instead apply the system?

When to apply the system

The opportunities for this system to be applied are really countless, and the world would be a very different place if we, as a society and as a civilisation, really have understood this modus operandi and applied it anywhere it could be applied. Many Dao has an enormous number of quantitative decisions to take.

  • How long should this work last?
  • How much should we invest in this company?
  • How much should we pay for this job?
  • This Dao is offering a service, how much should it ask to be paid?
  • How many people should be in this team?
  • How long before new elections should be held?
  • How many times a person can be elected for a specific role?
  • and so on

So a modern Dao should have a tool to easily run a 1-dimensional voting system. Any participant will have the possibility to vote. And if, in a Dao, a user has a higher voting power (for example in this Dao people vote for each coin they own, and some people own multiple coins) their vote will be worth more. Simply by considering their vote as done by multiple people.

Unidimensional voting applied to Dash

A very clear case example where this system would work incredibly well would be to apply it to the Dash Dao. Dash is an ancient cryptocurrency. Some consider it the first Dao that ever existed. If a person owns 1000 dash they can freeze it and create a masternode (a process similar to staking). This will then give them some earning, and the possibility to vote in some decision on the Dash project. In particular, a percentage of the new Dash produced by the network are earned by the Miners, a percentage by the masternodes, and a final smaller portion is available for special projects. Anyone who has an idea that could benefit the Dash network can submit this idea to the Masternodes, asking to be paid to realise it. This is how the Dash programmers get paid, for example. This is also how Dash gets its advertisement. This is how the Dash legal team is paid for offering advice to exchanges, too. But to present a proposal to the Dash masternodes is not free. It costs 5 Dash (soon should be 1). Considering in the last 5 years a Dash has been worth between 34 dollars and 1625 (now is about 180$) 5 dash can be a lot of money. For this reason, if the project is accepted it is customary that the person presenting asks back for the 5 Dash as part of the payment (“this project would cost you 100 Dash + 5 for paying the fee”). This cost can be a huge disincentive that keeps many people from presenting proposals. When this fee was introduced it was intended to stop spammers from spamming the system. At the time a Dash was worth less than 1 dollar and 5 Dash were not a lot of money. But now it stops legitimate requests from being presented. This system is also used for governance purposes. For example, a recent proposal (that passed) was: shall we lower this fee from 5 Dash to 1 Dash. And this passed by a huge majority. But the correction has been too late. The system is simply not tuned for this kind of question. What instead should happen?

Instead, every masternode should also define what should be the fee for the next session. Many masternodes vote using special applications and it would be trivial for those software to include among the request they ask the masternode owners, also what they think the fee should be. The Dash blockchain software would then extract the median at the end of the voting session, and set up the parameter for the next voting session.

proposed this in July of this year (2021) to the Dash Incubator (another part of the Dash Democracy), and it was then approved. So hopefully it should see the light of day soon enough. Part of the aim of this document is to explain to masternode owners what this change would entail, and why we should adopt it.

But the second aim of this project is to train a community of people to think and be used to a different form of voting. Understand that they should not just be involved when boolean decisions (yes/no) need to be taken. Or even through discrete choices, but also when we need to decide a number, a value, an amount. Once this is in place it will be easier to suggest other use cases for this methodology.

Beyond Dash

My aim does not stop at Dash. In the last 7 years, Dash has been at the forefront of innovation and we have seen many innovations been applied to Dash first and then been copied to other networks. The concept of Masternodes itself first appeared in Dash and was then reused through other blockchains. Please copy this idea too. I want to live in a world where people participate in the democratic decisions that affect them. There are right now hundreds of DAOs around. Tenths of models. Use this, copy it, make it a tool they can use too. And please let me know if you do, so I can invest in them too.
And yes, I do not want this to stop only at crypto coins or DAOs. I want to see democracies apply it too. I want to see the Unidimensional Referendum become one of the tools constitutions around the World offer to their citizens. The mathematics supports it, there really is nothing that stops us from upgrading our democracies.