Authors: Uniswap Accountability Committee
TLDR:
- Today, Uniswap governance, via the timelock address, has the ability to declare a new v3/v2 deployment as official/canonical
- The DAO has set a precedent for approving EVM-based deployments over the past 2 years
- This proposal seeks to give the Uniswap Accountability Committee multisig agency over altering the v3-deployments.uniswap.eth & v2deployments.uniswap.eth subdomains
- This will allow the Committee to edit these text records whenever a new v3/v2 deployment is complete without having to go through an onchain vote
- To accommodate for this change, we are also proposing an alteration to the current deployment governance process (see “New Proposed Deployment Process” below) to increase efficiency
- The DAO will retain the right to assign incentive distributions from the treasury to these deployments via an onchain vote
Background:
Over the past two years, the DAO has approved numerous EVM-based deployments for Uniswap v3. There has only been one instance of a deployment proposal that did not pass the off-chain stage due to not meeting quorum: Fantom. We believe that this sets a precedent for optimistically acknowledging incoming EVM-based deployments as canonical. The same precedent can be set for v2 since there was a recent proposal to deploy v2 across all target chains with v3 in one fell swoop.
The v3-deployments.uniswap.eth & v2deployments.uniswap.eth ENS subdomains act simply as records of the v3/v2 deployments that the DAO has “blessed”. From a legal as well as technical perspective, alterations to the subdomain don’t hold any weight–it’s merely a place onchain that the DAO can recognize v3/v2 deployments across various EVM chains. This way, there’s a public place to keep track of which deployments are official. Such recognition is important because it allows users and developers to ensure that the contracts they’re interacting with are representative of the real Uniswap (i.e. the Uniswap fork that has been approved by the DAO), thereby ensuring security and consistency across each fork.
When the DAO currently approves deployments onchain, only the v3-deployments.uniswap.eth & v2deployments.uniswap.eth text records are being altered. The actual contract deployment is completed by a third party, like @GFXlabs. In fact, the deployment has to be completed prior to the onchain vote since the text record alterations requires the
- The destination chain’s network number
- Bridge sender contract address on mainnet associated with the deployment
- UniswapV3Factory/UniswapV2Factory address on the destination chain
Visit subdomains here and here
Current Deployment Process:
-
If a chain wants to deploy Uniswap, they typically connect with either the Foundation, the Accountability Committee, a delegate, or any adjacent party
-
Anyone is able to author an RFC, whether it be a delegate, the destination chain themselves, or whoever else. That RFC is posted on the forum for a minimum of seven days to allow a discussion to transpire
-
A temperature check takes place, allowing the DAO to either approve or deny the deployment of Uni v3/v2 on the given chain
-
Once passed, the v3/v2 contracts are deployed on the destination chain–the deployer collaborates with an approved bridge provider if the EVM chain is not an L2 (i.e. doesn’t already have a canonical bridge)
-
The onchain vote takes place, recognizing the deployed contracts as official on the subdomain
Our Proposal
We are proposing to enable the Uniswap Accountability Committee multisig to alter the subdomains as soon as a deployment’s RFC passes the 7-day discussion period–given there are no major points of contention during the RFC phase. The RFC should give ample time to the DAO to make a decision regarding the deployment without having to partake in a 4+ week governance ordeal. And to make sure voters have a say in this process, we are including a 5-day challenge period that will be a part of the onboarding package temperature check–this will allow voters to voice their dissenting opinion regarding a deployment.
Currently, the Uniswap DAO, more specifically the timelock address (0x1a9C8182C09F50C8318d769245beA52c32BE35BC) owns AND manages both subdomains. This proposal would make the Accountability Committee the manager of the subdomains. If at any time the DAO would like to alter the manager again or regain control, this can be done via an onchain vote since the timelock still owns the subdomains.
New Proposed Deployment Process:
Step 1
- If a chain wants to deploy Uniswap, they typically connect with either the Foundation, the Accountability Committee, a delegate, or any adjacent party
- Anyone is able to author an RFC, whether it be a delegate, the destination chain themselves, or whoever else. That RFC is posted on the forum for a minimum of seven days to allow a discussion to transpire
- The deployer can either have the contracts deployed at this point or not–if the deployment is complete, then include the contracts in the RFC
- If no issues arise in the RFC, then the deployment will be viewed as approved, and a 5-day challenge period will be rolled into the onboarding package snapshot vote
Step 2.1 (Work for the Deployer and Accountability Committee)
- If deployment hasn’t already been completed, then it must be done after the RFC phase
- As soon as contracts are deployed and verified, ensuring that the bytecode of the deployed contracts matches the bytecode of the mainnet contracts, the Accountability Committee has the authority to write the relevant text to the subdomain
- The Committee will comment on the RFC confirming that the contracts have been verified and that the subdomain has been properly updated
Step 2.2 (Work for the DAO and Accountability Committee)
- The Committee will hold a temperature check to see if there’s interest in deploying incentives on the new fork–this vote also acts as the challenge period
- If passed, an onchain vote will take place, sending the selected amount of capital to the Committee multisig for distribution
**Both Step 2.1 & 2.2 can take place concurrently
Technical Implementation:
The onchain proposal needs to include the function calls below to grant the Accountability Committee write permissions to the subdomains. The DAO will maintain ownership of the primary domain, uniswap.eth, and thus have the ability to revoke permission through a governance vote.
For Uniswap v3 Subdomain:
setOwner(
node = 0x0b9638d2c5bd4528d603562a1fa1e734fe1b88e680f448d779531e9bc2b55f12,
owner = 0x3B59C6d0034490093460787566dc5D6cE17F2f9C
)
For Uniswap v2 Subdomain:
setOwner(
node = 0x30e9fa72b4d7d40be0f8809d748497121d5f38ebf8700a7d2e303074e9ccf1a5,
owner = 0x3B59C6d0034490093460787566dc5D6cE17F2f9C
)
Timeline:
March 27 - April 3: RFC
April 3 - April 7: Temp Check
April 12 - April 19: Onchain vote
The Accountability Committee will retroactively alter the subdomain text record for any deployments that are approved between March 27 - April 19. The Committee will also add the text for deployments that did not go through the formal governance process from the Uniswap Revitalization and Growth proposal.