There is a known issue on bitcoin, that is that every transaction requires a new address to prevent address reuse, making it uncomfortable to make recurring payments, as every payment requires a new off-chain interaction. A scheme is already mentioned on the [on the BIP32 itself][1], but it cannot be implemented as is.
Here I propose a scheme that follows the structure described on [BIP44] that should make it possible to send recurring payments using a single offline interaction.
The proposed scheme is:
master / purpose' / coin_type' / contact' / index
Where the definitions of all the levels follow BIP44, except for `contact` that is described below.
Example usage: Bob wants to make recurring payments to Carol, so he asks her for a _contact address_, that is, an extended public key.
Bob can use that public key to generate multiple derived addresses to make multiple recurring payments to Carol, the contact address is stored off-chain, anyone inspecting the chain will just see normal transactions on-chain.
## Considerations
[BIP47] tries to solve the same issue, but the solution is more complex and involves more on-chain transactions that involve data, this implementation simpler and requires less work to implement.
Also, the derivation path might need some adjustments for different address types on bitcoin.
Finally, this only works in a single direction and does not make it possible for Carol to send anything to Bob, as it would require Bob sending her a contact address.
## Advantages
A positive side effect of using this, is that Bob can choose to send payments to Carol using multiple outputs, giving him more privacy.
Also, those payments can be easily labeled by the receiving wallet, as they are received.
Regards.
### References
[BIP47]:
https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki "Reusable Payment Codes for Hierarchical Deterministic Wallets"
[BIP43]:
https://github.com/bitcoin/bips/blob/master/bip-0043.mediawiki#Purpose--- Eloy
_______________________________________________