LlamaRisk does not have a stance on the following proposal, we offer it for the purpose of transparency and community discussion.
Summary:
Remove the Smart Wallet Checker (veCRV whitelist managed by Curve DAO) which will allow any EOA or smart contract, including Gnosis Safes, permissionless access to locking CRV and participating in Curve governance.
Abstract:
Since the inception of the Curve DAO, the Curve Voting Escrow (i.e. veCRV) contract has included a smart wallet checker that requires DAO approval for any smart contract to lock CRV and participate in governance. The check is performed when attempting to create a lock, increase the amount of an existing lock, or increase the duration of an existing lock.
The smart wallet checker can be bypassed, but there are important considerations due to the immutability of the Vote Escrow. The smart wallet checker cannot be bypassed by setting the stored address as the 0x0 address. Instead, it must be replaced by a simple contract that always returns True. A dummy smart wallet checker has been deployed at 0x9F9D3Ed278A018DB1Fc3aDe5D15A76BF5f672fdF.
Motivation:
The veCRV whitelist was imposed originally to prevent liquid derivatives of veCRV as this was considered a potential governance attack vector by circumventing the time lock requirement to participate in governance. As the DAO governance structure matured, several organizations have formed that include liquid lockers as a design feature (cvxCRV in Convex, sdCRV in StakeDAO, and yCRV in Yearn). Gating the privilege to create liquid lockers has helped Curve in its early years to ensure alignment with the constituent organizations and avoid potential malicious or otherwise undesirable acquisition of governance stake by low quality projects. An unfortunate side effect of this precaution has been that multisigs such as Gnosis Safe are also gated from locking CRV. Additionally, there can be an argument that diversity of governance stake has been artificially minimized by imposition of the whitelist and that innovations on Curve governance strategies have not been allowed to flourish to their full potential.
There has been some community discussion about the implications of the Pectra upgrade to Ethereum that may make it possible for smart contracts to circumvent the whitelist. EIP-7702 allows EOAs to set code in their account, blurring the distinction between EOA and contract. This is relevant to the smart wallet checker, which performs a check if the caller is an EOA, requiring msg.sender == tx.origin
. There have been concerns raised on social media and in community discussion that there may be potential for contracts to spoof as an EOA to bypass the check.
According to EIP-7702, the use case that the smart wallet checker employs has been considered by the EIP authors and they explicitly state that, while there may be breaking changes for other niche use cases, this use case will be unaffected. As shown below, they state that “the EIP breaks the invariant that msg.sender == tx.origin
only happens in the topmost frame of the transactions.” but that in the case of the smart wallet checker, “this invariant does not depend on the execution layer depth and, therefore, is not affected.”
Source: EIP-7702: Set Code for EOAs
There appears to be no change in the behavior of the smart wallet checker or pressing need to remove the whitelist from a technical perspective in light of the Pectra upgrade. The motivation is rather a question of increasing stakeholder diversity by allowing permissionless governance participation from multisigs and integrating protocols via smart contract.
According to the CRV supply schedule, ~2.2B of 3.03B CRV has been emitted, over 70% of the total supply. Of the emitted supply, 39% is currently locked. The proportion of CRV locked / total supply has been trending down since Q4 2024. It may be that removal of the whitelist can revitalize CRV locking from more diverse stakeholders and, since the majority of CRV has already been distributed (much of it already locked), the maturity of Curve’s existing governance structure makes it quite stable and unlikely to become a target for malicious governance takeover.
Source: https://dune.com/daletaxae1/curve
Source: crvhub.com
Source: https://dune.com/daletaxae1/curve
Specification:
The vote involves a commit and apply action to assign the “dummy” smart wallet checker authored by Swiss Stake. Both can be bundled into one vote.
VOTING_ESCROW = "0x5f3b5DfEb7B28CDbD7FAba78963EE202a494e2A2"
ACTIONS = [
(VOTING_ESCROW, "commit_smart_wallet_checker", "0x9F9D3Ed278A018DB1Fc3aDe5D15A76BF5f672fdF"),
(VOTING_ESCROW, "apply_smart_wallet_checker"),
]