Governance - proposal for technical realisation for voting

Hi, is there any progress with the governance?

How do you plan to vote for proposal?

My suggestion is to use knowledge based representative democracy.

Lets define categories eg. Software, Fund, …

Lets allow anybody to forward its voting power to other person by making self transaction with note eg. {“vote”:“v1”,“transfer”:[{“category”:“Software”,power:“10”,"ADDR:“AAAAA…AA”},{“category”:“Software”,power:“90”,"ADDR:“AAAAA…AA”},{“category”:“Fund”,power:“10”,"ADDR:“AAAAA…AA”}]}

This way any address can transfer its voting power to other address…

When there will be some decision to be voted on, lets make the self transaction
{“vote”:“v1”,“decision”:{id:123, “vote”:true}}

Then some algo can count all votes and make the decision to accept the git pull request if sum in favor is greater then sum against.

The calculation can be following:

Acc1 > 90% > Acc2
Acc1 > 10% > Acc3
Acc2 > 20% > Acc4
Acc2 > 80% > Acc5
Acc3 > 100% > Acc1
Acc4 > 100% > Acc3
Acc5 > no tr def

Acc1 Balance 1, Acc2 Balance 10 Acc3 Balance 100, Acc4 Balacne 1000 Acc5 Balance 10000

Use case 1:
Acc4 votes 0, Acc5 votes 1

Acc1 > 90% *(1) > Acc2 > 20% > Acc4 (0) = 1 * 0.9 * 0.2 against
Acc1 > 90% *(1) > Acc2 > 80% > Acc5 (1) = 1 * 0.9 * 0.8 in favor
Acc1 > 10% *(1) > Acc3 > 100% > Acc1 << Deadlock = 0%

Acc2 > 20% > Acc4 (0) = 10 * 0.2 against
Acc2 > 80% > Acc5 (1) = 10 * 0.8 in favor

Acc3 > 100% > Acc1
Acc3 > 100% Acc1 > 90% *(1) > Acc2 > 20% > Acc4 (0) = 100 * 0.9 * 0.2 against
Acc3 > 100% Acc1 > 90% *(1) > Acc2 > 80% > Acc5 (1) = 100 * 0.9 * 0.8 in favor
Acc3 > 100% Acc1 > 10% *(1) > Acc3 > 100% > Acc1 << Deadlock = 0%

Acc4 > Direct vote: 1000 against

Acc5 > Direct vote: 10000 in favor

against: 1 * 0,9 * 0,2 + 10 * 0,2 + 100 * 0,9 * 0,2 + 1000 = 2020,18
in favor: 1 * 0,9 * 0,8 + 10 * 0,8 + 100 * 0,9 * 0,8 + 10000 = 10080,72
direct vote: 1000+10000 = 11000
representative vote: 12100.9

Use case 2:
Acc1 votes 0, Acc2 votes 1

Acc1 > Direct vote: 1 against
Acc2 > Direct vote: 10 in favor
Acc3 > 100% > Acc1 : 100 against
Acc4 > 100% > Acc3 > 100% > Acc1 = 1000 against
Acc5 > No vote

against: 1 + 100 + 1000 = 1101
in favor: 10
direct vote: 1+10 = 11
representative vote: 1111

Use case 3:
Acc1 votes 0, Acc2 votes 1,Acc3 votes 0, Acc4 votes 1, Acc5 votes 0

Acc1 > Direct vote: 1 against
Acc2 > Direct vote: 10 in favor
Acc3 > Direct vote: 100 against
Acc4 > Direct vote: 1000 in favor
Acc5 > Direct vote: 10000 against

against: 1 + 100 + 10000 = 10101
in favor: 1010
direct vote: 11111
representative vote: 11111

1 Like

There is no discussion on governance within the discord, nor here… Do you (algo inc/algo foundation) have private talk without community on this matter now? When do you plan to talk to community about this?

Hi @scholtz - we’ve been working hard in the background on the mechanisms for both the referendum and the main governance voting system. The first stage has been announced today:

1 Like

Are you joking right? From wiki about referendum:

A referendum is a direct and universal vote in which an entire electorate is invited to vote on a particular proposal and can have nationwide or local forms.

Your decision making is

  1. Not universal vote
  2. Not for entire electrorate

Your “Referendum” is decision of KMD node runners what software should be used.

Why dont you make a referendum where any address can send some dummy transaction with the decision?

Who has stake online ? The early backers and exchanges… Are you serious that you want to call this referendum? Will it satisfy you that 50 people will decide the future of algorand network? Why the hack do you call it referendum?

The question is also quite debatable … Is the referendum question: Do you want to stop progress? You have not shown what you want to vote for… Is the question to upgrade to 40k TPS on the table or not?

Btw, all nodes should have automatic upgrades … no?

Or is it about the governance? Do you have alternatives to 1 algo = 1 vote? Do you give poeple the choice? Or is it just early backers to silently take over the algo network as a whole?

Thanks for this - your hard work is appreciated. @scholtz your points are well taken in rebuttal. Rather than responding in the form of questions, it may be helpful to articulate a better referendum according to your perspective. Then, highlight the differences between your referendum and the Algorand referendum.

To be clear, this referendum has only 1 task: to approve the Governance Program Proposal. In order to facilitate full community governance, there has to be a way for the current network partners (relay node runners and participation node runners) to signal their support for this program. Once this “one off” vote is completed, the Foundation will work to implement the full community governance proposal as outlined in the proposal document - we expect a significant % of the global Algorand community to participate in the full Governance program, as this program will be run as a 1 or 2 click process from within the wallet. The goal of this exercise, assuming the referendum vote is successful, is to begin to implement decentralization of the governance of the Algorand network from Oct 1st this year.

As Brian ( @bhaney44 ) has pointed out, it you have an alternative proposal for the community governance voting mechanism, we would be very interested to hear and understand that proposal.

1 Like

I am sorry if I have touched someone, but really referendum is about asking everybody involved not just early backers…

Read the first post in this thread please.

Read the first post in this thread please.

If talking about the general governance voting system, @scholtz’s first post in this thread has a very concrete proposal for improving the decentralization of the governance.

Specifically, his proposal that “any address can transfer its voting power to other address” would allow voters to choose their “representatives”, rather than a central authority choosing the representatives, which would be an improvement over the currently planned Vote-with-the-Foundation option.

There may be some technical and logical challenges that would need to be solved for scholtz’s proposal to be usable (such as dealing with delegates who do not vote, circular delegations leading to no votes being cast, rewards structure with fair handling of such scenarios, etc), but I think it is the right direction.

Additional Proposal

As my two cents, I would propose applying the square-root method (aka the Penrose Method) to all delegated votes, where each voter’s voting weight is the number of algos the voter has plus the square root of the additional votes delegated to that voter. This would apply regardless of whether the exact voting method is the current proposal from Foundation (with the Vote-with-the-Foundation option) or scholtz’s more decentralized version.

The theoretical arguments for the square-root method (from Penrose method - Wikipedia) include the conclusion that proportional allocation (without the square root) would result in “excessive voting powers for the electorates of larger constituencies”. For example, the Foundation in the Vote-with-the-Foundation system would be the one that gains excessive voting powers.

There are also other practical benefits for using this method that may be harder to justify with mathematical or theoretical arguments, but should still be easy to see. For example, if delegating one’s votes is an easier way to earn rewards than casting actual votes, it will be more popular among those users who don’t care about the vote as much and only do it for the rewards.

Votes from people who don’t care about voting would be more random and/or biased (or just be cast to the Foundation because that is the only option) and a less accurate measurement of what these users actually wanted. And if such a bias can be known ahead of time, we should be extra careful of not giving such votes “excessive voting powers” that they otherwise will get if we don’t use the square-root method.

I put my answer to discord message also here…

First, I have suggested the technical type of voting before there was announcment about the referendum, so please do not attach the start of the thread to the technical detail proposed for this referendum.
Secondly, my intention was to make efficient way of decision making for algorand community not related just to governance. If this type of voting would be done, algorand could ask participant any questions and they could have high quality response within a day. I am sure that for more complicated questions there should be time to response longer, but it is about the efficiency.
Third, I was quite disappointed after I have found out about the referendum that you call asking the relay node runners question “the referendum” … where in reality if you would want to call it referendum you should ask all algo owners. If you want to ask relay node runners, call it “Node runners referendum” … so simple, so much confusion caused by this naming… If this vote is just proforma as mors has stated, why dont you name it correctly and make big event from it that you give power from node runners to 1 algo = 1 vote decision making?
Next, I was asking in the thread if you have any progress with implementation of governance which I did not get the response. What should the node runners decide then if we cannot see the technical solution?
Next, community asks for alternative for 1 algo = 1 vote … there has been many proposals, each one ignored by officials… One asks for wallet sqrt algo= 1 vote (I understand that this may lead to increasing voting power if the whales split the wallets) ; Second asks for two bodies to accept the vote … voting for 1 algo = 1 vote is one body, and second body 1 person = 1 vote… I am sure that if you asks people and let them suggest other methods how to limit power of whales so that whales have still significant power but not that much as 1 algo = 1 vote, people will come with ideas…