A digital signature does two things at once: proves that you own a private key, and binds that proof to a specific message. Anyone can verify the signature with your public key, but nobody can create it without the private key.
Elliptic curves in one paragraph
Both Bitcoin and Ethereum use the secp256k1 curve. Your private key is a random 256-bit number. Your public key is what you get when you multiply a fixed point on the curve by your private key. Multiplication on the curve is easy; going backward (dividing) is computationally infeasible. That is the trapdoor that makes the whole thing work.
ECDSA
The Elliptic Curve Digital Signature Algorithm. Signs by picking a fresh random number k, computing a point on the curve, and building a signature (r, s) from k, the message hash, and the private key. The verifier reconstructs the same point using the public key and checks the math. If k ever repeats, an attacker can extract the private key. This is why the Sony PS3 firmware got cracked in 2010: they hardcoded k.
Schnorr signatures
An older but only-recently-usable-in-practice scheme. Simpler math, cleaner security proofs, and one killer property: linear signatures. Two Schnorr signatures can be combined into one that is valid for the sum of the two public keys. This enables MuSig (multi-sig that looks like a single signature) and atomic swaps that don't leak information about the parties.
Bitcoin's Taproot upgrade
Bitcoin activated Schnorr in November 2021. Every Taproot address uses Schnorr. Multisig spends look identical to single-sig spends. Lightning channels became more private.
Ethereum keeps ECDSA
Every Ethereum tx is signed with ECDSA over secp256k1. Account abstraction opens the door to different schemes: BLS signatures (used for validator aggregation), Passkey / WebAuthn (used by Coinbase Smart Wallet), even ML-DSA (post-quantum) once it stabilizes.
What this means at the wallet
When your wallet shows "Sign message," you are producing an ECDSA signature over the hash of that message. If the message is malformed, the signature can be replayed against another dApp. That is why serious dApps use EIP-712 typed structured signatures, which include the domain (contract, chain) in the hash.
Koinlytics