Table of Contents
Fetching ...

Zero-Knowledge Location Privacy via Accurate Floating-Point SNARKs

Jens Ernstberger, Chengru Zhang, Luca Ciprian, Philipp Jovanovic, Sebastian Steinhorst

TL;DR

The first set of Zero-Knowledge Proof (ZKP) circuits that are fully compliant to the IEEE 754 standard for floating-point arithmetic are introduced, and the results demonstrate that the floating point circuits amortize efficiently, requiring only 64 constraints per operation for 215 single-precision floating-point multiplications.

Abstract

We introduce Zero-Knowledge Location Privacy (ZKLP), enabling users to prove to third parties that they are within a specified geographical region while not disclosing their exact location. ZKLP supports varying levels of granularity, allowing for customization depending on the use case. To realize ZKLP, we introduce the first set of Zero-Knowledge Proof (ZKP) circuits that are fully compliant to the IEEE 754 standard for floating-point arithmetic. Our results demonstrate that our floating point circuits amortize efficiently, requiring only $64$ constraints per multiplication for $2^{15}$ single-precision floating-point multiplications. We utilize our floating point implementation to realize the ZKLP paradigm. In comparison to a baseline, we find that our optimized implementation has $15.9 \times$ less constraints utilizing single precision floating-point values, and $12.2 \times$ less constraints when utilizing double precision floating-point values. We demonstrate the practicability of ZKLP by building a protocol for privacy preserving peer-to-peer proximity testing - Alice can test if she is close to Bob by receiving a single message, without either party revealing any other information about their location. In such a configuration, Bob can create a proof of (non-)proximity in $0.26 s$, whereas Alice can verify her distance to about $470$ peers per second

Zero-Knowledge Location Privacy via Accurate Floating-Point SNARKs

TL;DR

The first set of Zero-Knowledge Proof (ZKP) circuits that are fully compliant to the IEEE 754 standard for floating-point arithmetic are introduced, and the results demonstrate that the floating point circuits amortize efficiently, requiring only 64 constraints per operation for 215 single-precision floating-point multiplications.

Abstract

We introduce Zero-Knowledge Location Privacy (ZKLP), enabling users to prove to third parties that they are within a specified geographical region while not disclosing their exact location. ZKLP supports varying levels of granularity, allowing for customization depending on the use case. To realize ZKLP, we introduce the first set of Zero-Knowledge Proof (ZKP) circuits that are fully compliant to the IEEE 754 standard for floating-point arithmetic. Our results demonstrate that our floating point circuits amortize efficiently, requiring only constraints per multiplication for single-precision floating-point multiplications. We utilize our floating point implementation to realize the ZKLP paradigm. In comparison to a baseline, we find that our optimized implementation has less constraints utilizing single precision floating-point values, and less constraints when utilizing double precision floating-point values. We demonstrate the practicability of ZKLP by building a protocol for privacy preserving peer-to-peer proximity testing - Alice can test if she is close to Bob by receiving a single message, without either party revealing any other information about their location. In such a configuration, Bob can create a proof of (non-)proximity in , whereas Alice can verify her distance to about peers per second
Paper Structure (24 sections, 6 equations, 19 figures, 2 tables)

This paper contains 24 sections, 6 equations, 19 figures, 2 tables.

Figures (19)

  • Figure 1: (i) Icosahedral Polyhedron. A hexagon is highlighted in blue, and a pentagon is highlighted in red. (ii) Hexagon $\mathbf{h} = [v_1, ..., v_{6}]$. $P_u$ and $P_v$ denote the points of verifier $u$ and prover $v$ respectively. $\Delta_{min}$ is the privacy-preserving distance of $u$ to $v$. The red ticks depict our methodology to evaluate ZKLP in Section \ref{['section:evaluation']}.
  • Figure 2: Circuit for initializing floating-point numbers
  • Figure 3: Circuit for rounding floating-point numbers
  • Figure 4: Circuit for floating-point addition
  • Figure 5: Circuit for floating-point multiplication
  • ...and 14 more figures