Voting is probably the most integral part in a Decentralized Autonomous Organization (DAO). Contrary to the one-man-one-vote strategy, which is followed in almost all kinds of democratic voting systems, DAOs make use of one-token-one-vote strategy. This is because, a man in a DAO is just an address on the blockchain, and the simplest way to game a one-address-one-vote strategy would be to split tokens in to multiple addresses and duplicate votes.

So now that we have decided a one-token-one-vote strategy, we need a mechanism to decide if the DAO has voted for a bill, or voted against it. We cannot prevent cartelism even on a blockchain, but we can mitigate copying or influence of votes by using a commit-reveal scheme which is explained here. Now our voting mechanism is a class of simple voting games.

A voting game (N, v) is simple if for every coalition S ⊂ N, either v(S) = 0 or v(S) = 1, where v is the characteristic function. The simplest of voting games (where an address either votes for a bill, or abstains from voting), with one-token-one-vote is what we call weighted voting games, which are defined by a characteristic function of the form,

For such voting games, Lloyd Shapley introduced the concept of Shapley value, which is defined by the value function ∅ (phi), or the Shapley-Shubik power index (in the context of voting games),

Basically, this function calculates for an element i, the relative number of times an element i swings the voting result from negative to positive. So from all the permutations without the element i, we add to it i’s vote, and consider only those sets where i swings the result, i.e. v(S) = 0, but v(S ∪ N) = 1 for any subset S of N. So in short, the Shapley value gives an estimate as to how important a particular member or element is from all the N elements, or the relative number of times it brings about a swing in the voting results (since we consider swing in outcome, we consider all permutations).

But we would like to complicate the voting system a bit, by allowing votes against the proposal as well. Which means, members can now vote for, against or abstain from voting (neutral). These are called bi-cooperative voting game.

In a bi-cooperative voting game, for pairs of disjoint coalitions S and T, the characteristic function v now takes values {-1, 1}, where v(S, T) is the result of the voting (1 if the bill is accepted, -1 if it is rejected) when voters in S vote for the bill, voters in T vote against the bill and the remaining voters abstain. If all voters abstain, we have v(∅, ∅) = 0.

Conceptually, the Shapley-Shubik power index is nothing but the relative number of times a voter swings the voting. In bi-cooperative voting games we will have positive and negative power indices, defined by,

where the ∆’s are basically a measure of the positive and negative swings brought about by i = 𝞼(j+1).

As an example of a bi-cooperative voting game, consider the following decision making weightages:

[

{ "id": 1, "weight": 8.6577 },

{ "id": 2, "weight": 7.1193 },

{ "id": 3, "weight": 5.8011 },

{ "id": 4, "weight": 5.0577 },

{ "id": 5, "weight": 4.3457 },

{ "id": 6, "weight": 3.3837 },

{ "id": 7, "weight": 3.3168 },

{ "id": 8, "weight": 27.7727 },

{ "id": 9, "weight": 7.7727 },

{ "id": 10, "weight": 26.7726 }

]

Consider a good/effective proposal that benefits the welfare of the DAO, ids 1 through 7 to be the top 7 stakeholders in the DAO (who would always vote), id 10 to be ~26% of the DAO population that abstains from voting, id 8 to be ~78% (27.7727/(27.7727+7.7727)) of the remaining DAO members who vote for the proposal and id 9 to be the remaining DAO members who vote against the proposal.

We would like the good proposals to be passed, which means, we would like to keep the ∅ value due to ∆- to be as low as possible for the top stakeholders. This means, we would prefer if the top stakeholders do not have so much power so that their individual votes can swing the results of the good proposal from positive to negative.

On the contrary, for a bad proposal (where say at least ~51% of the DAO members other than top 7 stakeholders vote against the proposal) we would like to keep the ∅ value due to ∆+ to be as low as possible for the top stakeholders. Meaning, a bad proposal can easily be rejected, but it should be difficult for the top stakeholders to single-handedly or with a small coalition swing the voting in the unfavourable direction.

In order to compute the power indices, I wrote a small python code here. Quota is the weightage of votes required for the bill to be passed, so for a Quota of Q, the required condition is:

(n_votes_yes - n_votes_no) ≥ Q*(100 - n_did_not_vote)

The plot of the Shapley values for good proposals (∅ - vs Q) is shown below:

What I could refer from this is, a member with higher stake definitely has higher relative power to swing the voting, and as the required Quota for the proposal to pass increases, the relative power for an individual reduces. But if the required Quota is too high, then the higher stakeholders have increased power to cast their vote against the bill and prevent it from passing. Even when a bill is good for the welfare of the DAO, may be a bribe can incentivise a stakeholder from voting irrationally.

Similarly, one could find the relative power indices for positive as well as negative contributions in case of a bad proposal (say when roughly more than 51% of the DAO members other than top 7 stakeholders vote against it). We would then be interested in having a look at the ∅ value due to ∆+.

In the above plot, I used the weight of id 8 as 13.7727 and that of id 9 as 21.7727. We see that with a required Quota of more than 40, more or less all the power indices go down to zero. Meaning, the top stakeholders single handedly cannot pass a bad bill (although they may, by forming bigger coalitions, given a much higher incentive to cheat).

References:

[1] L. S. Shapley and M. Shubik. “A method for evaluating the distribution of power in a committee system”

[2] C. Labreuche, M. Grabisch. “Axiomatisation of the Shapley value and power index for bi-cooperative games”