Greetings all,
If a DRep unexpectedly casts a vote that the ADA holder does not approve of, how much time, if any, does the ADA holder have to redelegate their ADA so that it will not support the changed vote?
And if the ADA holder redelegates to a DRep that voted in a way that is favorable to the ADA holder, does that redelegated ADA count towards the vote?
Thanks in advance for answering my question.
1 Like
Here’s what I wrote before; to indicate how & why I don’t know the answer to this
but also to try to expose the operative questions & where they might be answered:
I recall the CIP-1694 initial discussion, a long time ago, revealed that if you were delegated to a DRep who didn’t vote the way you want in the final epoch before expiry or ratification, you were stuck still supporting their position even if you changed to a different DRep within that epoch. If you changed in the previous epoch, then the new vote would be effective… i.e. the delegations are snapshotted at the beginning of each epoch.
The concern at the time (discussed in the initial pull request for CIP-1694) was that DReps might cheat the system by suddenly revealing a different position just before a vote was ended: but there was consensus that a one-epoch granularity should minimise the effects of this. All I can see in the CIP itself is that the “stake snapshot” is confirmed at each epoch boundary
here: CIP-1694#changes-to-the-stake-snapshot
However I don’t see anything preventing the DRep from changing their vote at the last minute, since ratifications are also executed only on an epoch boundary
: CIP-1694#lifecycle … but it’s not clear to me from this whether the “voting power” of each DRep is determined by the previous stake snapshot or the one at the point the action is checked for ratification
: CIP-1694#votes
So it does appear that either
- there’s a maximum one-epoch window during which DReps can change their vote without voters being able to change their DRep in response, or
- the delegator will have to notice that the sneaky vote-changing DRep has changed his vote during the final epoch before ratification, and then must redelegate within that epoch to avoid supporting that new position.
That ambiguity likely leaves you with your original question: though I hope provides more detail why you are asking & can help get further responses.
1 Like
Thanks @COSDpool!
You gave me the idea to feed CIP-1694 into Grok in order to analyze the logic.
Spoiler Alert!:
Grok determined that it is possible for a DRep to change their vote at the last minute which leaves no opportunity for the ADA holder to delegate to a different DRep.
Seems to me that a lot of damage could be done to the community (a coup d’etat) if this turns out to be true and if the exploit is perpetrated in a coordinated way. I must not be seeing all the safeguards. I guess the constitutional committee is required to ratify all governance proposals. Is that true? Is that the safeguard?
This is what I asked Grok:
Can you determine, in the case of smallest window of time, how much time the ADA holder has to change their delegation before they can no longer stop the DRep from using their ADA to support a vote which is contrary to their interests?
Also, can you determine, in the case of smallest window of time, how much time the ADA holder has to change their delegation before they can no longer use their ADA to support a vote which is in their best interests?
This is how Grok responded:
Summary
- Preventing an Unwanted Vote: In the smallest window (a one-epoch, 5-day voting period with the ratification snapshot at the end of the epoch), the ADA holder has effectively no time to redelegate their ADA to stop a DRep from using it for a vote contrary to their interests. The redelegation delay (5–10 days, effective at epoch n+2 n+2 n+2) exceeds the voting period, so the stake remains with the original DRep at the snapshot.
- Supporting a Favorable Vote: Similarly, in the smallest window, the ADA holder has effectively no time to redelegate their ADA to a DRep whose vote aligns with their interests. The redelegation cannot take effect before the ratification snapshot, preventing the stake from contributing to the favorable vote.
These conclusions assume the tightest possible voting period (one epoch) to address the “smallest window” requirement. In practice, longer voting periods (e.g., two or more epochs) would provide a window of 5–10 days for redelegation, as discussed in my previous response, but the one-epoch scenario eliminates this flexibility due to the epoch-based delegation delay.
Grok’s analyses was very long but you can read the whole thing at the following link.
https://grok.com/share/bGVnYWN5_ffc37c75-b66b-4a00-a49a-116709bf0c54
It occures to me that CIP-1694 is not the actual code.
Is there some human in the community that can point us to the open source codebase that tells us for sure whether or not it is possible for DReps to change their votes leaving no opportunity for ADA holders to change their delegation of ADA?
It does occur to me that I can use an ai to search the codebase in order to know for sure but I would also appreciate it if a human who is familiar with the codebase would chime in.
2 Likes