Reading the uport whitepaper https://uport.me/library/pdf/whitepaper.pdf :
The purpose of having a Proxy contract as the core identifier is defined as :
The purpose of having a Proxy contract as the core identifier is that it allows the user to replace their private key while maintaining a persistent identifier. If the user’s uPort identifier instead was the public key corresponding to their private key, they would lose control over their identifier if they were to lose the device where the private key is held.
Why do I need my private key ? If the proxy contract is essentially acting as a private key in that it's used to identify me then why keep the private key ?