{
  "slug": "path-oram",
  "term": "Path ORAM",
  "aliases": [],
  "definition": "Path ORAM is a tree-based oblivious RAM protocol that reads and rewrites a full path while randomly remapping the accessed block.",
  "note": "Mechanism: A position map assigns each block a leaf. The block resides on that path or in the client's stash. After reading the old path, the client assigns a fresh random leaf and rewrites the old path, with randomized encryption and dummy padding. [path2018]\n\nMemory: The stash holds blocks that cannot yet be placed. The position map is separate client state; recursion stores it in smaller ORAMs at additional access cost. The base protocol does not cover request timing leakage. [path2018]",
  "status": "research",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-12",
  "related": [
    "oblivious-ram",
    "authenticated-encryption",
    "merkle-tree"
  ],
  "citations": [
    {
      "id": "path2018",
      "title": "Stefanov et al. Path ORAM: An Extremely Simple Oblivious RAM Protocol. JACM 65(4), 2018, sections 2-4 and 6.4. DOI 10.1145/3177872.",
      "url": "https://people.csail.mit.edu/devadas/pubs/PathORAMJACM.pdf",
      "accessed": "2026-11-12"
    },
    {
      "id": "hesela-oram",
      "title": "Hesela: What an encrypted access trace can reveal",
      "url": "https://hesela.com/analyses/encrypted-deduplication-trust-boundaries/#access-patterns",
      "accessed": "2026-11-12"
    }
  ],
  "provenance": [
    "The 2018 journal article extends the CCS 2013 publication (DOI 10.1145/2508859.2516660). No implementation, stash-failure experiment or cryptographic proof was reproduced."
  ]
}
