Welcome

This page features Dan’s feedback for OREC. These notes are in an early draft state and will be refined and organized better soon.

Table of Contents

Plan: Optimistic Respect Polls

It’s not a contract any more and it doesn’t have any executive power. OREC provides a potential way to transfer the control of an executive contract in the future, but it does not provide the current solution that we need. It provides much of the design for what we currently need, so i should copy paste it and change for Optimism Fractal’s current needs.

I don’t know if I agree with my previous feedback about stage and cycles. So I’m not sure if I need to change it. Tadas article for OREC was coming from a perspective of building a contract, so there’s a lot of assumptions there that I’ll need to change for this proposal

Related: Orpolls

Changes to Variables?

Variables

I suggest that we:

  1. Add an additional variable called ‘cycle start time’?
  2. Change the name of period to cycle to make it simpler
  3. Change ‘stage1_period’ and ‘stage2_period’ to ‘vote_cycle’ and ‘veto_cycle’
  4. Consider whether it’s best to have two variables for a ‘cycle end time’ and a ‘cycle start time’.

Accommodating for Vote Changes

Can someone change their vote during the veto cycle? I think they should be able to change it from yes to no if they change their mind…. But this would introduce technical challenges. There are two separate polls and Tadas’ original design of OREC doesn’t allow for no votes during the second week. Maybe it’s best to only allow ‘Abstain’ in the second week since an Abstain is like a lite version of a no. Another issue with the current design that I have in mind- if we use snapshot and allow people to vote no in both polls, then that no could be double counted. How would we resolve that?

I suppose the way to resolve it is to go moreso with Tada’s original intention but put a wider time period during our meeting for the voting cycle. For example, if all proposals needed to be submitted by 18 UTC and the voting cycle doesn’t end until 18:20 UTC, then this would allow at least 20 minutes for the community to vote ‘yes’ or ‘no’ for a proposal. This would mitigate the issue where someone can gain an unfair advantage by posting a proposal in the last minute, because it wouldn’t be possible to

If someone votes yes in the first 20 minutes and then changes their mind during the veto week, then do they have any way to express this change of mind? Currently I’m stumped about this because it seems that they wouldn’t have any way to change their mind in the votes while keeping the system technically feasible without bespoke development, but it seems that this is a feature that we would want.

If someone votes no in the first 20 minutes, then could they reiterate this vote?

Another Solution? Two Week

Maybe the solution is to have the same exact poll repeated over two weeks. This would re-orient the system a bit but i think it might work well and allow more expressive, intuitive, and fair experience. Imagine this:

Benefits of Two Week Voting Cycle

I think this two week system generally works well and naturally with our meeting schedule. It always gives the group at least two meetings (and at least 40-60 minutes) to discuss changes in a planning session. Otherwise you’d either have a lot of pressure to decide something at one meeting, a high voting threshold that’s difficult to attain, or decisions would be made outside of our meeting with only the chance to discuss it once.

Benefits of 26-52 week Respect cycle

Manual Proposal Creation

We don’t need to do any additional coding in order to make this system work. If we set the cycle time to start and end sometime between 18-18:30 UTC, then

Untitled

  1. This means that proposals could take up to 3 weeks can be approved. If we can change the design of the smart contract so that there isn’t a universal cycle for all proposals but rather each proposal goes through this 2 week cycle then it might work better. This would provide consistency, shorter 2 week proposal start-to-finish times, and seems like it would be simpler to understand.
  2. It also means that some proposals will take just over a week to approve. Which can be advantageous for quicker proposals but adds some complexity. What would be the day/time of the cycle ending? Would there be strategies that people do to try to game the system and propose at certain times? If so, what would these look like?
  3. If the OREC contract is set to change states at 18:15 or 18:25 UTC, then that could be interesting. This kind of stable time for cycles that is not dependent on when proposals are created could align with the dates of our events. If we set the OREC to a time on Monday during the event, then when would proposals need to be submitted in order to be only a week from approval?

Untitled

Voting No in the second week

Untitled

Why can’t people vote no on a proposal in the blocking stages? If they want to block a proposal, why can’t they vote no? It’s a bit strange and counterintuitive.

It seems like it might make the system more vulnerable to being gamed as well. Suppose someone puts in a proposal a minute before the end of a voting period and they have over 128 respect. It’s not a good proposal at all but there isn’t anyone to vote no in the last minute. It looks like this proposal has 100% yes votes on snapshot or whatever UI that people see, which would stay up for a whole week. This can be misleading to people looking at the poll.

Additionally, would this strategy make the proposal more likely to get approved? Yes, I think this is a flaw in the current design. A ‘no’ vote is more powerful than an abstain or a registration to block the proposal, but the system doesn’t allow no votes in the second week for some reason. A proposal requires both the minimum threshold and a 66% of total votes, and a last minute proposer could essentially skip the requirement of 66% of total votes needed by just making the proposal at the last minute. This makes it easier to approve proposals- even if people don’t want to approve the proposal and would normally vote no, they are not allowed to vote no in the second week.

It seems that disallowing ‘no’ votes in the blocking period both makes it more confusing and easier to game to approve bad proposals, but it doesn’t offer any benefits. I’m curious to know if there’s something I’m missing. I suggest to allow voting in the blocking period to improve this. That would make it simpler to explain, more intuitive, and more fair.

Untitled

This could be essentially achieved on Snapshot by including an Abstain option.

Snapshot integrations

How do you envision the two week cycle for OREC happening on snapshot? Would there be two polls for each proposal and the second poll in the second week would only have a veto option?

If there are two polls, then how would we ensure that the second poll starts right after the first? Would it just be manual and in which case it will take longer than 2 weeks? Or would it be feasible to program another veto poll to automatically start after the two weeks?

If it is one poll on snapshot, then how would the the diference between the first and second week be calculated? Ie if people can only veto in the second week, then how would we count that if the poll still allows yes votes? Snapshot does have modules/___, so would we need to make a module / recipe for this?

Could people change their votes? Could people vote no or veto again during both weeks?

I could see this system working well if it’s easy enough

Untitled

1 week

1 week

128 respect? or?

respect_period = 26 weeks