Required is the questionable part. But imagine it’s far less load on the server if all the clients send their inventory to each other rather than the server when you load the game vs making a request to the server every time you open it or start a trade.
If you had to talk to the server Everytime a trade happened each player would have to send their current inventory to the server then the other would download it. You repeat that a million times and you DoS your server vs sending it once when you load.