<p>This page on the <a href="https://en.bitcoin.it/wiki/Sx/Stealth" rel="noreferrer">bitcoin wiki</a> explains the exact procedure for generating and using a stealth address. It's not very user friendly at this point in time and is considered experimental.</p>
<p>Simply:</p>
<blockquote>
<p>Receiver generates a an address and a private secret and then sends
this address to someone who he wants payment from.</p>
<p>Sender uses the address and a &quot;nonce&quot; to generate the address he/she can send funds to.</p>
<p>Sender communicates the nonce to the receiver and by using this
nonce and the secret key generated earlier he/she can unlock the address with
the funds.</p>
</blockquote>
<p>The stealth addresses are based on the <a href="http://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman" rel="noreferrer">Elliptic curve Diffie-Hellman</a> protocol and in theory this method is anonymous. As this code is relatively new however there may possibly be bugs.</p>

CC BY-SA 4.0
2021-01-17T18:17:35.387Z
So does it rely on out-of-band communication? This mentions that Monero implements it by requiring a full transaction scan to determine if transactions are to you or not, interesting: https://localmonero.co/knowledge/monero-stealth-addresses?language=en
Ciro Santilli OurBigBook.com
CC BY-SA 3.0
2014-01-16T23:37:10.677Z
2014-01-16T23:37:10.677Z
2020-06-16T11:10:03.350Z
ryan.ralph
<p>The original article in which the concept of stealth addresses is introduced is written by Peter Todd and can be found in <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-January/004020.html" rel="nofollow noreferrer">this</a> Bitcoin-development list message. The abstract of the article states:</p>

<blockquote>
  <p>A Stealth Address is a new type of Bitcoin address and related
  scriptPubKey/transaction generation scheme that allowers payees to
  publish a single, fixed, address that payors can send funds efficiently,
  privately, reliably and non-interactively. Payors do not learn what
  other payments have been made to the stealth address, and third-parties
  learn nothing at all. (both subject to an adjustable anonymity set)</p>
</blockquote>

CC BY-SA 3.0
2014-07-22T20:07:49.963Z
2017-06-23T14:40:22.873Z
2017-06-23T14:40:22.873Z
gosuto
<p>As I understand it, the "stealth address" is intended to address a very specific problem.  If you wish to solicit payments from the public, say by posting a donation address on your website, then everyone can see on the block chain that all those payments went to you, and perhaps try to track how you spend them.  </p>

<p>With a stealth address, you ask payers to generate a unique address in such a way that you (using some additional data which is attached to the transaction) can deduce the corresponding private key.  So although you publish a single "stealth address" on your website, the block chain sees all your incoming payments as going to separate addresses and has no way to correlate them.  (Of course, any individual payer knows their payment went to you, and can trace how you spend it, but they don't learn anything about other people's payments to you.)</p>

<p>But you can get the same effect another way: just give each payer a unique address.  Rather than posting a single public donation address on your website, have a button that generates a new unique address and saves the private key, or selects the next address from a long list of pre-generated addresses (whose private keys you hold somewhere safe).  Just as before, the payments all go to separate addresses and there is no way to correlate them, nor for one payer to see that other payments went to you.</p>

<p>So the only difference with stealth addresses is essentially to move the chore of producing a unique address from the server to the client.  Indeed, in some ways stealth addresses may be worse, since very few people use them, and if you are known to be one of them, it will be easier to connect stealth transactions with you.</p>

<p>It doesn't provide "100% anonymity".  The fundamental anonymity weakness of Bitcoin remains - that everyone can follow the chain of payments, and if you know something about one transaction or the parties to it, you can deduce something about where those coins came from or where they went.</p>

