Funding and Voting System


#1

Combining ideas from Native discussions, CO Blockchain discussions, the Native whitepaper, the literature (sources listed below), Vitalik Buterin, blockchains like Gitcoin, DAOs like Aragon, platforms like Wyzant, and the community in general, we have the following draft of a funding and voting system:

Funding

  1. A DAO’s members consist of some or all of the following: a) a team who works on a project and b) investors who contribute funds.

  2. Each investment takes the form of a smart contract/payment channel/EIP1337 subscription/escrow wallet/self-destructing ERC721/etc. which must specify beforehand:

a) how the funds are split between the equity (“reserve”) fund and the project (“community”) fund

b) how the community funds are split between the team members

c) the timeline for payment

d) the amount of the community fund, reserve fund, and DAO tokens now owned by each member of the DAO

  1. For example, see how traditional businesses divvy up Angel investments and Series A, B, C seed funds (https://www.investopedia.com/articles/personal-finance/102015/series-b-c-funding-what-it-all-means-and-how-it-works.asp) and how decentralized versions of those use token bonding curves to divvy up investments at any time (https://blog.goodaudience.com/rewriting-the-story-of-human-collaboration-c33a8a4cd5b8).

We implement the above in a way that ensures 1) the value of tokens increases over time and 2) all tokens are always fully backed by the reserve:

Prospective members can

a) contribute work to projects and receive a portion of the community funds

and/or

b) contribute funds to the reserve and community funds and receive minted tokens at the exchange rate (“token value”) At the Time of Investment.

The price to buy a token (“buy price”) increases over time and is set by a bonding curve: p(t) = buy price at time t.

When an investor contributes Z amount of funds at time T, they specify through a smart contract that:

i. An amount w from Z plus an additional amount y (to balance the reserve, determined below) from Z goes to the reserve fund.

ii. The remaining Z - w - y goes to the community fund according to the timeline and distribution of the investor’s choice.

iii. In exchange, the investor receives w worth of tokens, each having a value of p(T). That is, they receive w/p(T) tokens.

iv. The investor can sell their tokens (burn them in exchange for reserve funds) at any time, at the exchange rate (“token value”) At the Time of Sell.

The token value at time t must equal (total reserve funds) ÷ (total existing tokens), which must equal p(T) at time T. Thus y is determined as follows:

v(t) = token value at time t = r(t)/m(t)
r(t) = total reserve funds at time t
m(t) = total tokens at time t
r(T-) = total reserve funds at time T prior to the investor’s investment
m(T-) = total tokens at time T prior to the investor’s investment
v(T+) = token value at time T after the investor’s investment = [r(T-) + w + y]/[m(T-) + w/p(T)] = p(T)
So:
[r(T-) + w + y]/[m(T-) + w/p(T)] = p(T)
r(T-) + w + y = p(T)[m(T-) + w/p(T)] = p(T)m(T-) + w
y = p(T)m(T-) - r(T-)

For example, if the first investor contributes $5,000 to the reserve and $5,000 to the community fund, and the price of tokens is $1/token, they now own 5,000 tokens valued at $1 each.

If the next investor contributes $10,000 + y to the reserve and $10,000 - y to the community fund, and the price of tokens is now $2/token, the second investor now owns 5,000 tokens valued at $2 each and the first investor now owns 5,000 tokens valued at $2 each.

All 10,000 existing tokens are backed by $20,000 in the reserve, so y = $5,000, so $15,000 of the second investor’s contribution goes to the reserve and the remaining $5,000 goes to the community fund.

If the second investor had contributed twice as much, $25,000 would go to the reserve and $15,000 would go the community fund, and the second investor would now own 10,000 tokens valued at $2 each and the first investor would now own 5,000 token valued at $2 each.

This incentivizes members to invest earlier, increase the value of the organization, invest more (they still get the same amount w of their investment in fully backed tokens, and now a greater % of their investment goes to the community projects which increase the value of the organization), and not sell their tokens for cheap on other exchanges.

  1. Any member can sell their membership tokens (which get burned) for reserve funds at any time for the sell value/exchange rate At the Time of Sell (quit). Again this uses the smart contract/pricing described in 2-3.

  2. The community/project funds pay for expenses/contributions according to the timeline specified. For example, see how contracting platforms like Gitcoin, Wyzant, Colony, etc. work. Our understanding is:

Rating

For a Platform Fee:
Customer chooses their own timeline for paying worker.

By Default:

i. Customer funds are locked in escrow upon acceptance of a worker/contract

and

ii. 50% is automatically paid upon worker’s work submission

which

iii. automatically unlocks customer’s review (optional) and rating (scale of 1 to 3) capability

and

iv. the remaining 50% is automatically paid upon a rating of 3, or 25% is paid upon a rating of 2, or 0% is paid upon a rating of 1

which

v. automatically unlocks the worker’s review (optional) and rating (scale of 1 to 3) capability.

All customers’ and workers’ average ratings/project histories/submissions/reviews are displayed prominently on their profile, so unsatisfactory ratings make them a LOT less competitive relative to the plethora of highly rated customers and workers out there.

Voting

It is key that the rules can be changed:

The only way voting can be fair is if there are no votes involved.

  1. Anyone makes a proposal anytime by making a fork/branch from the current project and directly working on that.

  2. Anyone votes for a proposal anytime by becoming an investor or team member of that project, using the same process described by Funding 1-5.

