Blockchain Stealth Address Schemes

Abstract

In a blockchain system, address is an essential primitive which is used in transaction. The StealthΒ Address\textit{Stealth Address}, which has an underlying address info of two public keys (A,BA,B ), was developed by Monero blockchain in 2013, in which a one-time public key is used as the transaction destination, to protect the recipient privacy. At almost same time, hierarchicalΒ deterministicΒ wallets\textit{hierarchical deterministic wallets} scheme was proposed as bip-32\textit{bip-32} for Bitcoin, which makes it possible to share an extendedΒ publicΒ key\textit{extended public key} (K,cK,c) between sender and receiver, where KK is a public key and cc is a 256-bits chain code, and only receiver knows the corresponding private key of this KK. With the bip-32\textit{bip-32} scheme, the sender may derive the child public key KiK_i with the child number ii by him/herself, without needing to request a new address for each payment from the receiver, make each transaction have a different destination key for privacy. This paper introduces an improved stealth address scheme which has an underlying address data of (Ai,Bi,i)(A_i,B_i,i), where ii is a child number and i∈[0,231βˆ’1]i\in [0,2^{31}-1]. The sender gets the receiver’s address info (Ai,Bi,i)(A_i,B_i,i), generates a random secret number r∈[0,264βˆ’1]r\in [0,2^{64}-1] and calculate a Pedersen commitment C=AiBihR2˘7.xC=A_iB_ih^{R^{\u27}.x} where R2˘7=BirR^{\u27}=B_i^r, then the sender may use this commitment CC or Hash(C)Hash(C) as the destination key for the output and packs the (R,i)(R,i) somewhere into the transaction. This improved stealth address scheme makes it possible to manage multiple stealth addresses in one wallet, therefore the user is able to share different addresses for different senders

    Similar works