I'm having difficulty coming up with suitable logic to handle a hot-wallet style deposit/withdraw system where funds that are deposited have to be sent out to any number of different addresses. This seems to be common place for exchanges or any other centralised system.
I've implemented this already for Bitcoin and that's rather easy to generate new addresses, get users to send coins to a central wallet, then sending out to any other wallet. This is easy due to Bitcoin's multiple input/outputs. This is proving to be a bigger challenge than I thought with Ethereum's single input and single output.
From my understanding it's not possible to have multiple addresses for a single account, since the account is the address. So the only option I'm left with is making deposit addresses as new accounts for every user that generates an address.
This is the major issue I'm facing. The funds that got deposited are now split over an unknown number of addresses/accounts. I've noticed that exchanges like Poloniex have a single main ETH account (which can be seen on etherscan).
So my main question is: How can I create different addresses and have the funds sent to a single address for full control?