voteflux / awesome-flux

A curated list of awesome Flux projects
4 stars 0 forks source link

Vote goes to the majority decision of a mixture of experts. #4

Open Bensetera opened 4 years ago

Bensetera commented 4 years ago

I had an idea for a feature in the Flux app where there is an option to choose to give your vote to the majority decision of a mixture of experts for the one poll. Rather than give your vote to 1 expert. The "basket" of experts could be premade or could be created by each individual user based on their personal preferences.

KipCrossing commented 4 years ago

I like this idea! @XertroV , thoughts?

XertroV commented 4 years ago

A critical note first:

I had an idea for a feature in the Flux app where there is an option to choose to give your vote to the majority decision of a mixture of experts for the one poll.

For a case-by-case basis, It is always easier to vote directly than to do delegation or anything complex. The only reason that comes to mind for wanting this sort of indirection is so you can register the delegation prior to the outcome so you can be absent later. Considering that you'd also have some reason for choosing particular delegates, you probably have an outcome in mind, so just vote. I don't really know of a case where there's any point to doing delegation on a case-by-case basis. Delegation in a voting system is better thought of as "setting a default", i.e. in the absence of my action, do what X does.

thoughts:

It's a valuable feature for the flux-in-parliament app^2 but probably out of scope for digipol - i.e. digipol's implementation won't become sufficiently complex as an app to warrant it's inclusion. (By the time digipol is that big, we should have parliamentarians, so it's somewhat moot). That said, nothing is stopping us adding it besides the implementation.

[2]:

Definition: AppF is whatever we use when Flux parliamentarians require direction.

The purpose and scope of digipol and AppF don't really overlap except superficially; Digipol is a tool to help Flux get to the point of having parliamentarians, not the end game.

Supporting this sort of thing (delegation to arbitrarily complex systems) with IBDD was a design goal and this kind of extension is fully supported.^3

[3]:

  • to get the outcome @bensetera mentions you'd delegate to an overlay oligarchical-direct-democracy with your chosen oligarchs as the "experts". An overlay democracy is any sort of processing layer that doesn't require permission from the members, but does require they not cast secret ballots. Edge cases around follow any of the oligarchs delegation are left as an exercise for the reader.
  • if you care about representing disagreement between the experts you'd just delegate to them equally; e.g. 10 experts each get 10% of your vote. If their vote is split 50/50 your vote is equivalent to abstention. If it is split 60/40 instead, your vote is equivalent to an 80% abstention and 20% "in favor" or "against" per the experts' resolution. Partial delegation is supported by IBDD but not by the current delegation system in sv light.

defn: SV Light: @secure-vote/sv-light-smart-contracts - complete smart contract layer, this is what's used in digipol. We ideally don't want to use this when we have parliamentarians (just increasing tech debt), but might have to, at least for a bit.

Additionally, an extension like this is sorta already supported by sv light^1 with some caveats. We could fully support it with a new BBFarm that allows for a "callback" type thing to get the vote. (@bazmatic: here's an example of a useful thing needing a new BBFarm). At the moment you'd need to, like, schedule a new smart contract to find the votes of the experts and cast that, or maybe, like, run a script to monitor the experts' addresses (or their delegates') and re-trigger that SC.

[1]: you can delegate to a smart contract or a person.