sputnik-dao-contract icon indicating copy to clipboard operation
sputnik-dao-contract copied to clipboard

Proposal Deadline introduced

Open zavodil opened this issue 3 years ago • 4 comments

Please review how we can introduce time-based voting by setting deadline parameter for proposals. It means that proposal will be finalised after the deadline even without a majority vote. It may me useful for a really large DAOs. I don't know Sputnik DAO structure in details so may be my implementation is naive.

zavodil avatar Feb 04 '22 23:02 zavodil

@zavodil will need to review more in depth, but I believe this is actually duplicate logic. Maybe @constantindogaru has more insights, but the DAO policy configures a proposal_period that proposals utilize a check against.

See: https://github.com/near-daos/sputnik-dao-contract/blob/main/sputnikdao2/src/policy.rs#L156 and: https://github.com/near-daos/sputnik-dao-contract/blob/main/sputnikdao2/src/policy.rs#L397

I think a better approach would be to extend the use of this proposal_period, with constraints configured by DAO.

TrevorJTClarke avatar Feb 06 '22 00:02 TrevorJTClarke

@zavodil will need to review more in depth, but I believe this is actually duplicate logic. Maybe @constantindogaru has more insights, but the DAO policy configures a proposal_period that proposals utilize a check against.

See: https://github.com/near-daos/sputnik-dao-contract/blob/main/sputnikdao2/src/policy.rs#L156 and: https://github.com/near-daos/sputnik-dao-contract/blob/main/sputnikdao2/src/policy.rs#L397

I think a better approach would be to extend the use of this proposal_period, with constraints configured by DAO.

Yep I saw it, but current implementation of proposal_period is leading to proposal expiration only, my intension was to resolve proposal instead, that's why I introduced a new optional variable.

zavodil avatar Feb 06 '22 14:02 zavodil

Hey @zavodil, I understand your point, but this shouldn't be needed. If the DAO is set up correctly, only certain members can vote on proposals and they should reach consensus on all of them. If the proposal hits the deadline and no consensus has been reached, it means there was a problem with the proposal itself or the DAO configuration (maybe more/less members should have the right to vote).

Now, assuming that we implement what you're suggesting, please review the following scenario:

  • you have a group of 3 members that can vote on proposals => you need 2 approvals for a proposal to pass
  • let's assume that the proposal deadline is set to 1 week
  • let's assume that 2 members have taken a holiday for 2 weeks and they are away from their phone/laptop
  • if we implement what you're saying, the 3rd member can take advantage of this and create the proposal while the other members are on holiday. He will create the proposal, wait for one week, approve it, the deadline will be reached and the proposal will be passed automatically.
  • the other 2 members will return from holiday in one week and realise that the funds from the DAO have been transferred without their permission.

The idea is that you need consensus for a proposal to pass, you cannot rely on the deadline.

ctindogaru avatar Feb 08 '22 10:02 ctindogaru

@ctindogaru Thank you for your feedback! Current DAO design is great for compact DAO (as you said in your example: 2-3 persons). My intention is to empower a really large DAO with hundreds of participants/councils, in which case it will be completely impossible to hit a quorum and deadline proposals might come into play. Parameter min_deadline_period could be set in a DAO config, it could be longer than 3 days for DAO with huge budgets.

zavodil avatar Feb 08 '22 11:02 zavodil