OpenGL, Copying, and Stealing
A basic tenet of copy protection and digital rights management (DRM) is if the key and the data exist on the same machine, the system is fundamentally not secure. Another way of looking at this is “if you can see it, you can copy it.” The web is an especially open example of this. Any part of a website that travels to the client computer, whether textures, audio, HTML, or client-side scripting, can be copied. We all saw this in the early rollout of the web, where sites would copy markup from particularly clever sites. Of course, this helped the development of the web, since easy copying drove down the cost of learning, helping to spur innovation. Plus, while the technology of the world-wide web didn’t stop copying, intellectual property law still applied, so site owners could take legal action if they felt it was worthwhile for them to do so. This balance is at the heart of intellectual property law: balancing temporary monopolies and the incentives to create that go with them against the myriad societal and cultural benefits of copying.
Second Life uses OpenGL to render graphics to the screen. OpenGL provides a set of libraries that combine geometry, textures, lights, and transforms to create rendered 3D scenes. As such, OpenGL must have access to the geometry, textures, lights, and transforms. Those assets are not encrypted currently, since rendering is a performance intensive application and decryption is often CPU intensive. However, even if the data were encrypted, we would still be forced to return to first principles, since the data would need to be decrypted in order for it to be rendered. Thus it is not even possible in principle to prevent copying of geometry, textures, lights, or transforms. It isn’t a question of whether Linden Lab can block this in practice – it isn’t even possible in theory!
Another option – which we aren’t working on yet – would be to offer either a registration or seal program for creators who are willing to provide additional identifying information and who are committed to not infringing on other residents’ content. If the finder makes it easy to search for content and locations that participate in this program, then economic and social pressures combine to reward creators who respect copyright and punish those who don’t.
Yet another idea – again, we’re not working on this yet, just talking about it – would be to make copying of all content within SL trivially easy, but to track appropriate metadata about who’s copied the content and where it has been reused. Maybe even make that data publicly searchable. By making the act of copying easy, the incentives to go around or hack the system are greatly reduced and the community is better able to recognize and respect the wishes of creators. Plus, it would be much easier to implement important concepts like “undo” which are incredibly complicated or impossible when trying to preserve uniqueness.