[BIP-585] Enable ComposableStablePool V6 - Long pause windows

Payload PR - BIP-585

TL;DR

  • This BIP proposes enabling a new version of the StableSwap factory with a 4-year pause window.
  • The current running stableswap factory has a 6-month pause window that has expired, so it is no longer possible to pause pools.
  • The ability to pause all our stableswaps would have allowed us to mitigate all losses in the linear pool hack from last year.
  • Our recently forged relationship with Hypernative introduces new capabilities in advanced threat detection and response.
    • In the future Hypernative technology could be granted the access to proactively pause Balancer pools in the event of a security incident.
    • This would only be possible on pools that still have a running pause window.
  • This BIP finally proposes disabling the CSPv5 factory with a shorter pause window in 8 weeks.
    • This gives time for more thought and a future BIP to abort the disable and leave both options available to pool creators.
  • This BIP grants the right for the Emergency Multisig to pause pools. Further the Governance can authorize additional pausers through a BIP and eventual payload execution by the DAO Multisig.

Background

Balancer pools traditionally have been launched with 6-month pause window. This allows for pools to be paused for up to 6 months, within within the first 6 months of deployment of the factory that they were created by. Following this, pauses are no longer possible.

Most of the mitigation around the Linear Pool Hack that occured last year involved finding some way to prevent pools from trading. If all affected pools would have allowed pausing, we could have prevented any losses.

Following these events, Balancer forged a relationship with Hypernative. The ability to pause pools for a longer time will enable future integration with Hypernative’s threat detection and response systems.

Balancer V3 pools are intended to also have long pause windows, so this BIP also represents a shift in thinking away from truly unstoppable pools towards something that in theory can be paused by a trusted and authorized party should things go really wrong.

Specifics around pause capabilities:

As described in the deployment PR ComposableStablePoolV6(CSPv6) will have:

    uint256 private constant _INITIAL_PAUSE_WINDOW_DURATION = 4 * 365 days;
    uint256 private constant _BUFFER_PERIOD_DURATION = 180 days;

The factories were deployed on or around March 26th (chain dependent) as can be observed by this TX on Mainnet which deploys CSPv6 as referenced by this PR. This means, that on mainnet:

  • Pause window starts counting on factory deployment. Feb 26th, 2024.
  • Authorized callers can call pause until Feb 26th, 2028.
  • Authorizer callers can unpause anytime the pool is paused (it’s a different permission, but it can be done).
  • If the pool is paused on Feb 26th, 2028 it’ll stay paused for 6 more months (or until unpause is called)
  • If the pool is paused on Feb 1st, 2028 and none calls unpause, it will be unpaused forever after 6 months without any governance interaction of any kind.

It should be noted that an authorized caller could unpause/repause a pool in a single TX to reset the buffer as long as the pause window has not ended.

English Specification

This PR contains many payloads that:

  • Grant standard authorizer permisisons on all chains for CSPV6
  • Suspends create of new pools with no pause window using CSPV5 around the end of June baring further governance action.

The transaction details were generated by this script with inputs and outputs in this directory

The following files can be found both linked below and in the payload PR linked above:

Filename Description of Contents
inputs.json The inputs to the script mapping functions and deployments to target addresses that can execute them.
results_address_sorted.md The resulting changes printed in a table sorted by target chain and target address. (to easily understand permisisons granted)
results_deployment_sorted.md The resulting changes printed in a table sorted by target chain and target deployment. (for verification against action ids)
function_descriptions.md A table that describes what each function that is being granted privileged access to allows.
2024-04-17_chainname.json For each change with changes, a transaction builder json named after said chain exists to apply the changes described in the tables.
chainname_CSP5_disable.json Disable new CSPV5(no pause window) pool creation
More information about the various Balancer Multisigs and their functions can be found in the multisig-ops repo

Specification

As described in the payload json, the authorizer would be called to grant the roles as described. These actions should be executed soon after the pasasge of this BIP.

The DAO Multisig is also requested to execute [chainname]_CSP5_disable.json on each chain around it’s 26th execution week of the year 2024, which:

  • Grants the LM multisig rights to disable the active CSPV5 factory.
  • Disables the CSPV5 factory
  • Revokes the DAO multisig rights granted in the first step

