6

Do disposable addresses have any use cases that cannot be handled by sub addresses?

If so, exactly why was development of of disposable addresses dropped? How could their use have a negative impact on-chain transaction linkability?

6

Disposable addresses require the sender to use an unencrypted payment id specified by the receiver.

This means that if funds are sent to a disposable address more than once, an observer can tell that two transactions on the blockchain have the same recipient because both transactions will share the same payment id. It may have been difficult to educate people that they should not give out the same disposable address to more than one person, and that they should not receive multiple payments even from the same person to any particular disposable address.

Subaddresses can be used instead of disposable addresses, can be safely reused, and can be combined with encrypted payment ids if necessary. The advantage of disposable addresses though is that unlimited disposable addresses can be issued without any kind of "counter" being used.

A counter needs to be used with subaddresses because to check for incoming funds to a subaddress, a lookup table of subaddresses needs to be generated prior to scanning the blockchain for incoming payments. Lookup table generation is a one-off operation (when you first create a wallet), but it does take a few seconds per 10,000 subaddresses to be generated for the lookup table. Therefore you can't just pick a large random number to generate a one-off subaddress that is unlikely to clash with a previously issued subaddress. A counter needs to be used to ensure the subaddress you generate is both unique and within the bounds of your lookup table.

It is possible that disposable addresses may be introduced in the future if there is a strong use case for them that outweighs the risk of their accidental reuse.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.