1. A method of storing data in a storage system, the method comprising the steps of: processing a data block to generate an address which is determined as a function of the contents of the data block; and storing the data block in the system in a memory location identified by the address; wherein the processing and storing steps provide write-once storage of the data block in the system such that the contents of the data block are not modifiable without also altering the address of the data block determinable in the processing step.