Cuesta 3000 unidades de gas y devuelve la dirección de 20 bytes de la clave pública recuperada, o cero bytes (en Solidity, la dirección cero) ante una entrada no válida, como un v distinto de 27 o 28 o unos r y s fuera de rango. No aplica la regla low-S, así que un contrato que usa las firmas como identificadores únicos debe rechazar por sí mismo los s mayores que n/2 (EIP-2 aplicó esa regla solo a las transacciones).
Uso seguro: compara siempre el resultado con el firmante esperado y rechaza la dirección cero, comprueba un nonce o una fecha límite en los datos firmados para impedir la repetición, calcula el hash de datos con formato EIP-191 o EIP-712 en lugar de valores en bruto y usa ERC-1271 para las cuentas de contrato inteligente. ECDSA.recover y SignatureChecker de OpenZeppelin encapsulan estas comprobaciones.