Bitcoin Universe · Model 20

The digital signature machine

How a signature proves that the owner of a key approved something, without ever revealing the key. Sign, check, then try to cheat.

Real cryptography · demo keys only
SIGNED BYSCHEMEMESSAGE HASHSIGNATUREVERIFY WITHRESULT

Demonstration keys only. These keys are generated from public labels, so everyone can compute them. This page never asks for, and never accepts, a real private key or recovery phrase.

Sign
Scheme

Proof without revealing the key

A message is not a transaction. Signing a message proves you hold a key. Signing a Bitcoin transaction authorises moving specific coins, because what is signed commits to that transaction's inputs, outputs and amounts.

The values

The signing key and a valid seal Valid Invalid

All keys, hashes and signatures are computed with the project's secp256k1 implementation, tested against official vectors (RFC 6979 ECDSA, BIP340 Schnorr). Generic messages are hashed with SHA-256 in this demo (Bitcoin Core's message signing uses a prefix and double SHA-256); the demonstration transaction is hashed with double SHA-256 of a simplified serialization instead of a real BIP143/BIP341 sighash. Nothing leaves your browser.