A computer-implemented method for verifying a location of a mobile device comprising, at a location-based services, LBS, server: receiving, from the mobile device, a device identifier associated with the mobile device and location information indicating a possible location of the mobile device; determining a first set of LBS server tiles corresponding to a geographical area associated with the possible location of the mobile device; sending a location verification request comprising the device identifier to a distributed ledger system; and, determining whether at least one element of the first set of LBS server tiles is also an element of a first set of verification system tiles corresponding to a geographical area associated with a detected location of the mobile device by communicating with the distributed ledger system using a private set intersection technique comprising, at the LBS server: generating a second set of LBS server tiles by individually encrypting each element of the first set of LBS server tiles using a commutative encryption scheme with a first private key; sending the second set of LBS server tiles to the distributed ledger system; receiving a second set of verification system tiles from the distributed ledger system, the second set of verification system tiles corresponding to the first set of verification system tiles in which each element has been individually encrypted using the commutative encryption scheme with a second private key; generating a third set of verification system tiles by individually encrypting each element of the second set of verification system tiles using the commutative encryption scheme with the first private key; sending the third set of verification system tiles to the distributed ledger system; and, obtaining, from the distributed ledger system, an indication of whether at least one element of the third set of verification system tiles is also an element of a third set of LBS server tiles, the third set of LBS server tiles corresponding to the second set of LBS server tiles in which each element has been individually encrypted using the commutative encryption scheme with the second private key. receiving, from the mobile device, a device identifier associated with the mobile device and location information indicating a possible location of the mobile device; determining a first set of LBS server tiles corresponding to a geographical area associated with the possible location of the mobile device; sending a location verification request comprising the device identifier to a distributed ledger system; and, determining whether at least one element of the first set of LBS server tiles is also an element of a first set of verification system tiles corresponding to a geographical area associated with a detected location of the mobile device by communicating with the distributed ledger system using a private set intersection technique comprising, at the LBS server: generating a second set of LBS server tiles by individually encrypting each element of the first set of LBS server tiles using a commutative encryption scheme with a first private key; sending the second set of LBS server tiles to the distributed ledger system; receiving a second set of verification system tiles from the distributed ledger system, the second set of verification system tiles corresponding to the first set of verification system tiles in which each element has been individually encrypted using the commutative encryption scheme with a second private key; generating a third set of verification system tiles by individually encrypting each element of the second set of verification system tiles using the commutative encryption scheme with the first private key; sending the third set of verification system tiles to the distributed ledger system; and, obtaining, from the distributed ledger system, an indication of whether at least one element of the third set of verification system tiles is also an element of a third set of LBS server tiles, the third set of LBS server tiles corresponding to the second set of LBS server tiles in which each element has been individually encrypted using the commutative encryption scheme with the second private key. generating a second set of LBS server tiles by individually encrypting each element of the first set of LBS server tiles using a commutative encryption scheme with a first private key; sending the second set of LBS server tiles to the distributed ledger system; receiving a second set of verification system tiles from the distributed ledger system, the second set of verification system tiles corresponding to the first set of verification system tiles in which each element has been individually encrypted using the commutative encryption scheme with a second private key; generating a third set of verification system tiles by individually encrypting each element of the second set of verification system tiles using the commutative encryption scheme with the first private key; sending the third set of verification system tiles to the distributed ledger system; and, obtaining, from the distributed ledger system, an indication of whether at least one element of the third set of verification system tiles is also an element of a third set of LBS server tiles, the third set of LBS server tiles corresponding to the second set of LBS server tiles in which each element has been individually encrypted using the commutative encryption scheme with the second private key.