Skip to content

GoATTeam/GoAT

Repository files navigation


The GoAT code is an academic research prototype, and meant to elucidate protocol details and for proofs-of-concept, and benchmarking. It has not been developed in a production environment and is not meant for deployment.


GoAT

GoAT is a file geolocation protocol (formally a Proof of Geo-Retrievability scheme). Using GoAT, you can prove that a particular piece of data is stored within a geographic region. GoAT targets somewhat coarse geolocation radii, useful to prove file replication. For example, GoAT can used to prove that three replicas of a file F are stored in USA, Asia and Europe respectively. Unlike existing geolocation systems that rely on trusted-verifiers, GoAT uses existing internet servers as geolocation anchors, thereby decentralizing trust over a large fraction of the internet.

  • For more information, please have a look at our paper.

  • Two PoRets have been implemented: Shacham-Waters and Merkle-Tree. Please look at the corresponding folders for how to install and run.

  • Experiment results can be found in the experiments folder.

Anchors

Anchors are internet servers located at a publicly known location that serve authenticated time.

Roughtime: 64 byte nonce, 64-byte signature

TLS RFC: 32 byte client random (we use it as nonce), 256-byte signature (Assuming RSA).

Roughtime installation script is scripts/install/install-roughenough.sh (run from current directory).