For copy guard of a private avatar, I think to need that the VRChat Client don't load the private avatar at least, if there is no player that had upload the private avatar, in the world.
If do so, nobody except the avatar thief will be able not to see the avatar of the player using a stolen avatar.
For example, a part of the private avatar data is encrypted with the avatar blueprint ID as a key and kept on the server side so that it is not saved in the HDD cache of the client PC.
The encrypted data part is decrypted on the server side by the avatar blueprint ID sent from the VRChat client, expanded to the DRAM in the client PC without being stored in the HDD cache, and used for 3D display. With such a mechanism, it may be possible to prevent avatar ripping from the HDD cache. His Avatar Blueprint ID for Private Avatar is associated with each player. As a result of this mechanism, I think that Avatar will not be displayed correctly on a VRChat client that has not been tampered with.
Given the current VRChat Avatar registration method, there is no review process, so I think it is impossible to prevent all cases of ripping by illegally modified VRChat Client, but it is not easy to rip.
I'm sure there are many other ways to do this, but first of all, I think it's worth considering measures to discourage Avatar thieves.