Glosario cripto
Delegatecall
Delegatecall es una llamada de la EVM que ejecuta el código de otro contrato con el almacenamiento del que llama; base de proxies y de muchos hackeos.
Una llamada normal (CALL) ejecuta el código en el contrato de destino, que lee y escribe en su propio almacenamiento. DELEGATECALL solo toma prestado el código del destino: lo ejecuta en el contexto del contrato que llama, con su almacenamiento, su saldo y su dirección, y conserva el msg.sender original. En la práctica, el contrato adopta temporalmente una lógica ajena como si fuera suya.
Así funcionan los contratos actualizables. Un proxy guarda los fondos y los datos, y reenvía cada llamada mediante delegatecall a un contrato de implementación que puede sustituirse por una versión nueva. Las wallets de cuenta inteligente, las bibliotecas y muchos protocolos DeFi usan el mismo recurso para compartir código y ahorrar costes de despliegue.
Esa potencia es también su peligro. Si un atacante logra que un contrato haga delegatecall a un código que él controla, puede sobrescribir el almacenamiento, cambiar el propietario o mover todos los activos. La congelación del multisig de Parity en 2017 y el robo a Bybit en 2025 tuvieron que ver con delegatecall, y los desajustes de almacenamiento entre proxy e implementación son un hallazgo clásico de auditoría.
Ejemplo
En una wallet multifirma, una transacción presentada como transferencia rutinaria es en realidad un delegatecall a un contrato malicioso que reescribe la dirección de implementación y da el control al atacante.
