Paper 2021/697

GoAT: File Geolocation via Anchor Timestamping

Deepak Maram
Iddo Bentov
Mahimna Kelkar
Ari Juels

Blockchain systems are rapidly gaining traction. Decentralized storage systems like Filecoin are a crucial component of this ecosystem that aim to provide robust file storage through a Proof of Replication (PoRep) or its variants. However, a PoRep actually offers limited robustness. Indeed if all the file replicas are stored on a single hard disk, a single catastrophic event is enough to lose the file. We introduce a new primitive, Proof of Geo-Retrievability or in short "GeoPoRet", that enables proving that a file is located within a strict geographic boundary. Using GeoPoRet, one can trivially construct a PoRep by proving that a file is in several distinct geographic regions. We define what it means for a GeoPoRet scheme to be complete and sound, in the process making important extensions to prior formalism. We propose GoAT, a practical GeoPoRet scheme to prove file geolocation. Unlike previous geolocation systems that rely on trusted-verifiers, GoAT bootstraps using public timestamping servers on the internet that serve as geolocation anchors, tolerating a local threshold of dishonest anchors. GoAT internally uses a communication-efficient Proof-of-Retrievability (PoRet) scheme in a novel way to achieve constant-size PoRet-component in its proofs. We validate GoAT's practicality by conducting an initial measurement study to find usable anchors and also perform a real-world experiment. The results show that a significant fraction of the internet can be used as GoAT anchors. Furthermore, GoAT achieves geolocation radii as little as 1000km.

Note: Updated version

Available format(s)
Cryptographic protocols
Publication info
file location proof of retrievability zero knowledge
Contact author(s)
sm2686 @ cornell edu
2022-05-31: last of 4 revisions
2021-05-28: received
See all versions
Short URL
Creative Commons Attribution


      author = {Deepak Maram and Iddo Bentov and Mahimna Kelkar and Ari Juels},
      title = {GoAT: File Geolocation via Anchor Timestamping},
      howpublished = {Cryptology ePrint Archive, Paper 2021/697},
      year = {2021},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.