While researching how different exchanges handle user deposits, I noticed a stark contrast between several prominent exchanges.
Kraken:
Exchanges like Kraken use newly generated deposit addresses (no smart contract)
Bitstamp and Binance:
Exchanges like Bitstamp and Binance have client smart contracts. In other words, the customer has a dedicated address to deposit all ERC-20 related tokens to it. This wallet though has to first go through a smart contract wallet that is owned from the exchange
Bittrex:
Warning - sending ETH to Bittrex is a smart contract invocation.. So here's what I found after a friend asked for help.. When you ask for deposit address in Bittrex, what happens behind the scenes is that a new instance of smart contract is created just for you..
Why do some exchanges choose to generate a new deposit address for each customer while others choose to move it through a smart contract first? What are the benefits/drawbacks of each approach?