A method by which more than one
client program connected to a network stores the same data item at the same location or locations in a data repository connected to the network, the method comprising having a first
client program deposit a first data item in a data repository, the depositing including determining a
digital fingerprint from the data item using a reproducible pseudorandom process that produces digital fingerprints having a pseudorandom distribution, storing the data item in the data repository at a location or locations associated with the
digital fingerprint, and associating a deletion permission token with the data item, and storing this association in the data repository, having a second
client program initiate a process for depositing a second data item in the data repository, wherein the second data item is identical to the data item stored by the first client program, the process including determining a
digital fingerprint from the second data item using the reproducible pseudorandom process, determining from the digital
fingerprint that a data item identical to the second data item is already stored in the data repository, relying on the data item already stored in the data repository for storage of the second data item rather than storing a separate copy of the second data item, and associating a second deletion permission token with the data item already stored, and storing this association in the data repository, having a client program initiate a process for deleting the data item already stored in the repository, wherein a deletion permission token associated with the data item is deleted from the repository, but the data item itself is not deleted.