Crypto glossary

ECDSA nonce reuse

Definition

ECDSA nonce reuse is a cryptographic flaw in which two signatures made with the same secret random number let anyone calculate the private key behind them.

Every ECDSA signature, the scheme used by Bitcoin and Ethereum accounts, requires a fresh secret value called a nonce, usually written k. If the same k signs two different messages with the same key, simple algebra on the two public signatures reveals k and then the private key. Even a nonce that is only partly predictable or biased can leak the key through statistical attacks across many signatures.

This is not theoretical. Sony's PlayStation 3 signing key was extracted in 2010 because it used a constant nonce, and in 2013 a flaw in Android's random number generator caused Bitcoin wallets on the platform to reuse nonces, letting attackers sweep affected addresses. Researchers scanning the blockchain still find and empty keys exposed by repeated nonces from faulty software or hardware.

Modern wallets avoid the problem with deterministic nonces derived from the key and the message, standardised in RFC 6979, or by switching to signature schemes and libraries designed to be safe by default. Reusing an address does not by itself cause nonce reuse; the danger lies in poor randomness or custom signing code.

Example

A homemade signing script with a broken random generator signs two Bitcoin transactions from the same address with an identical k value; a bot spots the repeated value on-chain and drains the address within minutes.

Related terms

Latest articles on ECDSA nonce reuse