I have an application that will be generating addresses for each incoming transaction, and the number of transactions could grow quite large. Is there a maximum number of addresses that can be generated for a single seed, both from a practical and security standpoint?
1 Answer
An address is generated from 3 inputs :
- a seed
- a security level: 1, 2 or 3
- an index : an integer
In theory an integer can be infinite, in computer science things are often finite. In java integer range is from -2,147,483,648 to +2,147,483,647.
If you consider the java language to generate the addresses you will have 3 × 2 × 2,147,483,648 potential addresses if you use the 3 security level supported today. (or 2 times less if negative indexes aren't supported... I don't know if they are)
Regarding security: if you use all possible indexes and all security level you will start to re-use addresses and this a risk (limited on a fast network and if security level is high).
Note that if you plan to generate a huge amount of transactions and if many of them are between the same couple of actor: you should probably consider usage of flash channels
-
There's no technical limitation that I'm aware of that would prevent an application from using negative key indices. But, it would be deviating from the standard method of generating addresses, which may be considered a bug or a feature, depending on the context. Dec 15, 2017 at 5:43