Episode 6: How Beaver Proof Uses the Bitcoin Blockchain
Episode 6: How Beaver Proof Uses the Bitcoin BlockchainBeaver Proof is a group of apps that can prove that a file or the contents of a webpage already existed at a particular time and have not been changed since.
The group consists of three apps:
Beaver Proof App GroupBeaver File Proof*
Creates proof for files and folders*Beaver Page Proof*
Creates proof for a webpage*Beaver Proof Verifier*
Verifies existing proof*Beaver Proof does not store files or webpages in the Bitcoin blockchain. Instead, it calculates a hash from the data and connects that hash to a Bitcoin block through OpenTimestamps.
The original data remains outside the blockchain. The Bitcoin block serves only as a time reference that can be verified later.
An Example
Anna receives a quotation as a PDF:
Quotation.pdf
Price 2,500 euros
Valid until September 30, 2026She wants to be able to prove later that this exact quotation already existed today and has not been changed since.
The file’s creation date is not sufficient:
Quotation.pdf
Created on August 30, 2026This date is managed by Anna’s computer and could be changed afterward.
Anna therefore needs a time reference that she does not control herself.
Beaver File Proof provides this by using the Bitcoin blockchain.
The File Hash
Anna drops the quotation onto Beaver File Proof.
The app first calculates the hash of the file:
Quotation.pdf
↓
Calculate hash
↓
Hash of the quotationThe hash is determined by the contents of the file.
This allows Beaver Proof to determine later whether exactly the same file is still present.
As long as the quotation remains unchanged, it produces the same hash. If even a small part of the file were changed, it would produce a different hash.
Original quotation 3dcdff
Modified quotation 2deded### Why Is the Hash Alone Not Enough?
Anna could store the hash together with the current date on her computer:
Hash 3dcdff
Date August 30, 2026However, this would not be independent proof.
Anna could have entered both the hash and the date at a later time. Another person would have to trust her claim that the information was actually created on the stated date.
The hash must therefore be connected to an event that can be publicly verified and cannot later be changed by Anna.
This event is the inclusion of a Bitcoin transaction in a valid block.
The File Remains with Anna
Beaver Proof does not send the complete quotation to Bitcoin.
Only the hash is used for the proof.
The contents of the quotation cannot be reconstructed from the hash.
Other participants therefore learn neither the price, the file name, nor the contents of the document.
OpenTimestamps
Beaver Proof uses OpenTimestamps to connect the hash to the Bitcoin blockchain.
OpenTimestamps collects hashes from many different files and data sets and combines them into one common hash.
Hash of file 1
Hash of file 2
Hash of file 3
Hash of file 4
↓
One common hashThis final hash is anchored as a small piece of verification data in a Bitcoin transaction — usually in a special transaction output called OP_RETURN.
Once the transaction becomes part of a valid block, the verification data becomes part of the verifiable state of the Bitcoin blockchain.
How Are the Hashes Combined?
Two hashes are combined, and a new hash is calculated from them:
Hash 1 + Hash 2
↓
Combined hash AThe same process is applied to the next two hashes:
Hash 3 + Hash 4
↓
Combined hash BThe two new hashes are then combined as well:
Combined hash A
- combined hash B ↓ Common final hashThis structure is called a Merkle tree.
The process can continue with thousands of additional hashes. In the end, one common final hash always remains.
Many file hashes
↓
Several intermediate hashes
↓
One common final hashOpenTimestamps connects the common final hash to a Bitcoin transaction.
Once the transaction has been stored in a valid block, the final hash becomes part of the verifiable state of the Bitcoin blockchain.
Because the hash of Anna’s quotation was included in the calculation of the final hash, Anna’s file is now anchored as well.
The file itself still exists only with Anna. Bitcoin contains only the common hash of many files.
The OTS File
For the proof, Beaver File Proof creates a small file with the .ots extension.
Quotation.pdf
Quotation.pdf.otsThe OTS file contains the verification information required to trace the path from the hash of the quotation to its Bitcoin anchoring.
Hash of the quotation
↓
Intermediate hashes
↓
Common final hash
↓
Bitcoin transaction
↓
Bitcoin block### Verifying the File
Beaver Proof Verifier first calculates the hash of the submitted file.
Quotation.pdf
↓
Calculate hash
↓
Current file hashThe app compares this hash with the file hash from the OTS file.
Current file hash
↓
Compare with the hash
from the OTS fileIf both hashes match, the file is unchanged.
If they do not match, the submitted file is no longer exactly the file for which the proof was created. Verification stops.
Only if the file is unchanged does Beaver Proof Verifier proceed to verify its time anchoring in the Bitcoin blockchain.
Querying the Bitcoin Explorer
Beaver Proof Verifier now needs the data from the Bitcoin block in which the common final hash was anchored.
For this purpose, the app queries the Bitcoin explorer Blockstream.info.
The Bitcoin blockchain is stored by the network’s nodes. Its data is public but is not presented in a form that is easy for people to read.*A Bitcoin explorer is a website or service that queries this data and presents it in a readable form.*The OTS file contains the information identifying the Bitcoin block required for the proof.
OTS file
identifies the Bitcoin block
↓
Beaver Proof Verifier
queries Blockstream.info
↓
Blockstream.info returns
the block dataThis block data includes:
Block number
Block hash
Merkle root
TimestampThe Merkle root is the common hash of all transactions in the block. Because the OpenTimestamps anchoring belongs to one of these transactions, the calculation path in the OTS file leads to this Merkle root.
The Decisive Comparison
Beaver Proof Verifier now has two values:
Calculated from the OTS file
Merkle root ARetrieved from the Bitcoin explorer
Merkle root BThe app compares these two values.
Calculated Merkle root
↓
Compare with the Merkle root
of the Bitcoin block
↓
Both values matchIf they match, this proves that the file hash belongs to this Bitcoin block through the OpenTimestamps anchoring.
Only then does Beaver Proof Verifier read the block’s timestamp.
File hash matches
↓
OTS calculation path matches
↓
Block Merkle root matches
↓
Use the block timestampIf every check is successful, the app can display:
File unchanged
Bitcoin anchoring confirmed
Existed no later than
August 30, 2026 at 2:32 PMThe proof does not result merely from Blockstream.info returning a timestamp. The decisive point is that the Merkle root calculated by Beaver Proof Verifier matches the Merkle root actually stored in the Bitcoin block.
Blockstream.info provides the publicly available block data. Beaver Proof Verifier performs the decisive comparison itself.
What Does the Bitcoin Timestamp Prove?
The Bitcoin block provides the independent time reference.
If the hash of Anna’s quotation is verifiably connected to this block, it follows that:
*The quotation must already have existed no later than the time of this Bitcoin block.*The time recorded in a Bitcoin block is not an official timestamp accurate to the exact second. However, it provides a publicly verifiable time before which the file must already have existed.
The proof shows that the file existed no later than the confirmed Bitcoin time.
The Beaver Proof App Group at a Glance
Beaver File Proof
Beaver File Proof creates proof for files or complete folders.
Select file or folder
↓
Create proof package
↓
Anchor hash in time
↓
Include verification dataThe proof package keeps the data to be verified together with its associated verification information.
It can be archived or shared with another person.
Beaver Page Proof
Beaver Page Proof uses the same principle for webpages.
A webpage can change at any time:
Price is changed
Description is replaced
Offer is removed
Webpage disappearsBeaver Page Proof therefore first creates a local capture of the webpage.
Current webpage
↓
Local capture
↓
Calculate hash
↓
Bitcoin timestampIt can later be verified that this exact stored capture remained unchanged and existed no later than the confirmed Bitcoin time.
Beaver Proof Verifier
Beaver Proof Verifier checks an existing proof package.
Open proof package
↓
Verify file hash
↓
Verify OTS proof
↓
Verify Bitcoin anchoringVerification is based on the file being checked, the OTS verification information, and its connection to the Bitcoin blockchain.
The Beaver Proof website:
All apps in the App Store:
Top comments (0)