What Is a Stealth Address?
Stealth addresses are designed to prevent public association of a transaction's output with a recipient's wallet address and conceal a transaction's actual destination address, thereby hiding the receiver's identity on a cryptocurrency network.
- Stealth addresses are a technique for obscuring public blockchain transactions.
- A core property of blockchain is pseudonymous transactions, which means once personal information, like an IP address, is associated with a crypto key, all the transactions using that key can be traced on the blockchain.
- Stealth addresses are private, single-use addresses generated using the elliptic-curve Diffie-Hellman protocol.
Understanding a Stealth Address
A standard transaction on a blockchain needs a public address belonging to the recipient. This is not a bug, it's a feature of blockchain. Transactions are pseudonymous to prevent fraud and digital counterfeiting, but the downside is once a public key is associated with a personal identity (through an IP address, for example), all the transactions using that key can be tracked throughout the blockchain.
For example, if you wish to solicit charity funds, you may need to provide your destination public address to which cryptocurrency funds can be sent. However, this will reveal your destination address, which allows parties who have enough information to assign identities to those addresses to track them and wherever the funds are being spent later. The upside for a charity is total and forced transparency, but not everyone will want their donations to charity to also be a door into tracing all their other, private transactions.
The lack of transparency in bitcoin transactions also puts individuals at risk if the ledger shows they have a large holding of coins, which can be an invitation to hacker thieves. It is also a tricky situation for a merchants who accept cryptocurrency payments. If their public address remains fixed and known, everyone would know about their customers' possible identities and their subsequent transactions.
This is why stealth addresses, which hide the receiver's identity, were proposed by Peter Todd in 2014. Stealth address' mechanism uses a combination of various public and private keys that are dynamic and for one-time use only. Stealth addresses are created using the elliptic-curve Diffie-Hellman protocol.
For example, a user (let's call him Ken) on a stealth address-supported blockchain is holding five cryptocurrency tokens. Ken has complete control over the tokens as long as he holds them. If he wishes to send all of them to Paul, he will generate a transaction output, which will announce to the network that Ken is sending five tokens to Paul. Now Paul becomes the rightful owner of the five tokens.
Ken's wallet will use both Paul's public view key and his public spend key and club it with random strings of data that generate the one-time unique public key for Paul's output. While others on the network can see a transaction getting recorded, no one other than Ken and Paul will be aware that it took place between Ken and Paul.
Using his own wallet's private view key, Paul will be able to locate the transaction on the blockchain and retrieve it in his wallet. Using the one-time private key that corresponds to the one-time public key for the transaction, Paul will gain the right to spend the cryptocurrency. Nowhere in this process are sender's or receiver's wallet addresses made public.
As these randomly generated, one-time use addresses are created for each transaction on behalf of the recipient, stealth addresses add an additional layer of privacy. Monero, which is known for its privacy and anonymity, is using stealth addresses as the basis for its transaction.