I spent some time on the gRPC interfaces of mobilecoind and found there are multi ways to manage the keys ---- using “monitor id” or “subaddresses”. Which is the best way to generate and handle thousands of user’s addresses in crypto exchanges? I think binding the subaddress index with the user’s account is an ideal solution. But I would like to listen to your suggestions
If an exchange used separate master account keys to store each user’s txos, every incoming new transaction in the ledger would require a few msec of computation per user to check for ownership (U users * M msec). This would make it expensive to maintain a quality user experience for a large number of users. The subaddress mechanism instead allows each new txo to be decoded just once, to calculate an intermediate value unique to each subaddress index. This means that checking ownership for all users requires just one cryptographic operation and U fast operations that take N nsec, for a total of (M msec + U users * N nsec).
I appreciate your taking the time to answer my question. It has really helped me, thank you robb.