## 3 SPS: Grid-Based Single Phantom Node Source Location Privacy Protection Scheme
### The Initialization Phase  
The specific process of the network initialization phase is as follows:  
(1) As shown in Figure 2, the SN evenly divides the network into \(L^{*}L\) grids with the unit length of \(2r\) (\(L\) is an even number). The SN is fixed at the center of the network, and its grid number is  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Notations** & **Description** \\ \hline \(U\) & Node \(u\) \\ \(\text{Hop}_{u,\text{sink}}\) & Minimum hop count between node \(u\) and sink node \\ \(L^{*}L\) & Network size \\ \(R\) & Node communication radius \\ \(i,j,m,n\) & Grid number index variable \\ \(\text{G}_{i\times j}\) & Grid number of the \(i\)-th row and the \(j\)-th column \\ \hline \hline \end{tabular}
\end{table}
Table 1: Notations.  
represented as \(\mathrm{G}_{\frac{1}{2}\times\frac{1}{2}}\). The grid number of other grids is represented by the center point coordinates of the grid;  
(2) The SN broadcasts a message \(\mathrm{Msg\_b}\) with the same power as the sensor nodes.  
Sink node's broadcast:  
\[\mathrm{Msg\_b}=\mathrm{ID}_{\mathrm{sink}}\|\mathrm{IFop}_{\mathrm{sink}, \mathrm{sink}}\|\mathrm{G}_{\frac{1}{2}\times\frac{1}{2}}. \tag{1}\]  
Message \(\mathrm{Msg\_b}\) includes three parameters. The first one is the ID of the sending node, here is \(\mathrm{ID}_{\mathrm{sink}}\). The second one is the hop count of the sending node from the SN, here is \(\mathrm{Hop}_{\mathrm{sink},\mathrm{sink}}=0\). The third one is the grid number of the sending node, here is \(\mathrm{G}_{\frac{1}{2}\times\frac{1}{2}}\);  
(3) Suppose that node \(u\) is in grid \(\mathrm{G}_{i\times j}\). When node \(u\) receives the broadcast message \(\mathrm{Msg\_b}\), it updates the minimum hop count of itself from the SN \(\mathrm{Hop}_{u,\mathrm{sink}}\), and then continues to broadcast the message \(\mathrm{Msg\_b}\) to all of its neighbor nodes.  
Node \(u\)'s broadcast:  
\[\mathrm{Msg\_b}=\mathrm{ID}_{u}\|\mathrm{Hop}_{u,\mathrm{sink}}\|\mathrm{G}_ {i\times j}; \tag{2}\]  
(4) Suppose that the neighbor node \(v\) of node \(u\) is in the grid \(\mathrm{G}_{m\times n}\). When node \(v\) receives the broadcast message sent by node \(u\), it adds the node ID of node \(u\), the hop count of node \(u\) from the SN \(\mathrm{Hop}_{u,\mathrm{sink}}\) and the grid number \(\mathrm{G}_{i\times j}\) of node \(u\) to its neighbor table, as shown in Table 2. Specifically, node \(v\) updates the minimum hop count of itself from the SN \(\mathrm{Hop}_{v,\mathrm{sink}}\) and then continues to broadcast messages \(\mathrm{Msg\_b}\) to all of its neighbors.  
Node \(v\)'s broadcast:  
\[\mathrm{Msg\_b}=\mathrm{ID}_{v}\|\mathrm{Hop}_{v,\mathrm{sink}}\|\mathrm{G}_ {m\times n}. \tag{3}\]  
Similarly, node \(u\) can also receive the broadcast message of node \(v\), and will add the node ID of node \(v\), the hop count of node \(v\) from the SN \(\mathrm{Hop}_{v,\mathrm{sink}}\), and the grid number of node \(v\) to its own neighbor table;  
(5) When all nodes receive the broadcast packet, the initialization phase ends. At this time, each node establishes its own neighbor table according to the received broadcast message. Then each node  
Figure 2: Network grid.  
classifies its neighbor nodes into three categories. Taking node \(u\) as an example, it classifies its neighbor node \(v\) according to \(\text{Hop}_{u,\text{sink}}\) and \(\text{Hop}_{v,\text{sink}}\):  
* Near-hop neighbor node: \(\text{Hop}_{v,\text{sink}}<\text{Hop}_{u,\text{sink}}\);
* Same-hop neighbor node: \(\text{Hop}_{v,\text{sink}}=\text{Hop}_{u,\text{sink}}\);
* Far-hop neighbor node: \(\text{Hop}_{v,\text{sink}}>\text{Hop}_{u,\text{sink}}\).