1Hive / conviction-voting-app

Aragon app used to collectively allocate funds from a shared treasury 💧
94 stars 31 forks source link

Quadratic Conviction Voting #37

Open sembrestels opened 4 years ago

sembrestels commented 4 years ago

Quadratic voting is cutting edge nowadays. It has no previous relation with conviction voting but they can be combined very easily.

In some way, quadratic voting distributes voting power over people and conviction voting over time, or as @mzargham puts it, conviction voting address smoothing the way information is collected in time where as quadratic voting is reorganizing "in space" where the dimension of space is people.

Combined we get an algorithm which addresses distribution in both space and time. We have to take into account that we need a strong id in order to use quadratic voting (one account per user).

Applied to our current system, we only have to square root the staked tokens and multiply it by a scaling factor before we pass them as oldAmount param in the calculateConviction(uint64 timePassed, uint256 lastConv, uint256 oldAmount) function. A very simple and optional change that can have a lot of implications for communities that decide to go this way, giving more conviction power to small token holders.

It has a lot of sense to combine this with splitting the vote into various proposals (see #36).

0xBRM commented 4 years ago

Quadratic voting of any kind can only be justified in a Sybil resistant environment (eg all participants were KYCd). Otherwise it will have the opposite effect.

sembrestels commented 4 years ago

Yes, quadratic voting can only be applied to a group of authenticated people. We can use different methods to authenticate addresses in different DAOs: