Custa 3.000 unidades de gás e retorna o endereço de 20 bytes da chave pública recuperada, ou zero bytes (o endereço zero no Solidity) para entradas inválidas, como v diferente de 27 ou 28 ou r e s fora do intervalo. Ele não impõe a regra low-S, então um contrato que usa assinaturas como identificadores únicos precisa rejeitar por conta própria s acima de n/2 (a EIP-2 aplicou essa regra apenas às transações).
Uso seguro: sempre compare o resultado com o signatário esperado e rejeite o endereço zero, confira um nonce ou um prazo nos dados assinados para impedir a repetição, calcule o hash de dados EIP-191 ou EIP-712 em vez de valores brutos e use a ERC-1271 para contas de contrato inteligente. O ECDSA.recover e o SignatureChecker do OpenZeppelin encapsulam essas verificações.