# Behavioural Verification: Preventing Report Fraud in Decentralized Advert Distribution Systems
## 5 Detailed System Analysis
### Behavioural Verification
#### 5.2.2 Time and Location Checkpoint  
The use of _RoCs_ and _RoAs_ enables the identification of honest users in two ways: First, they are indicators of a user who took the time to perform a specific action; second, the _C-Token_ and _A-Token_ (which are periodically updated) can be used to determine the rate at which the Ad-Reports were created. As not all users engage with adverts regularly enough for this method to be effective on its own, the same principle can be extended by periodically incorporating into the _ARC_ some form of Time-Token (_T-Token_) which would signify the time that a particular block was created. One limitation that needs to be considered however, is that this _T-Token_ should not be obtained through the Internet, as this would expose the user's IP address and it would also be ineffective since a dishonest user could commit fraud by creating multiple _ARCs_ in parallel over a longer period of time. To overcome this limitation, the _T-Token_ is distributed directly from Ad-Dealers in the same way as adverts. The correctness of the _T-Token_ is ensured through the synchronization of Ad-Dealers which can easily be achieved with the help of the Broker. This enables the verification of the time that a block of the _ARC_ was created but also operates as a location tag. Location tags are data that can be associated with a point in space and time and have appeared in the literature before, in the context of private (cryptographic) proximity testing in [19]. The location tag provides additional proof of the user's honesty as it verifies the user's social behaviour in terms of appearing within the proximity of public locations, where Ad-Dealers are broadcasting, such as shopping malls, cafes and WiFi hotspots. To further comprehend this notion, consider the following example of attempted forgery. If the _T-Token_ were accessible online, a dishonest user \(\widehat{u}\) could periodically download it and use it to easily verify set \(\widehat{S}=\{\widehat{ARC_{1}},\widehat{ARC_{2}},...,\widehat{ARC_{l}}\}\) of fictitious _ARCs_ over a longer period of time. However, when the _T-Token_ is distributed by the Ad-Dealers, it is more difficult for \(\widehat{u}\) to obtain it since he or she needs to physically travel to the location of the Ad-Dealer and request multiple copies for each of the elements of \(\widehat{S}\). Furthermore, so as not to raise suspicions, the _T-Tokens_ would also need to be requested at a slow rate and preferably from different Ad-Dealers which adds a supplementary layer of difficulty for the adversary. The _T-Token_ is obtained and embedded into a user's _ARC_ as follows. When entering the vicinity of an Ad-Dealer, the user sends the hash digest \(h(n-1)\) of the last block in the _ARC_ and a user-generated encryption key \(U_{EK}\), both encrypted with the Ad-Dealer's public key \(D_{PuK}\). The Ad-Dealer decrypts the message with his private key \(D_{PrK}\) and composes a Checkpoint Block (\(CB\)). As illustrated in Figure 7, the \(CB\) contains the identity \(B\) who is the Ad-Dealer that performed the check as well as the received hash \(h(n-1)\) and date which are signed with a private key \(KB\) that belongs to him and is only used for this application. The date serves as the _T-Token_ while the signature is proof of the user's location. Before being sent back to the user, the \(CB\) is first encrypted with the Broker's public key \(B_{PuK}\) and then encrypted again with the user's \(U_{EK}\) as shown in Equation (1):  
\[E_{U_{EK}}[E_{B_{PuK}}[CB]] \tag{1}\]  
When the cryptogram is received, the user decrypts it with the corresponding \(U_{DK}\) and obtains the \(E_{B_{PuK}}[CB]\) which is given a sequence number \(N=n\) and is inserted into the user's \(ARC\) as shown in Figure 7 (All blocks of the \(ARC\) are encrypted with the Broker's public key \(B_{PuK}\) as to ensure privacy against Ad-Dealers and Commissioners. The encryption on the \(CB\) could had been performed by the  
Figure 6: Behavioural verification by advert association.