Inspiration

We began exploring alternate voting algorithms to solve governance problems that DAOs commonly face. The two biggest we identified were the threat of Sybil attacks as well as the threat of one singular token holder accruing a huge amount of power over voting for an organization. We explored some already existent solutions such as Probabilistic Quadratic Voting but decided ultimately to develop our own novel solution to solve both of these problems.

What it does

Our Time-Accrued Voting system bases a token-holders voting power on how long they have been a holder of said token. The longer that a person holds on to their token the greater their voting power will become. This is to incentivize holding tokens for an extended amount of time (those with the most power have a greater time invested and interest in the protocol) and prevent the threat of a flash Sybil attack.

How we built it

We used Uniswap's Governor Alpha contract as a basis for the governance structure and then employed our custom time-focused algorithm to change how votes were distributed.

Challenges we ran into

The calculations for the area of a curve (which we used to calculate voting power relative to time) took quite a bit of time to develop and were difficult to implement in a lightweight language such as solidity. Our team had to work around the limited math functionalities that are provided in the Solidity language.

Accomplishments that we're proud of

As far as we can tell the solution that we have proposed is truly novel. Although some governance structures have employed a similar Proof of Reputation system for voting, this is the only one that allows users to retain anonymity when participating in governance.

What we learned

Our team as a whole had limited experience with Solidity prior to this project. This was the first fully-fledged project that any of us had developed in this language so we had to fully adjust our programming experience to fit its needs. We also learned quite a lot about existing voting protocols and theoretical problems that could come to face well-known publicly governed protocols such as Uniswap.

What's next for Time Accrued Voting

Increase scalability by deploying on a Layer2, improving the algorithm we developed, incentivizing long-term holding by replacing voting functionality with a non-transferable token that is rewarded to holders of the standard token, add quadratic voting to our system. If we had a greater amount of time we would like to run simulations to test how our proposed voting power distribution would hold up in edge cases of the ultra-long term.

Built With

Share this project:

Updates