aragon / nest

A grants program to support the development of the ecosystem
https://aragon.org/project/grants
Creative Commons Zero v1.0 Universal
140 stars 78 forks source link

Aragon Nest Proposal: Verifiable Off-chain Tabulation of Carbon-vote signaling #6

Closed mariapao closed 5 years ago

mariapao commented 6 years ago

Aragon Nest Proposal: Verifiable Off-chain Tabulation of Carbon-vote signaling

Abstract

On-chain governance reduces friction and increases transparency in collective decision making. However, current approaches to voting make tradeoffs to user experience in order to achieve secure on-chain tabulation and prevent double voting.

Partial-Lock Commit Reveal Voting Procedure: Users submit a secret vote, then after poll closes reveal and tabulate votes. This process has the advantage of keeping votes secret during the voting process, but requires the user to perform two separate transactions and lock their tokens from the point they submit a vote to when they reveal their vote.

A Balance Snapshots Voting Procedure: A snapshot of the balances of all token holders is taken at a specific block number when voting begins. Users can vote with the balance and tabulate votes as they submit them, they are never required to lock their tokens and voting and tabulation can be done in a single transaction. However, votes are not private during the voting period and users can vote with their balance and exit before the vote completes.

Carbon-vote Signaling Procedure: Users can indicate their vote based on their current token balance, if they transfer tokens the weight of their vote changes. Tabulation can be done client side but the result is not available on-chain.

Verifiable Off-chain Tabulation of Carbon-vote signaling would use the Carbon-vote procedure along with verifiable off-chain computation mechanism to provide an on-chain result given a specific blocknumber. The result should be verifiable on-chain in the event of a dispute, but the cost for on-chain verification should be contained within the verification game and not passed on to voters.

This would present a new alternative to the above voting procedures that would:

Deliverables

  1. An off-chain verification solution that takes a carbon-vote poll using a plurality tabulation procedure and block-number and returns the tabulated result of the poll based on balances at block-number.
  2. An AragonOS compatible application and user interface for creating and participating in a vote
  3. An interface to program more sophisticated tabulation procedures (e.g. range voting, approval voting, borda, instant-runoff, etc)

Grant size

Funding: From $50k up to $100k in ETH, split into chunks paid out over achieved deliverables.

Success reward: Up to $50k in ANT, given out when all deliverables are ready.

Application requirements

Development timeline

The development timeline will be the following one in regards to each deliverable:

  1. Feb 2018
  2. March 2018
  3. Apr 2018

Testnet launch will be expected during Apr 2018, with mainnet launch being June 2018

mrsmkl commented 6 years ago

Here are my ideas about how to implement this: https://github.com/mrsmkl/eth-patricia/wiki/Offchain-tabulation-of-votes

It is a bit complex, but most of the stuff will be needed by Truebit anyways. Also implementing different kinds of tabulation methods should be quite simple.

eordano commented 6 years ago

Hi team:

At Decentraland, we're about to release an off-chain voting tool where votes are weighted based on any ERC20 token. It's not built shoe-horned for this Nest Proposal, but it should take care of point (1) of the requirements. The code lives at:

https://github.com/decentraland/agora

The bad news is that it requires a central server to carry the results, and that it's prone to censorship of votes, which is awful and unacceptable. We're working on it [1], we're not looking to claim the Nest bounty, but rather offer the code for anyone who wants to build on top of Agora and help us take away all the centralization of our solution.

Best regards from a passionate Aragon fan, Esteban

[1]: We're adding a smart contract with a security deposit that gets slashed if the central server does not include a vote.

mariapao commented 5 years ago

I'm closing this proposal as this project is no longer a priority for Aragon in 2019