New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
mariapao opened this Issue Jan 22, 2018 · 2 comments

Comments

Projects
None yet
5 participants
@mariapao
Contributor

mariapao commented Jan 22, 2018

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:

  • Not require token locking
  • Not require on-chain token snapshots
  • Be compatible with both public and commit-reveal procedures
  • Reduce ability for users to influence the vote and leave before results are public

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

  • Proof of concept implementation or well thought out technical design document detailing how project will be accomplished
  • Details of the team members, alongside their willingness in terms of implementation
  • Estimated average burn rate for completing the deliverables
  • Legal structure to be adopted, if any

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

This comment has been minimized.

Show comment
Hide comment
@mrsmkl

mrsmkl Mar 1, 2018

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.

mrsmkl commented Mar 1, 2018

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

This comment has been minimized.

Show comment
Hide comment
@eordano

eordano Jun 25, 2018

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.

eordano commented Jun 25, 2018

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment