Update Uni v3/v2 Deployment Process (March 2024)

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.

4 Likes

It’s worth highlighting that for the next few deployments, on chain votes may not include direct fund transfers as there may be enough funds already in the accountability wallet given the recent price appreciation of the $UNI tokens.

3 Likes

The snapshot is live to move forward with this amended governance process. The only edit to this proposal is the addition of a challenge period, allowing delegates to vote against a deployment during the onboarding package temp check, as suggested by @MattOnChain.

The Sei snapshot demonstrates how this will be implemented.

Voting will end on Feb 16 @ 2pm ET.

1 Like

The below response reflects the views of L2BEAT’s governance team, composed of @kaereste and @Sinkas, and it’s based on the combined research, fact-checking, and ideation of the two.

We’ve participated in a number of votes to recognize deployments as canonical in the past and we’ve found that they typically do not raise any concerns. Streamlining that process and reducing the friction created both for the deployments but also for delegates by the governance process makes sense.

As long as delegates can still vote on whether or not a deployment should also receive an onboarding package (similar to the Sei vote), we believe the updated deployment process makes sense.

As a result, we’ll be voting in favor of the proposal.

Similar to StableLab’s post on their Delegate Platform thread, we are supportive of many of the proposal changes. Recognizing that this proposal will likely pass, we did want to share our reasoning on voting to not update the process as currently proposed:

  1. Proposal Step 2.2 - We believe that the affected L2 or mainnet or 3rd party representative should be the entity who is responsible for sponsoring the Temp Check, not the Accountability Committee. We believe that (i) the entity that is seeking to benefit from the proposal should be proposing and appropriately managing discussions around potential incentives, and (ii) if the Committee is the one proposing/sponsoring the Temp Check, we believe this could potentially raise a conflict and/or impact their ability to ensure unbiased accountability of that which is proposed.
  2. Roles - As delegates, we recognize the importance of creating efficiencies in the governance process. We certainly understand that governance can be time consuming. It is, however, an inherent and important principle of DAOs and decision-making processes. As a delegate, when we are asked to devolve that responsibility to another entity to make affirmative decisions within a governance process, we aim to do this with thoughtfulness. As proposed, at the RFC stage it might still be unclear the total package that the DAO would ideally need to have in mind when “optimistically” granting approval to a deployment proposal – especially as it relates to any incentives that might be aligned with the proposal, as those incentives might only be identified at a further Temp Check stage. Efficiency is important, but so is ensuring the decisions on deployments and incentives are properly transparent, aligned, and provide an affirmative process for delegates to make an informed decision with the totality of discussion and information at our disposal.

For these reasons, although supportive of many of the provisions within the proposal, we have decided to vote against.

1 Like

The following reflects the views of L2BEAT’s governance team, composed of @kaereste and @Sinkas, and it’s based on the combined research, fact-checking, and ideation of the two.

We’ll be voting in favor of the proposal during the on-chain vote for the reasons outlined in our comment above which we made during the temp-check phase.