Creating a DAO for Governance


#1

Concept

The first iteration of BUIDL Academy will have specific goals to set the standard and measure success for future iterations.

As it proves successful I would love to see more members of the community take ownership in the organization so that it can self-govern. It would be great to have a DAO to organize proposals for goals and dispersement of funds.

Questions

First questions that come to mind are:

  1. How is ownership percentage determined?
    a. Is it a weighted percentage tied to some financial stake?
    b. Is it 1 collaborator, 1 vote? If so, when is someone considered a collaborator? This should be sybil resistant. Perhaps collaborator status is determined by a vote? Can it be revoked?
  2. How often should votes be held?
    a. Should be a period long enough for maximum turnout. If the academy teaches a group of students every couple months, it could open proposals for goals & fund allocation at the beginning of that period.

Welcome to BUIDL Academy
#2

Been thinking more regarding the first question. It seems to me like the best course of action is to keep voting privileges separate from any financial stake. Financial stakes can quickly lead to bad outcomes where the majority vote doesn’t serve the best interests of the organization. Rather, it should run like a non-profit organization where all funds are dedicated to a direct purpose within the academy. Each member gets the right to one vote.

To induct a new member, a vote must be held.
To distribute any funds, a vote must be held.

It keeps the governance process fair and simple. The tradeoff is it’s a bit slow to run as every new member must be manually voted in. This membership process will likely involve some type of fuzzy criteria for contribution status. For example, if they are teaching classes during the session.


#3

Getting great feedback on the Aragon Forum and this Cent Post!

Based on what Luke Duncan mentioned on the Aragon Forum:

[…]it is important that each new member has a relatively strong commitment and that there is a process for removing inactive members or you risk finding youself in a situation where the organization’s governance gets “stuck” because there are not enough active members to make quorum.

And what Xerographic mentioned on the Cent Post:

My suggestion is to replace voting with donating. For example, right now the Libertarian Party is using donating to rank potential convention themes. Having to make a donation helps to minimize the input/influence of people who aren’t truly interested/informed.

It seems to me that we need to separate this out a bit. It is quite the commitment for a donator to have to come back every time we need to register consensus. Rather, we should be offering something to donators to vote on at the time they are committing money to the cause. This way they have a structured way to offer their voice and they are not required to come back for regular votes.

A great suggestion from @cody is to have a vote on courses that get taught. We can offer a number of subjects that can be turned into a Code Tutorial. Have the donations decide which course we will create a Gitcoin Bounty similar to this Intro To Solidity Tutorial. So along with a donation someone can choose which tutorial to create next:

(example) Which Topic Should be turned into a Code Tutorial for future lessons?

  • ERC721 Game Items
  • ZK Snarks
  • Game Theory
  • Intro to Ethers.js
  • Vyper Building Block
  • Commit/Reveal Schemes
  • Proof of Work
  • Proof of Stake

Ideas taken from this Issues List.

Also I like Luke’s suggestion:

Rather than one-person one-vote you may also consider non-transferrable merit tokens, so that people can earn voting privileges corresponding to the magnitude of their contributions.

To ensure that we don’t get “stuck” we can create levels of contribution where we can easily come up with decisions early on when we’re a small group and grow as more members invest their time.


BUIDL Academy Design
#4

@cody mentioned the idea of creating a system where someone’s governance tokens automatically decrease over time. At the same time, any contributions you add will give you more tokens up to a certain cap.

For instance, let’s say I start with zero governance tokens. (numbers below are for example purposes)

  1. I teach three classes (+ 300 tokens)
  2. I write two tutorials for the curriculum (+ 600 tokens)

Now I have 900 governance tokens. Perhaps we can determine some rate of deflation where you automatically lose those tokens over time. For instance, 10 tokens/week.

If I have 900 tokens, it will take me 90 weeks of inactivity before I am reduced back to zero tokens. After a year and half of inactivity, it makes sense that I am no longer invested in the project mentally and my opinion may not have as much weight on current events.

To ensure that nobody has too much power we can cap the maximum influence to something like 1000 tokens. This way, if you teach one class you already have 1/10th of the maximum influence you could possibly have.

Still working out the numbers. It would also be great if we could come up with a list of all possible contributions. These should not be limited to teaching a class or writing tutorials. Someone could help in the organization of classes, help run events, help contribute to the forum with meaningful discussion. These are all things that should be awarded governance tokens.

