Skip to content

Latest commit

 

History

History
54 lines (41 loc) · 2.05 KB

README.md

File metadata and controls

54 lines (41 loc) · 2.05 KB

ZKLBS零知识位置证明

ZKLBS项目背景

随着精确定位技术的发展,越来越多的基于位置的服务(LBS)改善了人们的生活。大多数LBS都需要位置证明(PoL)来证明用户满足服务要求,从而暴露了用户的隐私。

ZKLBS项目介绍

为了解决个人位置信息泄露可能带来的问题,依据零知识位置证明(zk-PoL)协议,实现了ZKLBS零知识证明项目。ZKLBS项目的使用场景有景区、商家评价、特定地区消费券领取等。在只提供经纬度坐标作为公开参数的情况下,确保参与评价的用户的确抵达过该景区或商家。

  • 等级1:这可以用来证明某人在特定时间出现在商家指定的范围内,适用于诸如景点评价授权的情况。在这种情况下,游客必须证明他曾经去过某个旅游区,才能获得评论许可。

  • 等级2:用户公开自己的位置坐标。这可以用来证明某人出现在特定的位置,并且可以应用于场景,例如定点打卡领取优惠券服务,用户需要在特定位置打卡从而得到优惠券。

  • 等级3:用户公开自己的位置坐标以及获取该坐标的时间。这可以用来证明某人在特定的时刻出现在一个特定的地点,可以应用于基于位置的实时推荐,用户必须证明他现在处在一个特定的位置,以获得精确的推荐。

  • 等级4:用户公开自己的位置坐标、获取该坐标的时间以及身份标识。这可以用来证明一个特定的人在特定的时刻出现在特定的地点。例如,嫌疑人需要不在场证明来证明他在特定的时间不在犯罪现场。

ZKLBS环境配置:

  linux ubuntu 22.04

ZKLBS依赖项:

  gcc/g++ 11
  cmake
  grpc
  json

ZKLBS项目编译:

  cd ZKLBS/src/grpc
  mkdir build
  cmake ..
  make

ZKLBS项目运行

  ./greeterVerifier 
  ./greeterServer 
  ./greeterClient

在对接QT之后,客户端运行更改为

  cd ZKLBS/src/ZKFront
  mkdir build
  cmake ..
  make
  ./ZKLBS