随着精确定位技术的发展,越来越多的基于位置的服务(LBS)改善了人们的生活。大多数LBS都需要位置证明(PoL)来证明用户满足服务要求,从而暴露了用户的隐私。
为了解决个人位置信息泄露可能带来的问题,依据零知识位置证明(zk-PoL)协议,实现了ZKLBS零知识证明项目。ZKLBS项目的使用场景有景区、商家评价、特定地区消费券领取等。在只提供经纬度坐标作为公开参数的情况下,确保参与评价的用户的确抵达过该景区或商家。
-
等级1:这可以用来证明某人在特定时间出现在商家指定的范围内,适用于诸如景点评价授权的情况。在这种情况下,游客必须证明他曾经去过某个旅游区,才能获得评论许可。
-
等级2:用户公开自己的位置坐标。这可以用来证明某人出现在特定的位置,并且可以应用于场景,例如定点打卡领取优惠券服务,用户需要在特定位置打卡从而得到优惠券。
-
等级3:用户公开自己的位置坐标以及获取该坐标的时间。这可以用来证明某人在特定的时刻出现在一个特定的地点,可以应用于基于位置的实时推荐,用户必须证明他现在处在一个特定的位置,以获得精确的推荐。
-
等级4:用户公开自己的位置坐标、获取该坐标的时间以及身份标识。这可以用来证明一个特定的人在特定的时刻出现在特定的地点。例如,嫌疑人需要不在场证明来证明他在特定的时间不在犯罪现场。
linux ubuntu 22.04
gcc/g++ 11
cmake
grpc
json
cd ZKLBS/src/grpc
mkdir build
cmake ..
make
./greeterVerifier
./greeterServer
./greeterClient
在对接QT之后,客户端运行更改为
cd ZKLBS/src/ZKFront
mkdir build
cmake ..
make
./ZKLBS