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.