Currently, trading on centralized exchanges requires one to keep their funds on the exchange, with the private key controlled by the exchange's server.
Wouldn't it be possible to give people multisig addresses, perhaps in a 2 or 2 configuration or 2 of 3 configuration, where the exchange has one key and the user has the other keys, and giving people the capability of maintaining a known balance and placing orders on the order book with that balance.
Buy example: When Alice buys Bob's bitcoin or cryptoasset, the exchange places the transfer with Bob's key (notifying Bob) and extends credit to Alice in the GUI, so Alice has "unsettled funds" but may be able to keep trading to an extent. Bob has to authorize the actual trade with his remaining keys, and may be limited in doing anything else on that site until he does authorize it.
The risk here is that Bob never authorizes the transaction, or too many users never authorize, bring the exchange's margin capabilities to a halt.
The benefit is that an exchange being hacked wouldn't result in massive amounts of cryptocurrency being stolen, and I think the risk parts can be mitigated.
Is this a practical possibility?