Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Aragon Nest Proposal: Verifiable Off-chain Tabulation of Carbon-vote signaling #6
Aragon Nest Proposal: Verifiable Off-chain Tabulation of Carbon-vote signaling
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:
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.
The development timeline will be the following one in regards to each deliverable:
Testnet launch will be expected during Apr 2018, with mainnet launch being June 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.
referenced this issue
Mar 2, 2018
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:
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 , 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,
: We're adding a smart contract with a security deposit that gets slashed if the central server does not include a vote.