This guide explains BIP 127 proof of reserves in plain English. It covers the problem behind the BIP, why it matters and whether the proposal is part of Bitcoin today.
TL;DR
- What it is: BIP 127 proposes a standard proof-of-reserves construction using deliberately invalid Bitcoin transactions plus a versioned proof file and optional PSBT field. The current primary BIP is Draft.
- Why it matters: BIP 127 standardises a narrow control proof, not a full audit. Accurate reporting must preserve its Draft status, chosen-block semantics, privacy cost and inability to prove liabilities.
- Current position: The current primary BIP is Draft.
BIP 127 proof of reserves in simple English
BIP 127 proof of reserves: The first input uses index zero and a previous txid equal to SHA-256 of a UTF-8 message prefixed with Proof-of-Reserves:.
Simple example
A node operator is checking BIP 127 proof of reserves. Remaining inputs sign while committing to that first input. One output equals the sum of real inputs and no fee is paid, making the overall transaction invalid and unconfirmable.
Key terms in plain English
- BIP:
- Bitcoin Improvement Proposal: a document describing a proposed rule, standard or process. Its status must be checked separately.
- UTXO:
- An unspent transaction output: a piece of bitcoin that can be used as an input to a later transaction.
- PSBT:
- A portable format for passing an unsigned or partly signed Bitcoin transaction between tools and signers.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Draft status
Implementations must pin the exact BIP revision and never market experimental interoperability as a final standard. Test files and parsers can change while the proposal remains Draft.
Commitment input
The first input uses index zero and a previous txid equal to SHA-256 of a UTF-8 message prefixed with Proof-of-Reserves:. It represents no real UTXO.
Unspendable proof
Remaining inputs sign while committing to that first input. One output equals the sum of real inputs and no fee is paid, making the overall transaction invalid and unconfirmable.
Historical claim
Verification is tied to a named block and must prove each referenced output existed and was unspent there. Later spending does not erase the historical control claim.
Proof bundle
A versioned Protocol Buffers file can package multiple proof transactions, output metadata, network magic, message and block hash for complex custody estates.
PSBT extension
PSBT_IN_POR_COMMITMENT uses type 0x09 and carries the message. A signer checks the synthetic outpoint, assumes zero value and should display the commitment before signing.
How specialists test it
Developers test the proposal with made-up data on an isolated test network. They check normal cases and deliberately invalid cases. Different implementations should reach the same result before anyone relies on the proposal.
Frequently asked questions
What is the main point of BIP 127 proof of reserves?
BIP 127 proof of reserves: The first input uses index zero and a previous txid equal to SHA-256 of a UTF-8 message prefixed with Proof-of-Reserves:.
For BIP 127 proof of reserves, what should a beginner know about draft status?
Implementations must pin the exact BIP revision and never market experimental interoperability as a final standard.
For BIP 127 proof of reserves, what should a beginner know about commitment input?
The first input uses index zero and a previous txid equal to SHA-256 of a UTF-8 message prefixed with Proof-of-Reserves:.
For BIP 127 proof of reserves, what should a beginner know about unspendable proof?
Remaining inputs sign while committing to that first input. One output equals the sum of real inputs and no fee is paid, making the overall transaction invalid and unconfirmable.
Conclusion
BIP 127 standardises a narrow control proof, not a full audit. Accurate reporting must preserve its Draft status, chosen-block semantics, privacy cost and inability to prove liabilities.
Primary sources
Check the current specification status and the documentation for the exact implementation you operate before moving production funds or changing a mining node.
Join the ASIC Mining Discussion
Members can read and join the discussion
Log in to read comments from other miners. Create a free account if you would like to ask a question or share your experience.
Membership helps us protect the discussion from spam and keep answers useful.