CC BY-SA 3.0
2014-07-22T23:21:49.847Z
This is the most understandable answer given thus far.
almel
CC BY-SA 3.0
2016-03-03T18:26:33.493Z
this is useful for businesses that want to print and and post an address e.g. a coffee shop or the like
ekkis
CC BY-SA 4.0
2019-02-12T10:08:13.897Z
@Nate Eldredge , When you say: _"if you are known to be one of them, it will be easier to connect stealth transactions with you."_ Do you mean that in a Bitcoin explorer website such as (www.blockchain.com/explorer) or (https://blockexplorer.com) we can detect which transaction is **"stealth transaction"** ? In other words, are stealth transactions detectable? Thank you
Questioner
CC BY-SA 4.0
2019-02-12T14:49:34.940Z
@sas: Well, as mentioned, some other data is needed.  See https://gist.github.com/ryanxcharles/1c0f95d0892b4a92d70a.  One approach is to put the data in an OP_RETURN output.  Such outputs can be used for various things besides stealth, but normal transactions don't have them, so seeing one could at least make you suspect that this is a stealth transaction.  According to the document, there is an alternative protocol where the extra data was a public key from a previous transaction, in which case no OP_RETURN is needed.  I don't know which protocol was more common.
Nate Eldredge
CC BY-SA 3.0
2014-07-22T19:48:51.277Z
2014-07-22T19:48:51.277Z
Nate Eldredge
<p>Stealth addresses are mentioned in the context of privacy of bitcoin transactions. What are they and how would they work?</p>

<p>Can they provide 100% anonymity?</p>

<address><privacy>
What is a stealth address?
Emre K.
# What is a stealth address?

(Asked by: username_0 on 2014-01-16)

Stealth addresses are mentioned in the context of privacy of bitcoin transactions. What are they and how would they work?

Can they provide 100% anonymity?

**Tags:** address, privacy


---

## 3 answers

### Answer by username_4 on 2014-07-22. Score: 43 | Accepted answer

As I understand it, the "stealth address" is intended to address a very specific problem. If you wish to solicit payments from the public, say by posting a donation address on your website, then everyone can see on the block chain that all those payments went to you, and perhaps try to track how you spend them.

With a stealth address, you ask payers to generate a unique address in such a way that you (using some additional data which is attached to the transaction) can deduce the corresponding private key. So although you publish a single "stealth address" on your website, the block chain sees all your incoming payments as going to separate addresses and has no way to correlate them. (Of course, any individual payer knows their payment went to you, and can trace how you spend it, but they don't learn anything about other people's payments to you.)

But you can get the same effect another way: just give each payer a unique address. Rather than posting a single public donation address on your website, have a button that generates a new unique address and saves the private key, or selects the next address from a long list of pre-generated addresses (whose private keys you hold somewhere safe). Just as before, the payments all go to separate addresses and there is no way to correlate them, nor for one payer to see that other payments went to you.

So the only difference with stealth addresses is essentially to move the chore of producing a unique address from the server to the client. Indeed, in some ways stealth addresses may be worse, since very few people use them, and if you are known to be one of them, it will be easier to connect stealth transactions with you.

It doesn't provide "100% anonymity". The fundamental anonymity weakness of Bitcoin remains - that everyone can follow the chain of payments, and if you know something about one transaction or the parties to it, you can deduce something about where those coins came from or where they went.

> **Comments:**
> **username_5**: This is the most understandable answer given thus far.  
> **username_6**: this is useful for businesses that want to print and and post an address e.g. a coffee shop or the like  
> **username_7**: @username_4 , When you say: _"if you are known to be one of them, it will be easier to connect stealth transactions with you."_ Do you mean that in a Bitcoin explorer website such as (www.blockchain.com/explorer) or (https://blockexplorer.com) we can detect which transaction is **"stealth transaction"** ? In other words, are stealth transactions detectable? Thank you  
> **username_4**: @sas: Well, as mentioned, some other data is needed.  See https://gist.github.com/ryanxcharles/1c0f95d0892b4a92d70a.  One approach is to put the data in an OP_RETURN output.  Such outputs can be used for various things besides stealth, but normal transactions don't have them, so seeing one could at least make you suspect that this is a stealth transaction.  According to the document, there is an alternative protocol where the extra data was a public key from a previous transaction, in which case no OP_RETURN is needed.  I don't know which protocol was more common.  

---

### Answer by username_1 on 2014-01-16. Score: 11

This page on the [bitcoin wiki](https://en.bitcoin.it/wiki/Sx/Stealth) explains the exact procedure for generating and using a stealth address. It's not very user friendly at this point in time and is considered experimental.

Simply:

> Receiver generates a an address and a private secret and then sends
> this address to someone who he wants payment from.
>
> Sender uses the address and a "nonce" to generate the address he/she can send funds to.
>
> Sender communicates the nonce to the receiver and by using this
> nonce and the secret key generated earlier he/she can unlock the address with
> the funds.

The stealth addresses are based on the [Elliptic curve Diffie-Hellman](http://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) protocol and in theory this method is anonymous. As this code is relatively new however there may possibly be bugs.

> **Comments:**
> **username_2**: So does it rely on out-of-band communication? This mentions that Monero implements it by requiring a full transaction scan to determine if transactions are to you or not, interesting: https://localmonero.co/knowledge/monero-stealth-addresses?language=en  

---

### Answer by username_3 on 2014-07-22. Score: 4

The original article in which the concept of stealth addresses is introduced is written by Peter Todd and can be found in [this](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2014-January/004020.html) Bitcoin-development list message. The abstract of the article states:

> A Stealth Address is a new type of Bitcoin address and related
> scriptPubKey/transaction generation scheme that allowers payees to
> publish a single, fixed, address that payors can send funds efficiently,
> privately, reliably and non-interactively. Payors do not learn what
> other payments have been made to the stealth address, and third-parties
> learn nothing at all. (both subject to an adjustable anonymity set)


---

