Zum Inhalt springen
ecdsa.com

ecrecover

Der vorkompilierte Ethereum-Contract an der Adresse 0x01 (dazu die Solidity-Funktion ecrecover), der aus einem 32-Byte-Hash und einer ECDSA-Signatur (v, r, s) auf secp256k1 die Adresse des Signierers wiederherstellt.
Auch geschrieben alsecrecoverECRECOVER precompile0x01 precompile

Ein Aufruf kostet 3.000 Gas und liefert die 20-Byte-Adresse des wiederhergestellten öffentlichen Schlüssels oder bei ungültiger Eingabe eine leere Ausgabe (in Solidity die Nulladresse), etwa wenn v weder 27 noch 28 ist oder r und s außerhalb des zulässigen Bereichs liegen. Low-S erzwingt ecrecover nicht: Ein Contract, der Signaturen als eindeutige Kennungen nutzt, muss s oberhalb von n/2 selbst ablehnen (EIP-2 hat diese Regel nur für Transaktionen eingeführt).

Sichere Nutzung: Vergleiche das Ergebnis immer mit dem erwarteten Signierer und lehne die Nulladresse ab, prüfe eine Nonce oder Frist in den signierten Daten, um Replay-Angriffe zu verhindern, hashe Daten nach EIP-191 oder EIP-712 statt roher Werte und nutze ERC-1271 für Smart-Contract-Konten. ECDSA.recover und SignatureChecker von OpenZeppelin kapseln diese Prüfungen.

Standards und Quellen

Alle Begriffe