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.

  1. Generates recipient public key pairs
  2. Generates recipient Stealth Address
  3. 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.

VariableExplanationDerivation
aBob private keya ∈ Fp
bBob private keyb ∈ Fp
ABob public key for aa * G
BBob public key for bb * 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.

VariableExplanationDerivation
rrandomness generated by Alicer ∈ Fp
Hone-way hash function which takes curve point and maps field elemente: xG -> Fp
Rpublic value generated by Alicer * G
Pstealth address of BobH(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.