Good day. Can you help me out regarding my question.

The company (legal entity) at the moment want to confirm the fact, tha certain BTC core wallet actually belongs to her. Though, i would like to clarify: can we refer to our Private key as to prove of ownership on wallet and on it's funds?

  • A private key should never be published to anybody else but its owner. – watchme Mar 30 '18 at 13:57
  • Yes, we will not point it, just refer to it – Денис Кастин Mar 30 '18 at 14:13

The second option proposed by Willtech above would work well. Simply sign a message using that private key and that will prove that you are in possession of the private key corresponding to that public key. As mentioned in the answer it doesn't ensure uniqueness of the actual key, but it does prove that at the time of signing the message that you are in control of the key.


a) It should be a simple matter to show that the company owns all private data stored on their computers.

b) Depending on the wallet functionality, you could sign a verifiable message for each address associated with a utxo thereby validating that you have the private key for each address and could spend the utxo but, this doesn't prove that somebody else doesn't also have the private key stored.


Considering your user handle there might be nuances to your countries laws (i'm assuming non US). Even then there might be gaping holes in the laws that wouldn't cover this.

Answer from a legal perspective: No idea. Without a ton more information and legal expertise no one can reasonably answer this.

From a technical perspective: The blockchain doesn't recognize "ownership". Either the transaction to move the crypto currency / token has a valid key and is a valid transaction, or it is not. It's a binary assessment.

If authority is granted and recognized solely by the ability to access the funds, then the person with the correct private key is the "owner".

I suspect this is more about law than it is technical.

(This is speculation not legal advice) If it does come down to: "We have the private key." Simply move the bitcoin to another wallet. If she owned the wallet, she would have had the private key. You can say "she moved it. It's her wallet. Why would we have access to her wallet?"


The basis of the math to demonstrate ownership of a private key is found at https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06.asciidoc#ecdsa-math.

For demonstrative purposes, let's assume the wallet has one of the absolute worst hexadecimal encoded private keys possible 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff

Associated WIF encoded compressed private key:

% echo 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff | sed 's/$/01/' | bx base58check-encode -v 128


Associated compressed public address:

% echo 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff | bx ec-to-public | bx ec-to-address -v 0


Given the data above with the private key remaining tightly controlled (private), the following two commands can without out any doubt provide solid proof that the wallet holder truly has custodianship of the private keys without the need to share the companion public key to the private key:

1) https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-message-sign

2) https://github.com/libbitcoin/libbitcoin-explorer/wiki/bx-message-validate

The challenger can create a random phrase to challenge the person claiming to have custodianship of the the private key above to the associated public address above.

Let's assume the challenge phrase is "Craig Wright is not the real Satoshi!". That phrase is sneaker netted over to the person with the private key and performs this operation.

% echo -n "Craig Wright is not the real Satoshi!" | bx message-sign KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp


The signature result of the operation above is then sneaker netted back over to the challenger. The challenger in turn take the public address associated with the private key and performs this operation to confirm private key custodianship.

% echo -n "Craig Wright is not the real Satoshi!" | bx message-validate 1PbStXjfDNBU6FZA2iSeisVWwCFN9GK1eQ H4k3D8jR4efMsAjCs9K/Pt8GB64h83Z07jkV4mERvNUZaYKG2ggWGmfoiJJl1ELh/8j6RikruaVeLWmHdQgeZfU=

The signature is valid.

If either the wrong private key signed signed the message or the message signed is not the same, a message like the following will be conveyed from the last operation:

The signature is not valid.

Trezor and Ledger hardware wallets provide the functionality above.

This is technology is critical for auditing and preventing any centralized custodian from re-hypothecating or fractional reserving resources like stock or currency that are in digital form.

Funds for specified addresses that are vaulted should be audit-able by the true owners of those digital resources with challenge-answer turn around times under a few days. This is critical for confirming Full Reserve Encumbered Custodianship capabilities. We will see is Bakkt provides such an auditing service.


In case you both have the private key any of you can transfer btc inside that wallet so to prove them your owenership you can just sign all utxos and transfer those btc to some safe account whose private key is kown only to you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.