In this track: Cryptography with intuition
advanced · 4 MIN READ

Malleability and signature normalization

Different signature encodings can relate to the same authorization.

LET’S PICTURE IT

Two differently formatted stamps can still refer to the same document and signer.

SEE IT FOR YOURSELF
From a public address to a verified signatureStep 1 / 4
From a public address to a verified signaturePublic address0x0000…0001Share to receiveAnother personCan read the addressCannot sign for youPublic identifier ≠ secret authorizationLocal signerPrivate key stays hereSign the chosen requestSigned requestMessage + signatureSecret key not includedThe moving packet represents a signature, not a keySignatureCheck the exact messageCheck the signing contextVerificationAuthorization checkedIntent still mattersValidity and safety are different questionsWallet interfaceReads public dataRequests authorizationNetwork stateBalances and recordsIndependent verificationNo wallet is connected in this local illustration

An address is public receiving information. It is not the private key that authorizes actions.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

Recognize the ECDSA issue

ECDSA has related signature representations unless canonicalization rules restrict them. A verifier must follow the required s-value and recovery conventions.

Separate transaction and recovery rules

Ethereum transaction validity introduced low-s restrictions through EIP-2. The ecrecover precompile’s acceptance rules are not identical to those transaction restrictions.

Do not use raw signature bytes as the only replay key

If an authorization can have alternative accepted representations, consuming only the exact byte string can miss equivalent signatures. Bind replay control to the intended message and protocol state.

Use maintained validation code

Normalization, compact formats and invalid recovery handling are easy to mishandle. Verify the requirements of the actual signature scheme and application.

Inspect the distinction

Replay key candidate: raw signature bytes alone → insufficient in some designs
Better authorization model: domain + signed action + nonce consumption

These are local teaching values, not a signature request or a live-chain lookup.

TURN UNDERSTANDING INTO PRACTICEOpen the Keccak-256 →
QUICK CHECK · NO PRESSURE

Are transaction low-s rules automatically identical to ecrecover acceptance rules?

Your progress stays in this browser.
Keep exploring the original referenceEthereum Improvement Proposals ↗

Original explanations by EtherTools. Examples are educational and source-linked; this site is independent of the Ethereum Foundation. Our approach.