The disclosure provides a method for ensuring that data stored on
rewritable storage is immutable. The method includes initializing
selected user-addressable blocks of storage to a writable state. In
addition, the method includes accepting data to be stored in specified
user-addressable blocks. Also, the method includes determining if the
specified block(s) is writable. Also, the method includes storing the
accepted data to the rewritable storage. Moreover, the method includes
setting the state of the specified block(s) to non-writable. Each
user-addressable block of storage is mapped to at least one block of
rewritable storage and initializing selected user-addressable blocks of
storage to a writable state includes storing predetermined bit patterns
into the corresponding blocks of rewritable storage such that for each
selected user-addressable block of storage, the contents of the
corresponding blocks of rewritable storage satisfy a predetermined
mathematical relationship.