I'm trying to understand how oblivious RAM works, specificallypath oblivious RAM. While I understand how this technique offers protection when reading data - multiple randomly distributed reads obfuscate the access pattern of the data actually requested - I can't tell how that helps protect against an attacker who is interested in the users write access. Surely multiple randomly addressed writes would potentially overwrite critical data that is later required by the program. Similarly, while batching the writes would stop an attacker knowing exactly which addresses were written to at a given time, this would not stop them discovering which addresses were written to, nor the presence of those writes.
Oblivious RAM write protection
security
Surely multiple randomly addressed writes would potentially overwrite critical data...Nope.  The oblivious RAM data structures take care to ensure that, when doing reads and writes at random locations, they don't mess up the data.  For instance, if doing an extra write, then they make sure to write the same value that was already there (except in encrypted form), so that it doesn't change what value is stored there.batching the writes would stop an attacker knowing exactly which addresses were written to at a given timeBut the attacker would still know which set of addresses were written, which is leakage of partial information.  Oblivious RAM aims to eliminate even this partial leak.  So oblivious RAM achieves a stronger property than batching could ever provide.