Skip to content

CIP-0181? | Remove dRep Requirement for Reward Withdrawals#1159

Open
Cerkoryn wants to merge 4 commits intocardano-foundation:masterfrom
Cerkoryn:remove-drep-reward-requirement
Open

CIP-0181? | Remove dRep Requirement for Reward Withdrawals#1159
Cerkoryn wants to merge 4 commits intocardano-foundation:masterfrom
Cerkoryn:remove-drep-reward-requirement

Conversation

@Cerkoryn
Copy link
Copy Markdown
Contributor

@Cerkoryn Cerkoryn commented Mar 5, 2026

Very simple CIP here. Maybe some controversy around it, but I think it's a discussion worth having especially now that governance is bootstrapped and we are seeing some of the negative effects of the choice to have this requirement.

(rendered)

@rphair rphair added Category: Ledger Proposals belonging to the 'Ledger' category. State: Triage Applied to new PR afer editor cleanup on GitHub, pending CIP meeting introduction. labels Mar 6, 2026
@rphair
Copy link
Copy Markdown
Collaborator

rphair commented Mar 6, 2026

@lehins @WhatisRT if you can think of any reason(s) why removing this from the logic & code will not be as simple as what's described here, please post before our next meeting where this will be up for Triage: https://hackmd.io/@cip-editors/130

Copy link
Copy Markdown
Contributor

@lehins lehins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am personally in favor of the CIP and it would be very easy to implement for a new era (eg. could be included in Dijkstra)
Since all we need to do is remove a predicate check. If anything, it would be a simplification for Ledger implementation.
That being said, it is definitely not my call whether this check should or should not be removed. To put it in other words, there is no technical reason why it can't be removed, but I can't speak for any potential social and governance issues that could span from its removal.


Second, making withdrawals contingent on voting delegation creates pressure toward convenience delegation flows in wallets and custodial interfaces. When the user is blocked from withdrawing unless some governance delegation is present, interfaces are incentivized to simplify the step by preselecting, defaulting, auto-populating, or otherwise steering the user toward a delegation outcome. Even when presented as convenience, this creates avoidable pressure that can concentrate voting power and distort representative choice.

Third, the rule has already produced enough compatibility concern that the ledger implementation was narrowed to avoid breaking existing script-withdrawal patterns. Issue [#4092](https://github.com/IntersectMBO/cardano-ledger/issues/4092) in `cardano-ledger` documented the risk that the withdrawal restriction could break established "withdraw 0" staking-script patterns and potentially strand funds or disable existing application flows. PR [#4555](https://github.com/IntersectMBO/cardano-ledger/pull/4555) subsequently narrowed the rule to non-delegated key hashes. That mitigation reduced the compatibility blast radius, but it did not address the underlying policy question of whether reward withdrawal should depend on governance delegation at all.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't believe that listing here IntersectMBO/cardano-ledger#4092 as a valid concern is justified, since this check was not planned to be implemented for scripts. Note that the ticket was closed as a non-issue.

The fact that we've discussed it, does not make it a concern. There are plenty of things developers evaluate before implementing a feature, this was just one of those cases.

I'd recommend removing this section as it is not relevant to this CIP and will only confuse readers, wrongfully thinking that this was ever a concern

@WhatisRT
Copy link
Copy Markdown
Contributor

WhatisRT commented Mar 6, 2026

I've said it multiple times elsewhere that I don't believe that this restriction leads to any increase in participation & just leads to friction at the wallet level. The issue is that this was made part of the requirements of CIP-1694, and so now this is mostly a question of politics.

So while technically this CIP is a straightforward simplification, I suspect it might be quite difficult to get the buy-in from everyone. I'd be happy to be proven wrong on this.

@fallen-icarus
Copy link
Copy Markdown
Contributor

Can't it be argued that this predicate is a huge reason why some of the wallet dReps are so large (e.g. Yoroi)? If yes, I actually think the community would get behind this CIP. Yoroi actually adds UX friction to choose a different dRep than themselves. Like choosing a stake pool has a user friendly interface with great information, but choosing a dRep aside from Yoroi is: enter dRep hash. If you don't have it, go find it yourself.

TBH I think this CIP is being too polite about the wallet flow problem.

@Cerkoryn
Copy link
Copy Markdown
Contributor Author

Cerkoryn commented Mar 6, 2026

@fallen-icarus exactly. And actually if you go to choose a stake pool Yoroi will ALSO bundle a delegation to their dRep in the same Tx.

And I agree that it is probably too polite. I had to dial back some of the language to what I felt would be appropriate for a CIP 😅

In any case the intent is to remove the requirement that contributed to this problem in the first place.

@rphair rphair changed the title CIP-???? | Remove dRep Requirement for Reward Withdrawals CIP-0181? | Remove dRep Requirement for Reward Withdrawals Mar 18, 2026
Copy link
Copy Markdown
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Cerkoryn - agreed all around at the CIP meeting today (as mentioned in your OP) that this is an (atomically) "simple" proposition: already accepted as doable by Ledger representatives & as a "take it or leave it" proposition for whether or not to make such a change & at what era interval.

@gitmachtl pointed out at the meeting whether it would apply to previous protocol versions & it was confirmed that chains produced from older eras than the one implementing this CIP would naturally still require the dRep to be assigned before making withdrawals.

Please update the containing directory to CIP-0181 as well as the "rendered" link in your OP 🎉

@rphair rphair added State: Confirmed Candiate with CIP number (new PR) or update under review. and removed State: Triage Applied to new PR afer editor cleanup on GitHub, pending CIP meeting introduction. labels Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Category: Ledger Proposals belonging to the 'Ledger' category. State: Confirmed Candiate with CIP number (new PR) or update under review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants