<blockquote>
<p>How can I verify that an arbitrary transaction contains a
human-readable signature?</p>
</blockquote>
<p>There is no such thing as &quot;human-readable signature&quot;. The signature is just a very big number. Or we can treat it as a pair of very big numbers. Usually we encode it in hex, so it looks like 3044022007ae5e36b79303f992e153798061458b435d34285c5fddc20655451ac71b49f6022079421d162cad51db0daa0a934cbf5261d4b53f185604e9790094a49145f3812f01</p>
<blockquote>
<p>Which information of the transaction data should I use to obtain a
human readable form of the transaction signature?</p>
</blockquote>
<p>Input scripts</p>
<blockquote>
<p>Which online resources could be used to verify a signature?</p>
</blockquote>
<p>Google for &quot;ecdsa verify signature online&quot;. But I am not sure that these resources are suitable to verify bitcoin signatures.</p>

CC BY-SA 4.0
2021-05-08T16:41:38.350Z
2021-05-08T16:41:38.350Z
amaclin
<p>The question was based on an invalid assumption. I incorrectly thought/assumed that it was possible to include a public message in a bitcoin transaction. The accepted answer to <a href="https://bitcoin.stackexchange.com/questions/19893/how-to-send-bitcoin-with-a-message-attached">this question</a> indicates that it is possible to include a message in a transaction, but that those messages are private (between sender and recipient).</p>
<p>Instead, from <a href="https://www.youtube.com/watch?v=LpAfuB7aZTg&amp;t=276s" rel="nofollow noreferrer">sources like this</a> it seems possible to prove one is the owner of a wallet without having to do a transaction.  I initially was not in favor of entering ones private key in someone else's website, but that is not necessary as one can download the source code of the website that can be used to generate such proofs <a href="https://github.com/weex/bitcoin-signature-tool" rel="nofollow noreferrer">here</a>. So to answer the XY-problem of the question:</p>
<ol>
<li>Being <code>A</code> could download that code, or got to: <a href="https://reinproject.org/bitcoin-signature-tool/#sign" rel="nofollow noreferrer">https://reinproject.org/bitcoin-signature-tool/#sign</a></li>
<li>Fill in its private key in <code>Private Key</code>.</li>
<li>Fill in its own Bitcoin wallet address.</li>
<li>Fill in the <code>ThisIsUnexpected</code> signature in the <code>Message</code> field.</li>
<li>Click <code>Sign Message</code></li>
<li>Share that <code>Signed Message</code> with me.</li>
<li>Then I could download the code of that website or go <a href="https://reinproject.org/bitcoin-signature-tool/#verify" rel="nofollow noreferrer">https://reinproject.org/bitcoin-signature-tool/#verify</a></li>
<li>I could copy that <code>Signed Message</code> and click verify/see if the code/website says the <code>Signed Message</code> is verified.</li>
</ol>
<p>This allows being <code>A</code> to prove ownership of a wallet (without for example paying money to scammers that ask it to prove ownership to get the minimal transaction  amount, and without losing transaction costs.</p>

CC BY-SA 4.0
2021-05-08T17:47:47.123Z
2021-05-08T17:47:47.123Z
a.t.
<h2>Context</h2>
<p>I would like to verify being <code>A</code> has access to a wallet and hence would like to ask them to pay a minimum amount to a particular wallet address owned <em>by someone other than me</em>, e.g. <code>1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</code>, with a signature <code>ThisIsUnexpected</code> that I gave to the being <code>A</code>.</p>
<p>The basic concept I believe is quite simple, if being <code>A</code> agrees, they share with me their bitcoin wallet address:<code>being_A_bitcoin_wallet_address</code>. Next, I would share the expected signature, and selected recipient address (e.g. <code>1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</code>) with being <code>A</code>. Being <code>A</code> then pays a minimal amount of bitcoin to <code>1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</code>. After the transaction is completed, I look at the transaction history of the received donations to <code>1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</code> and find the transaction made by <code>being_A_bitcoin_wallet_address</code>. Next, I look at the signature of that particular transaction and verify it reads: <code>ThisIsUnexpected</code>. If the transaction indeed has that signature I <em>have a high certainty</em> being <code>A</code> has access to <code>being_A_bitcoin_wallet_address</code> and I can verify their amount of funds.</p>
<h2>Challenge</h2>
<p>Though the idea may be relatively simple, I am experiencing some challenges in the execution.</p>
<p>To test the verification procedure, I thought I would look up the signatures of past transactions to that address. Hence I went to: <a href="https://www.blockchain.com/btc/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" rel="nofollow noreferrer">https://www.blockchain.com/btc/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa</a> and looked at the list of transactions. At the moment of writing, <a href="https://www.blockchain.com/btc/tx/8dc29062622f797e9853c41e85f68656342442848aa132f3450a090edc9e90e9" rel="nofollow noreferrer">this</a> is the most recent transaction, so I thought I could perhaps take the <code>Sigscript</code> of the transaction (with index 1) and put it into <a href="https://reinproject.org/bitcoin-signature-tool/" rel="nofollow noreferrer">this signature verification tool</a> to get a human-readable signature. However that tool does not seem to provide a human-readable signature, nor do I know whether the arbitrary transaction I selected contains a &quot;Thank you Satoshi&quot;-like signature.</p>
<h2>Question</h2>
<p>How could I practically verify the signature of a bitcoin transaction (if it has one)?</p>
<h2>Subquestions</h2>
<p>I think this question could be segmented in the following sub-questions:</p>
<ul>
<li>How can I verify that an arbitrary transaction contains a human-readable signature?</li>
<li>Which information of the transaction data should I use to obtain a human readable form of the transaction signature?</li>
<li>Which online resources could be used to verify a signature?</li>
<li>Is there a python script that provides a function: <code>being_has_access_to_wallet(claimed_wallet_access_address, recipient_wallet_address,human_readable_signature, amount=0.0001)</code> that returns <code>True</code> or <code>False</code> using something like a block explorer?</li>
</ul>

CC BY-SA 4.0
2021-05-08T17:24:49.940Z
I am not sure what exactly you mean with the ThisIsUnexpected bit but the fact that he can send coins from claimed_wallet_access_address to recipient_wallet_address proves that he owns the address.
Mike D
<signature><proof-of-solvency>
How to prove wallet ownership?
a.t.
# How to prove wallet ownership?

(Asked by: username_0 on 2021-05-08)

## Context

I would like to verify being `A` has access to a wallet and hence would like to ask them to pay a minimum amount to a particular wallet address owned *by someone other than me*, e.g. `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa`, with a signature `ThisIsUnexpected` that I gave to the being `A`.

The basic concept I believe is quite simple, if being `A` agrees, they share with me their bitcoin wallet address:`being_A_bitcoin_wallet_address`. Next, I would share the expected signature, and selected recipient address (e.g. `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa`) with being `A`. Being `A` then pays a minimal amount of bitcoin to `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa`. After the transaction is completed, I look at the transaction history of the received donations to `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa` and find the transaction made by `being_A_bitcoin_wallet_address`. Next, I look at the signature of that particular transaction and verify it reads: `ThisIsUnexpected`. If the transaction indeed has that signature I *have a high certainty* being `A` has access to `being_A_bitcoin_wallet_address` and I can verify their amount of funds.

## Challenge

Though the idea may be relatively simple, I am experiencing some challenges in the execution.

To test the verification procedure, I thought I would look up the signatures of past transactions to that address. Hence I went to: <https://www.blockchain.com/btc/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa> and looked at the list of transactions. At the moment of writing, [this](https://www.blockchain.com/btc/tx/8dc29062622f797e9853c41e85f68656342442848aa132f3450a090edc9e90e9) is the most recent transaction, so I thought I could perhaps take the `Sigscript` of the transaction (with index 1) and put it into [this signature verification tool](https://reinproject.org/bitcoin-signature-tool/) to get a human-readable signature. However that tool does not seem to provide a human-readable signature, nor do I know whether the arbitrary transaction I selected contains a "Thank you Satoshi"-like signature.

## Question

How could I practically verify the signature of a bitcoin transaction (if it has one)?

## Subquestions

I think this question could be segmented in the following sub-questions:

* How can I verify that an arbitrary transaction contains a human-readable signature?
* Which information of the transaction data should I use to obtain a human readable form of the transaction signature?
* Which online resources could be used to verify a signature?
* Is there a python script that provides a function: `being_has_access_to_wallet(claimed_wallet_access_address, recipient_wallet_address,human_readable_signature, amount=0.0001)` that returns `True` or `False` using something like a block explorer?

**Tags:** signature, proof-of-solvency

> **Comments:**
> **username_1**: I am not sure what exactly you mean with the ThisIsUnexpected bit but the fact that he can send coins from claimed_wallet_access_address to recipient_wallet_address proves that he owns the address.  

---

## 2 answers

### Answer by username_2 on 2021-05-08. Score: 1 | Accepted answer

> How can I verify that an arbitrary transaction contains a
> human-readable signature?

There is no such thing as "human-readable signature". The signature is just a very big number. Or we can treat it as a pair of very big numbers. Usually we encode it in hex, so it looks like 3044022007ae5e36b79303f992e153798061458b435d34285c5fddc20655451ac71b49f6022079421d162cad51db0daa0a934cbf5261d4b53f185604e9790094a49145f3812f01

> Which information of the transaction data should I use to obtain a
> human readable form of the transaction signature?

Input scripts

> Which online resources could be used to verify a signature?

Google for "ecdsa verify signature online". But I am not sure that these resources are suitable to verify bitcoin signatures.


---

### Answer by username_0 on 2021-05-08. Score: 0

The question was based on an invalid assumption. I incorrectly thought/assumed that it was possible to include a public message in a bitcoin transaction. The accepted answer to [this question](https://bitcoin.stackexchange.com/questions/19893/how-to-send-bitcoin-with-a-message-attached) indicates that it is possible to include a message in a transaction, but that those messages are private (between sender and recipient).

Instead, from [sources like this](https://www.youtube.com/watch?v=LpAfuB7aZTg&t=276s) it seems possible to prove one is the owner of a wallet without having to do a transaction. I initially was not in favor of entering ones private key in someone else's website, but that is not necessary as one can download the source code of the website that can be used to generate such proofs [here](https://github.com/weex/bitcoin-signature-tool). So to answer the XY-problem of the question:

1. Being `A` could download that code, or got to: <https://reinproject.org/bitcoin-signature-tool/#sign>
2. Fill in its private key in `Private Key`.
3. Fill in its own Bitcoin wallet address.
4. Fill in the `ThisIsUnexpected` signature in the `Message` field.
5. Click `Sign Message`
6. Share that `Signed Message` with me.
7. Then I could download the code of that website or go <https://reinproject.org/bitcoin-signature-tool/#verify>
8. I could copy that `Signed Message` and click verify/see if the code/website says the `Signed Message` is verified.

This allows being `A` to prove ownership of a wallet (without for example paying money to scammers that ask it to prove ownership to get the minimal transaction amount, and without losing transaction costs.


---

