Skip to main content

Keys and Signatures

In the EigenLayer ecosystem, signatures play a crucial role in ensuring the integrity and authenticity of operations. Signatures cryptographically confirm that a specific address has signed a given message (for example, a string value) with its private key.

warning

Poor key management can lead to compromized operators, network disruptions, or financial losses. Key Management Best Practices are outlined for Institutional Operators and Solo Stakers.

Operator Keys

An Operator has two types of keys:

  • A single Operator key used to authenticate to the EigenLayer core contracts.
  • Multiple AVS keys used to sign messages for AVSs.
warning

As security best practice, Operators should:

  • Not reuse their Operator key as an AVS signing key.
  • Not reuse their Ethereum key for EigenLayer operations if they are also Ethereum stakers.
  • Use a different key for every AVS.

The Operator key must be an ECDSA key and is used for actions including registering to EigenLayer, changing Operator parameters, and force undelagating a staker.

Always interact with with the EigenLayer core contracts using the eigenlayer-cli or other operator-built tools.

Do not load a Operator key into any AVS software. If authorizing any action programmatically triggered on the AVS contracts use an AVS key, not the Operator key.

For information on key management best practices, refer to Key Management Best Practices for Node Operators.

AVS Signing Keys

AVS keys are used by AVS software run by Operators to sign messages for AVSs. The required AVS key type is specified by the AVS, and is most commonly BN254.

BLS and ECDSA Signature Types

The primary signatures types used in EigenLayer are BLS12-381 (Boneh-Lynn-Shacham), BN254 (Barreto-Naehrig), and ECDSA (Elliptic Curve Digital Signature Algorithm).

FeatureBLS12-381BN254ECDSA
Signature Size48 bytes (BLS12-381 curve)32 bytes (BN254 curve)~64 bytes (secp256k1)
Key Size32 bytes32 bytes32 bytes
Signature AggregationSupports native aggregation. Single operation for multiple signaturesSupports native aggregation. Single operation for multiple signaturesNot natively aggregatable. Each signature must be verified separately
Gas Cost in EthereumHigher for single signatures, lower for aggregatedLower than BLS12-381Lower initially but increases with more signatures

Until the Pectra upgrade, BN254 remains the cheaper option. After the upgrade, the cost of verifying the more secure BLS12-381 signature will decrease, making migration to this cheaper and more secure signature type viable for developers.

The native aggregation offered by BLS, combining multiple operator signatures into one, reduces onchain storage needs, verification time, and gas costs. BLS signatures require a slightly more complex implementation that includes an aggregator entity. Given the reduction in storage, verification time, and gas costs, we recommend the of BLS signatures for production systems.

Note: As of eigenlayer-middleware v0.2.1, the ECDSAServiceManagerBase contract was not yet fully audited. Please check the most recent release as this is expected to change.