The change can be reviewed by the below by comparing the results_deployment_sorted.md file to the source of truth, which should match the order found in the source of truth for actionIds on the balancer-deployments.

For record, the contents of results_address_sorted.md are printed here:

deployment function role chain caller caller_address
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x22627da2e7670aed1292420d5f0a2a49a7bd5992e0aef001702aa3285b5979b3 arbitrum maxiKeepers/one_inch/settlement 0xad3b67BCA8935Cb510C8D18bD45F0b94F54A968f
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff arbitrum 20221123-pool-recovery-helper/PoolRecoveryHelper 0xb5e56CC3d2e38e53b1166175C59e921A37cDC1E2
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x22627da2e7670aed1292420d5f0a2a49a7bd5992e0aef001702aa3285b5979b3 arbitrum multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x86f2cd537c832d7823d7b51e7f52288e383427c8c41180561f0f8054bc216f56 arbitrum multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x0c055dc6cd1d6558914ef49c536f751680f8c413a3563007992801443bcca7a5 arbitrum multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230711-composable-stable-pool-v5 disable() 0x063bbaf4b25095681176c8be04d41958e40ee88e0a6fe895a8d225cda9bd64ad arbitrum multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 pause() 0x04221c483f49fe794f5ce394e0ffc086722e106b9fef863610ccfbe1a019b997 arbitrum multisigs/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20240223-composable-stable-pool-v6 disable() 0x3dd110fd101a1be6115ceb811a85535de6c9c019360c7d67c022c48a3dd685d9 arbitrum multisigs/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff arbitrum multisigs/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20240223-composable-stable-pool-v6 disableRecoveryMode() 0x8f33b1eaf9e2f2523d32b89a23d1a83e1225eb96ef489fde9b81bc44c7e207c1 arbitrum multisigs/emergency 0xf404C5a0c02397f0908A3524fc5eb84e68Bbe60D
20240223-composable-stable-pool-v6 pause() 0x4c0e8aa6e2b05a19aefb892998330bff4b68f678770e82ef361d646c908463aa avalanche multisigs/emergency 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0
20240223-composable-stable-pool-v6 disable() 0x50f3f826f5b6f34e6b9291e41967ce5c8f5cbd998ab8b3f740cf2bb02e2e6ea0 avalanche multisigs/emergency 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x2bc44d8579fe2d1f63f141dac41a22e6058aafb6bdc0e141d647d08ad50e2b0a avalanche multisigs/emergency 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0
20240223-composable-stable-pool-v6 disableRecoveryMode() 0x0462c9b84b87fb6c25d52862b1a17b86e48ee92d7d5a7136304e1195efca03d6 avalanche multisigs/emergency 0x308f8d3536261C32c97D2f85ddc357f5cCdF33F0
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0xdc4d63c40d0a7a13b082c0bfcc25b1ad5b79ab783d81da5dca1cdc51c2a64ac6 avalanche multisigs/fees 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x85fd49342760df94da4da1b8ae0954817843ed72ece3540120eb528bc152f903 avalanche multisigs/fees 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x81cdf61d73f9758e4ea06a1c95ee9fa99de9941b89ee79ee97feea474543674f avalanche multisigs/fees 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6
20230711-composable-stable-pool-v5 disable() 0x1426567817459896eea032971802f23ffedf7dbce9ba83c56000f1f9616a25ed avalanche multisigs/fees 0x326A7778DB9B741Cb2acA0DE07b9402C7685dAc6
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x2bc44d8579fe2d1f63f141dac41a22e6058aafb6bdc0e141d647d08ad50e2b0a avalanche 20221123-pool-recovery-helper/PoolRecoveryHelper 0x3b8cA519122CdD8efb272b0D3085453404B25bD0
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x6fa5acf6e6e303c2d281bf1af5f4d83642a125c5a3308cdf67e956bec276b69e base 20221123-pool-recovery-helper/PoolRecoveryHelper 0x03F3Fb107e74F2EAC9358862E91ad3c692712054
20240223-composable-stable-pool-v6 pause() 0xa5d55e5978cb5ab0a8b23eed8889931ca33b54522edde10e348f4f96d35f0b35 base multisigs/emergency 0x183C55A0dc7A7Da0f3581997e764D85Fd9E9f63a
20240223-composable-stable-pool-v6 disable() 0x0ebf042d38f8e1bb630c3010c686232d7334f90360a82eb23623fd01fbe8e656 base multisigs/emergency 0x183C55A0dc7A7Da0f3581997e764D85Fd9E9f63a
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x6fa5acf6e6e303c2d281bf1af5f4d83642a125c5a3308cdf67e956bec276b69e base multisigs/emergency 0x183C55A0dc7A7Da0f3581997e764D85Fd9E9f63a
20240223-composable-stable-pool-v6 disableRecoveryMode() 0xcfd45e344ead8485b80a5f9da66791663c8306984e9c6dc12eda2ee747cce604 base multisigs/emergency 0x183C55A0dc7A7Da0f3581997e764D85Fd9E9f63a
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x04dd8b85ae9bff95ec24f18269d23bd2d04784d5f5d8b35261545b82ed754a85 base multisigs/lm 0x65226673F3D202E0f897C862590d7e1A992B2048
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x1307ea331d8ab1feffafb967ddf20c66fd92ce496eda1de129a4608d4b40f313 base multisigs/lm 0x65226673F3D202E0f897C862590d7e1A992B2048
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0xbd408e756684e5ea83089ee33aa05ce9410b392967bffc71c11fb394026e7a09 base multisigs/lm 0x65226673F3D202E0f897C862590d7e1A992B2048
20230711-composable-stable-pool-v5 disable() 0xdaaee19ea07a42ead195d8bb23af2bef543fbc6c68646c53eac48ccce223ebd4 base multisigs/lm 0x65226673F3D202E0f897C862590d7e1A992B2048
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x33b91e3688acaca9acc4caca69aa910c3140d6956ee3bbd6d5ccd3ab6df92c97 gnosis multisigs/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0xe7872d99e0351185f0ba58a9a987df315ecf7515645b82e84625b62456dc4868 gnosis multisigs/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x55732eccb480f3fab3813ed3595584071ded9c10d3f82947f88572b5f0df5e46 gnosis multisigs/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20230711-composable-stable-pool-v5 disable() 0x3dd110fd101a1be6115ceb811a85535de6c9c019360c7d67c022c48a3dd685d9 gnosis multisigs/lm 0x14969B55a675d13a1700F71A37511bc22D90155a
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x134db6c499f76ae7f96193f69fcd7d8ee490fa0ab34832e58c870ab2d5a2c7bd gnosis 20221123-pool-recovery-helper/PoolRecoveryHelper 0xc3ccacE87f6d3A81724075ADcb5ddd85a8A1bB68
20240223-composable-stable-pool-v6 pause() 0xe4e8dda6c4932e728b19aef0812933d9c816ff8184e98194fdf8ceb34a9b3d64 gnosis multisigs/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20240223-composable-stable-pool-v6 disable() 0xf82a7b23f77e12dee3dd6da58497c97c35be0a9b9357687db117c20f78edec24 gnosis multisigs/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x134db6c499f76ae7f96193f69fcd7d8ee490fa0ab34832e58c870ab2d5a2c7bd gnosis multisigs/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20240223-composable-stable-pool-v6 disableRecoveryMode() 0xc571be1313415036a074b5a131d47f9d271f37b6d0e2d441d3f175dc0abb9456 gnosis multisigs/emergency 0xd6110A7756080a4e3BCF4e7EBBCA8E8aDFBC9962
20240223-composable-stable-pool-v6 enableRecoveryMode() 0xaaa009efc2738b643cc29ff4930552287a5151779614a313f479d6a4f55b4d84 mainnet 20221123-pool-recovery-helper/PoolRecoveryHelper 0x1b300C86980a5195bCF49bD419A068D98dC133Db
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x74bbca0eb5858285c56e762a11a2fff0427631476a3ba0c35195132e15f1fc6c mainnet cow/settlement 0x9008D19f58AAbD9eD0D60971565AA8510560ab41
20240223-composable-stable-pool-v6 pause() 0x7106e3d8f9c8398d705d56aa3dd355670b20ec766484954c9e74d61fd3aec3ad mainnet multisigs/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20240223-composable-stable-pool-v6 disable() 0xf611f8b232e4be511caea74a4b9a6dea519d09225c9cf5d0e4a4bef44e006f71 mainnet multisigs/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20240223-composable-stable-pool-v6 enableRecoveryMode() 0xaaa009efc2738b643cc29ff4930552287a5151779614a313f479d6a4f55b4d84 mainnet multisigs/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20240223-composable-stable-pool-v6 disableRecoveryMode() 0x4a19dd39fa8f4bbd7452fd4cf82679df5cf73700c2b6b88c1243653f0e85260e mainnet multisigs/emergency 0xA29F61256e948F3FB707b4b3B138C5cCb9EF9888
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x74bbca0eb5858285c56e762a11a2fff0427631476a3ba0c35195132e15f1fc6c mainnet one_inch/settlement 0xad3b67BCA8935Cb510C8D18bD45F0b94F54A968f
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x74bbca0eb5858285c56e762a11a2fff0427631476a3ba0c35195132e15f1fc6c mainnet multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0xcd61e70763e513c8c738ee449caf88b90566b2b193bb69d88856f6eb9d0d1f45 mainnet multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0xdf9e7dec263e17ae8ec6c062f6f6076b90a1bccc2b50462ee12b4d98d23846c0 mainnet multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230711-composable-stable-pool-v5 disable() 0xceeb84f98e049989237e570ba87203572b1ba663061d817739b66a9fb08a7901 mainnet multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x22627da2e7670aed1292420d5f0a2a49a7bd5992e0aef001702aa3285b5979b3 optimism multisigs/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x86f2cd537c832d7823d7b51e7f52288e383427c8c41180561f0f8054bc216f56 optimism multisigs/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x0c055dc6cd1d6558914ef49c536f751680f8c413a3563007992801443bcca7a5 optimism multisigs/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20230711-composable-stable-pool-v5 disable() 0x209075578b0c6819e5f117c0e9c4cafdfb4bac956e8ea969ff11fb444cd95b08 optimism multisigs/lm 0x09Df1626110803C7b3b07085Ef1E053494155089
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff optimism 20221123-pool-recovery-helper/PoolRecoveryHelper 0x26743984e3357eFC59f2fd6C1aFDC310335a61c9
20240223-composable-stable-pool-v6 pause() 0x04221c483f49fe794f5ce394e0ffc086722e106b9fef863610ccfbe1a019b997 optimism multisigs/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20240223-composable-stable-pool-v6 disable() 0x3dd110fd101a1be6115ceb811a85535de6c9c019360c7d67c022c48a3dd685d9 optimism multisigs/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x73c3332de64a6f7b137bea3255a221d779cc0f170ea4892ff0581faf799230ff optimism multisigs/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20240223-composable-stable-pool-v6 disableRecoveryMode() 0x8f33b1eaf9e2f2523d32b89a23d1a83e1225eb96ef489fde9b81bc44c7e207c1 optimism multisigs/emergency 0xd4c87b33afcE39F1E3F4aF1ce8fFFF7241d9128B
20240223-composable-stable-pool-v6 pause() 0x0483d53ea1eab1f6633a661730adf42ee3fa58361709e86cea2f136357ac0198 polygon multisigs/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20240223-composable-stable-pool-v6 disable() 0x34f66ef5706b2abf916d3f719040884c962d3a419b90ec8af8fb2c1f6ea4e313 polygon multisigs/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x10b5720c4e051a8e97d7b590832a4392adb9304326a7dc1db23d73117d95ee81 polygon multisigs/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20240223-composable-stable-pool-v6 disableRecoveryMode() 0xdc8bb9d1a82e326efeefddf0b599e6bc40ffb40e96faf0cef63f9c6cd600633f polygon multisigs/emergency 0x3c58668054c299bE836a0bBB028Bee3aD4724846
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x10b5720c4e051a8e97d7b590832a4392adb9304326a7dc1db23d73117d95ee81 polygon 20221123-pool-recovery-helper/PoolRecoveryHelper 0x495F696430F4A51F7fcB98FbE68a9Cb7A07fB1bA
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x2a6eaae9c85d7b4026a2dc9a49abed2506a0cfc22a0597d33af9ddf2b8d8f186 polygon one_inch/settlement 0xad3b67BCA8935Cb510C8D18bD45F0b94F54A968f
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x2a6eaae9c85d7b4026a2dc9a49abed2506a0cfc22a0597d33af9ddf2b8d8f186 polygon multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x421e910d9d2e701d0e181f997548467a67a50d9164124de8434f6f8ad348d82e polygon multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0xc58a329b76e9a2243a49522312dfe6f54cdc155e08499573ab4d7d6ffe75df5a polygon multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20230711-composable-stable-pool-v5 disable() 0x740f4332364e3e7815877d3129b935f10ce37584e973ed33b93e793000a1c263 polygon multisigs/lm 0xc38c5f97B34E175FFd35407fc91a937300E33860
20240223-composable-stable-pool-v6 pause() 0x51530e1d909caf846c8075a98e41431ffe7e18eabf84b1f3ebade86b84547d30 zkevm multisigs/emergency 0x79b131498355daa2cC740936fcb9A7dF76A86223
20240223-composable-stable-pool-v6 disable() 0x06efe7e891755c060de5033e398e2d4d9f1bc713591717209ef84b7e021bd154 zkevm multisigs/emergency 0x79b131498355daa2cC740936fcb9A7dF76A86223
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x63670b08ab971b7445722753ef5c4b1ddc64376a631cdb48e3c6eae5a5dfc951 zkevm multisigs/emergency 0x79b131498355daa2cC740936fcb9A7dF76A86223
20240223-composable-stable-pool-v6 disableRecoveryMode() 0xd12b97e317782dac10c3547fc977708cf0a2ebe3621f880b6f89236e760278ee zkevm multisigs/emergency 0x79b131498355daa2cC740936fcb9A7dF76A86223
20240223-composable-stable-pool-v6 setSwapFeePercentage(uint256) 0x6e1c8947d790e79a7f8b6b195b2ec3231b6b9bd27a74f04b192aacd8e93f3660 zkevm multisigs/feesManager 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09
20240223-composable-stable-pool-v6 startAmplificationParameterUpdate(uint256,uint256) 0x0814546dc2f9071f966a272ec2747ac2f00be36ebcd0f81f0d184512f1b52228 zkevm multisigs/feesManager 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09
20240223-composable-stable-pool-v6 stopAmplificationParameterUpdate() 0x3be35af4fe52441201647f4d6699cfd4b8b5ebc18baac708ab15d9a22797f87f zkevm multisigs/feesManager 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09
20230711-composable-stable-pool-v5 disable() 0x64a2a630490e7632c2c8136b3761d329589d65bc8e9b6bb4864d79bc930d5e3c zkevm multisigs/feesManager 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09
20230711-zkevm-composable-stable-pool-v5 disable() 0x0ebf042d38f8e1bb630c3010c686232d7334f90360a82eb23623fd01fbe8e656 zkevm multisigs/feesManager 0xB59Ab49CA8d064E645Bf2c546d9FE6d1d4147a09
20240223-composable-stable-pool-v6 enableRecoveryMode() 0x63670b08ab971b7445722753ef5c4b1ddc64376a631cdb48e3c6eae5a5dfc951 zkevm 20221123-pool-recovery-helper/PoolRecoveryHelper 0xf7D5DcE55E6D47852F054697BAB6A1B48A00ddbd

Risk Assessment

The possibility to pause pools could be used to stop balancer from functioning in the long term. Note that in the case of paused pools, users can still withdraw funds, but trading (the basic operation of the DEX) is no longer possible. The existence of these long pause windows could result in some kind of external coercion of governance, or the DAO Multisig to pause Balancer pools and revoke rights for anyone else to unpause them.

References

Balancer Deployments
BAL Addresses

2 Likes

https://snapshot.org/#/balancer.eth/proposal/0x436e1f8b83c63820c8c2fc3cb7eeb564b376e59d984e62ff442052223d3f9aaf