I think that it makes sense that all of these governance token allocations can be started by anyone and awarded via a social consensus on a vote. Let’s say the votes have an active period of 2 weeks before they are completed. This way active members have to vote on a few proposals twice a month. If anyone does not vote during this active period they can lose governance tokens as a penalty.


#5

One thought - use inflation to penalize inactivity - thus your don’t take tokens, they are just less valuable over time for stale members.

Thus all you can do is get rewarded in the system, with increasing rewards over time. It frames the gamification better IMO.


#6

also inflating rewards and minimum amounts for governance rights/levels. So over time active members have more say than anyone else


#7

Makes sense! Removing tokens can sound pretty harsh. It makes it seem as though your contributions are no longer valued.

Inflating rewards is similar except that it would make it seem like your contributions are valued less than more recent ones. Either way it’s a “What have you done for me lately?” system of governance that gives new people a great opportunity to come in and make a big difference even if for a short period of time.

Are you picturing it where a specific type of contribution might be worth 100 tokens now, 6 months from now it’s worth 150 tokens, 12 months 200 tokens, etc…?


#8

yes - something like that. Where everything inflates over time in lock step together - rewards, and costs/levels within the system. the exact rate would need to be dialed in, and likely should be changeable over time with consensus (within some non-zero and nothing crazy bounds)

thus the most recent and active contributors are always valued most.


#9

This does give rise to a potential problem: the any work done on the project gets less valued over time. Thus it might turn off people who take a break and want to come back. Eventually the majority of work will be less valued than the most recent. This sounds like it might be good… but could be a way to take over a great project and shutout an inactive (previously the real powerhouses) team.


#10

Thus a dynamic inflation rate based on the environment that the collective work is in would be something to explore…

So inflation is based not on time but on contributions and other activity. With possibly a system to change the rate of inflation based on how active and in flux the whole repo/collective work is.


#11

True. I would say this downside here is potentially mitigated with the deflationary system and a token cap. If you can achieve your max tokens or “full-fledged” contributor status within a month of active contributions it wouldn’t be as much of a barrier to come back.

Perhaps my original proposal should not have been as much of a deflationary system as a penalty for not voting. That way, if have already achieved the full-fledged status you can retain it as long as you show up twice a month for voting.

The developer in me loves this and I’m picturing an extremely robust system. However, it may be tricky to figure out considering that the rewards may already need to be dynamic to begin with. I hadn’t really mentioned this and it may be the case even for similar contributions. For instance, if someone created a simple tutorial to introduce a concept versus a more advanced tutorial building a full dapp we may need to adjust the governance tokens accordingly. It would definitely need to adjust dynamically for things like design and website development.

We could write some guidelines for levels of effort and how they correlate to contribution points, then people can write up a quick description of the work they’ve done to come to a community vote on awarding contribution points. Something like:

Web Development Work
I worked on the BUIDL Academy website. Added the ability for students to view class events on a calendar and add it directly to their google calendar. Here’s my BUIDL Academy Pull Request.

Thinking that anyone can open up a vote to award this person 200 governance tokens based on some fuzzy level of contribution.


#12

Now I’m starting to see how these two ideas diverge philosophically. They are both pretty similar in that newcomers feel like their contributions quickly add up to voting privileges. This is the most important point in my mind and both systems achieve it!

The difference is that in the inflationary stem users can continue to accumulate governance tokens over time. If I have been contributing for years I continue to accrue more voting weight. Others can catch up quick due to the inflation especially if they’re more active currently than I am.

With a governance token cap there’s a period of time where the user is not at the full-fledged status and it acts as a bit of a vetting period. Once they have achieved full-fledged status their vote counts just as much as mine, even if I have been a core contributor from the very beginning.

It’s tough to say which system is better. Someone who has been a core contributor from the very beginning could very well have a more knowledgeable opinion and therefore the accumulated vote weight is justified. I’m a bit more inclined to the governance token cap primarily because it seems a bit more democratic and potentially favorable to newcomers. Any full-fledged contributor has ideally paid their dues and now they can vote with just as much weight as any other contributor. It may also be a bit simpler from an implementations’ perspective, although that’s the least important consideration.


#13

To re-iterate on the message above, I’m thinking the inflation system would be the best choice if we could somehow directly correlate an action to a value in governance tokens (i.e. Create a Tutorial = 200 points, 1 Design a Mock-Up = 300 points, Add a Forum Post = 50 points, etc…). However, all of these things are game-able and aren’t equivalent in effort and value. Think we need to rely on the social consensus to determine the effort and reward, in which case a temporary vetting period feels more appropriate than accruing vote weight.