<p>What you're looking for is called a <a href="https://en.wikipedia.org/wiki/Commitment_scheme" rel="nofollow noreferrer">commitment scheme</a>: a way to commit to some value while keeping it secret, with the ability to reveal it later.</p>
<p>Sharing a SHA256 hash of the address is a way of committing to it, but for an address that has been used in a transaction (of which there are currently less than <a href="https://blockchair.com/bitcoin/addresses" rel="nofollow noreferrer">50 million</a>) the recipient can easily brute-force it by checking them all. What you really want is to concatenate the address with a sufficiently long random string that you also keep secret and reveal later. That way the commitment can still be verified but no longer brute-forced.</p>
<p>Disclaimer: I am not a lawyer nor a cryptographer. Consult with professionals from both fields before you try to use cryptography in actual legal contracts.</p>

CC BY-SA 4.0
2023-07-09T07:30:47.653Z
2023-07-09T07:30:47.653Z
Vojtěch Strnad
<p>I am looking for a simple or standard way (government bureaucrat-proof) to share knowledge of a bitcoin address in a legal contract without revealing the address itself. Having to reveal the address later for verification is not a problem.</p>
<p>I was thinking to either share a SHA256 hash of the address or share the address itself without 4 or 5 characters.</p>
<p>The former way could be too complicated and the latter too insecure (an attacker could scan the blockchain to find the missing characters). If these were the only two options however, I would settle for the simpler one.</p>
<p>Is there another way to do it?</p>

<address><legal><sha256>
Verifiable way to share knowledge of bitcoin address
PurpleSand
# Verifiable way to share knowledge of bitcoin address

(Asked by: username_0 on 2023-07-08)

I am looking for a simple or standard way (government bureaucrat-proof) to share knowledge of a bitcoin address in a legal contract without revealing the address itself. Having to reveal the address later for verification is not a problem.

I was thinking to either share a SHA256 hash of the address or share the address itself without 4 or 5 characters.

The former way could be too complicated and the latter too insecure (an attacker could scan the blockchain to find the missing characters). If these were the only two options however, I would settle for the simpler one.

Is there another way to do it?

**Tags:** address, legal, sha256


---

## 1 answers

### Answer by username_1 on 2023-07-09. Score: 1

What you're looking for is called a [commitment scheme](https://en.wikipedia.org/wiki/Commitment_scheme): a way to commit to some value while keeping it secret, with the ability to reveal it later.

Sharing a SHA256 hash of the address is a way of committing to it, but for an address that has been used in a transaction (of which there are currently less than [50 million](https://blockchair.com/bitcoin/addresses)) the recipient can easily brute-force it by checking them all. What you really want is to concatenate the address with a sufficiently long random string that you also keep secret and reveal later. That way the commitment can still be verified but no longer brute-forced.

Disclaimer: I am not a lawyer nor a cryptographer. Consult with professionals from both fields before you try to use cryptography in actual legal contracts.


---

