It's true that providing networked access to material which you do not want copied or even viewed is not a new problem. I believe it is also likely that the current system is not 100% secure anyway. However, allowing the this material to be persistent client-side would make unauthorised access much easier.
Nothing is 100% secure - the key-based encryption currently used in secure connections e.g. for online purchasing focus on making it extremely troublesome or time-consuming to break the encryption. The data is safe only because it's hard to get at, so it's best not to make it any more accessible than it has to be.
Additionally, by maintaining a centralised asset database, LL has retained the ability to quickly monitor, manage and regulate ALL the assets. You cannot make any changes to objects besides what is allowed by the in-world interface, whereas it is possible to do almost anything to a file on your computer. I can compare this somewhat to giving a class of students homework and then saying either:
a) Get that homework done and hand it in next week (which is the way it's done), or
b) I'm keeping all your materials here. Anytime this week that you want to work on it, you can come on in and do it here while I watch you. Also, you must not work on the problems outside those times.
Now, we all know how good method (a) is against copying and cheating, don't we? How is the teacher going to keep track of all the separate assignments kept by different students to make sure they don't erm.. use a calculator when they aren't supposed to, for example? Method (b), however, gives the teacher absolute control.
I'm not saying that decentralisation is necessarily evil or without merit. There are many good points which I'm sure you're aware of. I am only pointing out the negatives which need to be weighed against the positives:
- Extra processing load for validity checking, authentication, encryption/decryption
- Decreased asset control and security --> developers won't like this, for sure.
vs.
+ Reduced server storage requirements
+ Increased redundancy (assuming people back up their inventories)
Note that I'm assuming there is already redundancy at LL either in the form of RAID or other backups which are standard business practice. In my 20+ years of computer experience, I have known plenty of people who have lost data from their HD for various reasons. True, it's not an everyday occurence, but it does happen, and much, much more often to home PC users than to enterprise setups with proper redundancy.
The only benefit I see in terms of redundancy is that the data is distributed, as you mentioned. However, I'd only view this as a real advantage if I thought it likely that the entire LL system was going to be wiped out, backups and all. As a side note, you may be interested in a P2P program called 'Croquet' ;)
BTW, gaining access to a properly configured server is much more difficult than cracking a file you already have, and for most MMORPGS you only need to have cracked the file protection once to be able to do it again and again and write a program so that everyone else can do it on their own PC without needing to know how. If a security loophole pops up at LL, they can take the asset server down to protect EVERYONE until they fix it.
From: Polaris Padar
Ok, so what if someone hacks the code and steals ideas? Isnt SL copyrighted for protection?
There are ways to steal and copy without being detected, especially if you can steal from a file you have offline. From this statement, I would guess that you are not very much into developing and selling content. If you were, you would be very aware of the many ways this 'copyright protection' does not protect you, and just how sickened and discouraged you can feel when that happens to you, or someone else. "So what"? And yes, there is benefit gained from e.g. making copy/notransfer items transferrable or making nocopy/transfer copyable, or making nomod items mod, particularly if these are/have scripts.
To reiterate, I'm not putting down the idea - I just do not think a totally client-side storage method is advisable. Perhaps a combination of the two - client-side storage of the items YOU create could very well allow more convenient building and I would support it for that reason, not for saving storage space on the databases because frankly, if you have > 7k items it's likely that the majority of them are not created by you.
In any case, this is an area which LL are certainly going to have to look into in order to support continued growth, and I trust they know enough about their architecture to make better decisions than any of us ;)
P.S. I have always wanted and still want an offline building program. Even though this violates the basic principles of security I ranted about. Hehe.