I am designing a protocol where a user A sends a time-locked deposit to user that if the user B within time t provide a proof that he exists in a location x (this may be obtained by third party like Google), user B can get the deposit of A. Otherwise, A can get his money back.

Any help of how to do that using cryptography or two-way secure computations?

  • 1
    $\begingroup$ You can use a Trusted Timestamp Service to prove some piece of data existed at a specific time. Proving arbitrary location X is not easy, because GPS signals can be faked. Google can’t prove “where” you are. $\endgroup$ – John Deters Jan 30 '19 at 5:19
  • $\begingroup$ Thanks for your guide to use Trusted Timestamp Service. As far I understand from Wikipedia, is that user B can send his current location to a trusted third party that can verify the user location, then create a signature on that location. Is that okay ? $\endgroup$ – Heba Mohsen Jan 30 '19 at 5:33
  • $\begingroup$ No. Location data can easily be spoofed. Remember how many people were cheating at Pokémon Go a few years back? They used cheap radios to emit a fake GPS signal tricking their phones into believing they were circling the globe. If money is at stake, people will find a way to cheat to get it. $\endgroup$ – John Deters Jan 30 '19 at 5:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.