Research Article

A Blockchain-Based Location Privacy-Preserving Scheme in Location-Based Service

Algorithm 3

Construct anonymity set.
Input:
DSetloc (The personal request location set), k (The privacy level), T (The semantic tree), qreal (The historical query probability of the requested location), DSetloc (Historical query probability set), (Query probability threshold), RL (Real Location of request user);
Output:
 Anonymity set, AS;
1: Computing the query probability of each locations and establish DSetloc;
STEP1: Choose the location that satisfies the constraints of query probability to built ACS
2: Initialize the anonymous candidate set ACS=RL;
3: while Len (ACS)<2k do
4: for Each loc in DSetloc and Each q in DSetque do
5:  Compting the dque (q, qreal) by formula (6)
6:  if dque (q, qreal) < ∂then
7:   Put loc into ACS;
8:  end if
9: end for
10: end while
STEP2: Choose the location that satisfies the constraints of minimum semantic difference and semantic diversity to built AS
11: Initialize the anonymous set AS=RL;
12: According to personal semantic tree T and formula (3), semantic distance matrix SDM is established;
13: while Len (AS)<kdo
14: if Len (ACS)==0 then
15:  Anonymity Failure;
16: else
17:  Computing the SDE(loc);
18:  for Each loc in ACS do
19:   Computing the SDE+(loc) and dsde (loc) by formulate (5);
20:   if SDM (index (loc), index (RL))>6 and dsde (loc) > qthen
21:    Put loc into AS;
22:   end if
23:  end for
24: end if
 STEP3: Replace some locations to improve security
25: Replace some anonymous locations in AS with similar semantic feature from other users;
26: end while
27: return AS;