Skip to content
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

specs: what happens with decisions if reputation distribution changes? #19

Closed
jellegerbrandy opened this issue Jan 18, 2017 · 3 comments
Assignees

Comments

@jellegerbrandy
Copy link
Contributor

Reputation distribution changes in time; the decision process takes time. This raises a number of decisions we need to make on how to count votes (i.e. relative to which distribution): Here is a typical case:

  • Ann has 55% of the reputation, Bill has 45%.
  • Ann votes "yes".
  • Reputation distribution changes: Bill now has 60%, Ann has 40%.
  • Bill votes "no"

Question: did the proposal pass? And specifically: how much rep is staked on "yes" and how much on "no"?

@jellegerbrandy jellegerbrandy changed the title specs: what happens with decisions if reputation distribution changes specs: what happens with decisions if reputation distribution changes? Jan 18, 2017
@fmatan
Copy link
Contributor

fmatan commented Jan 19, 2017

Two things:

  1. we still need to decide about the actual voting-collection method: we have a default one for now but should consider others. There's a few posts on this topic (including of people from Colony), reviewing different methods and problems. Basically you can compute votes all together, or one by one, etc.

  2. One thing is clear: we need to use everyone's reputation from the same reputation distribution (ie. the reputation distribution at the same time). So if we'd to collect votes one by one, we'd probably like to consider their reputation at the time of the first vote (or the making of proposal), etc. Otherwise we'd not sum them into 100%, and would also be exposed to more kinds of attack.

@jellegerbrandy
Copy link
Contributor Author

I moved your first point to a new issue, #21 .

Regarding the second point. We sort of need to tally the votes at the moment they are cast, because tallying them all together is difficult to do because of gas limits. And as you said, we also want a sort of consistent vote (summing to 100%, for example).

So it seems that the only option is to tally the votes on the basis of a reputation distribution "snapshot" taken, say, at the time the proposal is submitted.

This seems reasonable to me. Next task: finding out how to do this in solidity.

@jellegerbrandy
Copy link
Contributor Author

It seems we cannot do this in the EVM without expliciting storing the state of the reputation distribution: http://ethereum.stackexchange.com/questions/11545/is-it-possible-to-access-storage-history-from-a-contract-in-solidity

So this is a problem, especially because our reputation contract is expected to become quite large.

There are many solutions I can think of, but at the end, it means that we would need to pay for storing the whole history of the reputation contract, which seems excessive.

@jellegerbrandy jellegerbrandy mentioned this issue Feb 16, 2017
@leviadam leviadam closed this as completed Oct 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants