[DIP-15] Batch Operations Smart Contract Upgrade

Proposal summary

The “Batch Operations” Smart Contracts update for the ssv.network (“Batch Proposal”) proposal seeks to enhance cluster operations and management by enabling cluster owners to onboard, remove and exit validators in bulk through bulk capabilities.

Motivation

Introducing bulk capabilities to the ssv.network aims to streamline operations by reducing the time and effort required for managing clusters and validators, along with significantly cutting down transaction costs, thereby enhancing the usability, efficiency, and overall user experience. Furthermore, this update will lay the groundwork for accelerated network scaling, facilitating quicker growth.

Proposal particulars

This proposal aims to establish the following:

  1. Smart contract designation;
  2. Function updates;

Smart contract designation

The improvement will become active once the ssv.network DAO Multi-Sig Committee executes updates to the ssvNetwork (0xDD9BC35aE942eF0cFa76930954a156B3fF30a4E1) and SSVClusters module smart contract, upgrading them to v1.1.0.

ssvNetwork (0xDD9BC35aE942eF0cFa76930954a156B3fF30a4E1) – The ssvNetwork smart contract represents a gateway contract to the ssv.network. It allows users to call functions of the smart contract and it allows users to interact with the ssv.network through a wallet address. The smart contract also contains the data on the state of the ssv.network. This contract points to the most updated ssv.network smart contracts, which is how it can be upgraded further.

SSVClusters module is a stateless contract that provides the logic needed for operating validators and clusters. It is used by the SSVNetwork contract to forward all the cluster-related calls to it.

Function updates

These updates will introduce the following new functions:

  • bulkRegistervalidator() - Enable the bulk registration of multiple validators to a cluster.
  • bulkRemoveValidator() - Enable the bulk removal of multiple validators from a cluster.
  • bulkExitValidator() - Enable the functionality for bulk exiting of multiple validators.

Smart contracts v1.1.0 audit reports conducted by Quanstamp can be reviewed here.

3 Likes

Good audit. Useful feature to add to the contact.

2 Likes

The introduction of Batch functionalities for cluster management( Add/removing/Editing of multiple validators to a cluster at once ) seems like a significant step forward in terms of efficiency

One aspect I’d like to understand better is the potential impact on security with these Batch operations. Are there any additional safeguards or considerations in place to prevent accidental or malicious Batch actions?

2 Likes

:vertical_traffic_light:Voting is now open: https://snapshot.org/#/mainnet.ssvnetwork.eth/proposal/0xc3a85c5e6968139929793a6f47a91bc86f49277cc41c7bae61afa0df412259b0

1 Like

Batch operations definitely would be a nice feature. I’m curious why no one has voted on it yet (other than the 1 vote from the proposal creator).

What happens if this doesn’t get enough votes by the end of the voting period? Does it just get re-submitted?

My only hesitancy on this is

  • any potential uncaught security risks introduced by the contract changes that quantstamp may have missed
  • What happens for current main net validators and/or operators, will they need to re-register anything that will cause gas usage? Seems like this is not a hard fork so that won’t be necessary, correct?
1 Like

The vote was successful and reached the required quorum. The execution of the proposal is now in full swing.

2 Likes

Hello @TableStakes, thank you very much.

You’ve raised good points. As for the first one, the DAO is looking into better ways to ensure continuous audits.

As for your second question, and to the best of my knowledge, this doesn’t require any action and only offers additional batch functionality for entities who need to register a larger batch of validators in the future. In fact, this will reduce the costs significantly and simplify the backend interactions with our smart contracts.

Appreciate your feedback.

Thank you.

2 Likes