Signatures of Messages Using Bitcoin Private Keys

Bitcoin private keys exist for two different reasons, protecting your funds and proving your ownership of them, these are done through different methods like signing Bitcoin transactions and signing various messages for different reasons, these are used in applications as proving funds for collateral, airdrops, audits and others.

The processing of signing messages with Bitcoin private keys with P2PKH addresses is a fairly known one but with the introduction of segwit, with its bech32 and P2SH forms, it is unclear how to distinguish these three addresses, a new BIP was proposed by developer Christopher Gilliard intending to set a standard for messages to be signed and verified by different clients.

The signatures are produced with two different numbers known as R and S, by the process of public key cryptography, we can use mathematical algorithms to determine that it was originally produced from a certain private key without knowing the private key, a process with is known in cryptography as a Signature

The formalization comes by attaching 1 byte of header data to the 64 bytes of the R and S values in the signature, this header byte will have a value that if is between 31 and 34 indicates that this is a compressed address, if the value is between 35 and 38 inclusive then its a p2sh segwit address and if between 39 and 42 then its a bech32 address.

This BIP allows Bitcoin wallets to be inter-operable as they will use the same conventions to determine its validity, it could also support new signature formats when future addresses formats exist.

Support us and the authors of this article by donating to the following address:


Comments powered by Talkyard.