I will write this all when I have time for sure. I have answered it an awful lot and each answer prevents me doing the code and the write up so sorry for brevity.
In the network there are mutable data types (search structured data versions) These hold keys and versions, the versions point to immutable data types.
safecoin type data is a simple data element with the last and current owner. Its signed by the last owner as belonging to current owner.
To change this the current owner signs a message stating the new current owner.
The data is held in at least three groups (Hash(dataname)) Then Hash(Hash(dataname) etc. (note this is not the hash of the group, but the data itself)
Each group is a close node group in xor space (crypo secured). These get the message, check the signature, synchronize between them and alter the data. All three groups (there are actually 6 members of this chain, but imagine just these three) then synchronize the result between them and commit the change.
While this is going on the groups will return the old owner.
The new owner (or anyone for that matter) retrieves the current owner by a query of the three holder groups, The coin will have either not been transferred (yet), be out of consensus or will return with the new owner fixed.
Hoep this helps a bit, a lot relies on the fact that only a small part of the network in consensus is required and not the whole network. So a network of a few hundred million will only require about 20 nodes to provide the chain required.
This is not only safecoin it works for all mutable data types, such as directory listings (the most common) and even contracts etc. if required. When testnet1 is up and running (any day now) we will document this properly and folk can see this and the code that enforces this consensus.