Stealth Address
Abstract
The Stealth Address
is the technology which allows us to hide the recipient address.
Details
The blockchain for example Ethereum
, we generate the private key and the public key based on private key. The hash of the public key is going to be a address which specifies the recipient. This address corresponds one private key and public key pair so we can easily identify who is the recipient of the transaction. In our blockchain, we generate recipient address for each transactions and make it hard to identify the recipient.
- Generates recipient public key pairs
- Generates recipient
Stealth Address
- Prove the ownership of
Stealth Address
Above sequence used for confidential transfer to keep the recipient address anonymous.
Generates Recipient Public Key Pairs
Every transaction has recipient and we hide the recipient with stealth address. We assume Alice send transaction to Bod.
First of all, Bod generates the two key pairs (a, A) and (b, B) such that aG = A
and bG = B
. a
and b
are the private keys and, A
and B
are the public keys.
Variable | Explanation | Derivation |
---|---|---|
a | Bob private key | a ∈ Fp |
b | Bob private key | b ∈ Fp |
A | Bob public key for a | a * G |
B | Bob public key for b | b * G |
Generates Recipient Stealth Address
Secondly, Alice generates the Bob recipient address as referred to the Stealth Address
. Alice selects the random number r
and calculate the Stealth Address
with Bob public keys such that following.
$$ P = H(r*A) * G + B $$
No one can link P address with A
and B
because it's concealed by elliptic curve arithmetic. Alice publish the P
and R
calculated as R = rG
.
Variable | Explanation | Derivation |
---|---|---|
r | randomness generated by Alice | r ∈ Fp |
H | one-way hash function which takes curve point and maps field element | e: xG -> Fp |
R | public value generated by Alice | r * G |
P | stealth address of Bob | H(r*A) * G + B |
Prove the ownership of Stealth Address
Lastly, Bob needs to prove the ownership of Stealth Address
to use assets associated with it. Bob knows his private keys a
and b
. He can calculate the private key of P
with x = H(a * R) + b
. This is the Diffie–Hellman key exchange
algorithm. Only Bob can know the x
. This is how concealing the recipient address. Next section, we explain how we conceal the amount of transactions.