ChainUnfold
A VISUAL GUIDE3 min read

What does a digital signature prove?

A valid signature connects a message to a key. It leaves several other questions unanswered.

By chainunfold Reviewed 23 September 2026Revision 1

What you’ll be able to explain

  • State what signature verification establishes and what it cannot establish.

01 / Understand

A signed instruction can still be a bad instruction

Suppose a club uses a signing key to authorize room bookings. The message says “Reserve room B for Thursday.” A verifier checks the signature using the club’s known public key and the exact message bytes.

Successful verification supports a narrow conclusion: under the scheme’s security assumptions, the signature is valid for that message and public key. It does not establish that room B is available, that Thursday is a sensible choice, or that the signer has not been tricked.

Key identity matters. If an attacker sends their own public key along with a perfectly valid signature, the math may check out while the association with the club is false. The verifier needs a trustworthy reason to use that particular public key.

A signature is bound to what was signed

Change the message after signing and verification normally fails. But the scope is exactly the data covered by the signature scheme and signing process. If the application signs only a booking number, the room and day might remain outside the signed statement.

Bitcoin adds protocol-specific rules for the data committed to by transaction signatures. The existence of a signature should not be read as “every displayed field was necessarily authorized in the way I assume.” Developers need to understand the relevant signature-hash mode and script rules.

The idea, at a glance

Sign

A signing algorithm uses secret material and a message.

Verify

Check signature, message, and expected public key.

Decide

Apply authorization, context, and business rules.

A successful verification is evidence to interpret, not a verdict about every property of the action.

02 / Explore

Four questions that belong beside verification

  1. Which key? Is it the expected key, and how was that association established?
  2. Which message? Are the displayed fields the same bytes or structured data covered by the signature?
  3. Which context? Could the signed statement be replayed in a different setting?
  4. Which authority? Do the application’s rules allow this key to make this change?

For the club, a signed string saying approve:42 is ambiguous unless both sides agree what 42 identifies. Adding context, object identity, and suitable freshness rules is an application design task. There is no universal message template that solves every replay problem.

Bitcoin uses more than one signature scheme. ECDSA appears in established spending types, while BIP 340 defines Schnorr signatures used in the Taproot family of rules. Our lesson explains the relationship between signing and verification without implementing either scheme.

A compromised key can create signatures that verify. Verification does not report whether the human intended the action, whether the device was secure, or whether the signer is trustworthy. Those are separate operational and social questions.

03 / Build

Design the statement before the signature

Write two versions of a fictional club approval:

Version A: approve
Version B: Club demo / booking 42 / room B / Thursday / revision 3

List what a verifier can distinguish in version B that was absent in A. Expected answers include the application context, the object, and the particular revision. This is a reasoning exercise, not a secure serialization standard.

Now imagine a valid signature for version B sent with a public key the club has never seen. Should the application approve the booking? Expected result: no automatic approval. It first needs an authorized key association and its other business checks. Cryptographic validity is one input to that decision.

Pause & explain

Can a stolen private key produce a signature that verifies?

Try explaining it in your own words before opening the answer.

Compare your explanation

Yes. The verification algorithm checks the signature against the message and public key. It does not know whether a legitimate human or an attacker used the private key.

Sources & scope

Primary references behind this explanation. Worked examples and diagrams are original teaching material.

  1. 01
    BIP 340 — Schnorr signatures for secp256k1 ↗

    Bitcoin Schnorr signing and verification. This does not imply all Bitcoin spends use the same signature scheme.

  2. 02
    Bitcoin developer guide — Transactions ↗

    Input references, output conditions, and change. Historical examples use P2PKH; modern script types differ.

Where this explanation stops

  • No real signature is produced. Signing scopes and verification algorithms depend on the protocol.

Keep unfolding

Private keys, public keys, and addresses What actually happens when you send bitcoin?