Bitcoin Extended Addresses

Merge avoidance and stealth addresses with BIP32

Matias Alejo Garcia
2 min readMay 5, 2014

The idea is:

  1. In the wallet software, the ‘generate a new address’ button will
    actually generate a new extended public key, in a new bip32 branch. The wallet will register that branch as “being used”.
  2. The payee shares the extended public key (probably in b58check format: an extended bitcoin address) with the payer.
  3. The payer adds the payee’s extended address in a compatible wallet software.
  4. Now he can send coins to the payee. The software generate a
    transaction with many outputs: using a random set of addresses,
    derived from the extended pub key he received: say a variable set from
    1 to N (eg.100) output addresses. In the future, for the next payment, he can scan the blockchain and
    use as starting address for the new random set the last used address
    (with transactions) in the BIP32 branch, excluding it from the set.
  5. The payee will scan outputs for all the generated bip32 branches, up to N (100) addresses in each. If he finds any transactions, he will
    scan 100 more. (this “gap scanning” method is already been discussed
    on the mailing list).

If I am not mistaken, this method can be used for

  1. replace stealth addresses without the need of exchanging the
    “nonce” from the payer to the payee, while proving almost the same
    features.
  2. enhance privacy by implementing “merge avoidance” very easily.

Comments are welcomed.

PS: I talked with Mike Hearn about this idea, he mentioned that the main problem with Extended Addresses is the scanning part. For SPV clients scanning new address is not that easy. My proposal for that is that wallet software use a insight-like API service, from which balances of arbitrary addresses can be pulled. If the use dont want to use a public API service, they an run their own Bitcoin full node (services like bithost.io allow to run a full bitcoin node, at very low cost) and add insight-api or other blockchain API service on top of that. Probably services for bitcoind+insight will appear soon also.

PS2: Thanks to @maraoz to reviewing this post and for his valuable comments.

--

--

Matias Alejo Garcia

Programmer, professor, entrepreneur from Argentina. Fan of bitcoin, internet, nuclear energy and electric cars