The above by design addresses funding, decentralization, consensus, futarchy, meritocracy, plutarchy, corruption (51% attack, collusion, nepotism, bribery, ad abuse…), innovation, transparency, trustlessness, security (money laundering, sybil attack, prejudice, anonymity, single point of failure…), HR, customer service, etc.

Use Cases

I. “Decentralized Patreon” (Currencyless DAO)

Q: Say a musician wants to make a living as a musician, without depending on copyright restrictions/paywalls/producer contracts/expensive venues/tours/conforming to mainstream tastes. How do we connect musicians that actually care with audiences that actually care, without the middleman?

A: Well, the musician can create their own DAO using the funding and voting mechanisms described above, except there are no investors/tokens. Anyone can create a proposal (for example, concert/event times/dates/venues/collaborations) by forking the DAO (for example, to modify the calendar) and anyone can vote for any proposal by joining/contributing to that fork (for example, by rsvping/contributing subproposals), in other words the fork is just another DAO within the DAO (recursion! or fractal?).

II. Decentralized Academy

Similar to Decentralized Patreon, except with:

A wiki for lecture content/student content (only page creators can edit their own pages, but anyone can create a page, and anyone can suggest edits).

A whiteboard/screenshare/chat-enabled chatroom for class/discussion use (anyone can post to chat, but only the teacher can toggle audio/whiteboard permissions).

III. Reversing the debt/war/oppression cycle

IV. Redefining countries

V. Retirement Investments

Resources


#2

A DAO’s members consist of a) a team who works on a project and b) investors who contribute funds

An investor may not == member in the sense that they may not care about the benefits of a community, just the future price of the community’s tokens that they receive when investing. Or maybe they just want to purchase community goods with the currency and not partake in a recurring membership

the % of the equity/reserve fund now owned by each member of the DAO

The amount of a community’s tokens distributed is based on the current buy function of the reserve’s bonding curve. If I buy in 2% at $5 million and another $20 million comes in later, my 2% of tokens at $5M are indeed worth ~2% of that $25M as the amount of tokens I received for the price when I bought $5M is worth much more when an additional $20M comes in and raises the price of the token, at which point I can sell.

Any member can exchange % equity/reserve ownership for crypto any time (quit), again this takes the form of a smart contract as described in 2.

Agreed, a user should be able to cash out any money “staked” at any time, but I think the important question at hand in the case of Aragon and EthDao is whether or not there’s a grace period after a proposal passes that a member disagreed with where that member can take their stake and leave before any implications of the proposal are executed. In the case of Native and recurring subscriptions though, there’s no expectation of receiving any member dues back.

bounty poster pays contractor beforehand

I think a more reasonable workflow is that a bounty poster locks funds in escrow beforehand. Worker accepts work and only upon satisfactory completion of the work are the funds distributed from the escrow. If the bounty times out, the funds are returned to the bounty poster.

bounty poster rates the contractor

Colony has a pretty awesome commit reveal system for this with a bounty poster, a worker, and a third party evaluator to ensure all parties are satisfied at the end of a work agreement and the final work is rated objectively: https://docs.colony.io/colonynetwork/whitepaper-tldr-tasks/#rate


#3

Huh, cool ideas

  1. I agree with membership depending on caring…I am adding a few use cases, one of which will be currencyless:

“Decentralized Patreon”

Q: Say a musician wants to make a living as a musician, without depending on copyright restrictions/paywalls/producer contracts/expensive venues and tours/conforming to mainstream tastes. How do we connect musicians that actually care with audiences that actually care, without the middleman?

A: Well, the musician can create their own DAO using the funding and voting mechanisms described above, except there are no investors/tokens. Anyone can create a proposal (in this case, things like concert/event times/dates/venues/collaborations) by forking the DAO (in this case, to modify the calendar) and anyone can vote for any proposal by joining/contributing to that fork (in this case rsvping/contributing subproposals), which works just like a subDAO (recursion! or fractal?).

  1. I agree that we need a rating system (in this case for proposals/projects not necessarily bounties), but the Colony system doesn’t address the possibility of managers simply rating every worker as unsatisfactory and not paying them and running off with their work :frowning: That’s why I propose a combination with Wyzant’s system (https://support.wyzant.com/hc/en-us/articles/208804266-Tutor-Payment-Policies?mobile_site=true) in this proposal, namely:

i. Customer funds are placed in escrow upon worker acceptance
and
ii. automatically paid upon worker submission
which
iii. automatically unlocks review (optional)/rating capability for the customer.
All workers’ average ratings/lesson histories/submissions/reviews are displayed prominently on their profile, so unsatisfactory ratings make them a LOT less competitive relative to the plethora of highly rated workers out there.

  1. I fully agree with Colony’s commit reveal system. I see it as a method for workers to “respond” to reviews, but objectively and without perpetual back-and-forth, yet everyone’s view is addressed equally :slight_smile:

Thank you for responding so thoroughly, I just saw it because I had some new ideas to add, and didn’t expect that anyone would reply! Will have to check here more often.


#4

Updated the proposal. I thought about it some more, and the problem with commit reveal is it still doesn’t address the possibility of the bounty poster just always giving workers unsatisfactory ratings/not paying them/walking off with their work, so I used a combination of your/my/Colony/Wyzant’s workflows.