# Blockchain-Based Distributed Computing Consistency Verification for IoT Mobile Applications
## 6 The Proposed BDCA
### Data Auditing  
In this phase, \(AC\) periodically constructs a random challenge to verify the consistency between \(SC\) and \(TC\) in order to ensure the integrity and reliability of BDCA. It is important to note that all entities involved, including \(SC\), \(TC\), and \(AC\), should utilize a uniform time standard and the time interval for the audit should be fixed. The detailed process is shown as follows:  
Figure 3: The updating operations of the BV-MHT in BDCA. * _AC_ constructs a random challenge: \[\text{{chal}}^{(t_{\text{s1}})}=\{t_{\text{s1}},\lambda_{\varphi}^{(t_{\text{s1}})},\Lambda_{\varphi}^{(t_{\text{s1}})}\}_{\varphi\in[1,c]},\lambda_{\varphi}^{(t_ {\text{s1}})}\in[1,k],\Lambda_{\varphi}^{(t_{\text{s1}})}\in\mathcal{Z}_{N}\] (3) where \(\{\mathcal{F}_{k_{1}^{(t_{\text{s1}})}}(\varphi)=\lambda_{\varphi}^{(t_{ \text{s1}})}\}_{\varphi\in[1,c]}\) represents the index set of the \(c\) challenged block, \(\{\mathcal{A}_{k_{2}^{(t_{\text{s1}})}}(\varphi)=\Lambda_{\varphi}^{(t_{\text {s1}})}\}_{\varphi\in[1,c]}\) denotes the corresponding coefficient set of the challenged block, \(k_{1}^{(t_{\text{s1}})}=H_{2}(t_{\text{s1}}||\text{{{{val}}}}^{(t_{\text{s1}} )})\), \(k_{2}^{(t_{\text{s1}})}=H_{3}(t_{\text{s1}}||\text{{{{non}}}}^{(t_{\text{s1}} )})\), \(H_{2}\) is a hash function that transforms the set \(\{0,1\}^{*}\) to the space of \(\mathcal{F}\), \(H_{3}\) is a hash function that transforms the set \(\{0,1\}^{*}\) to the space of \(\mathcal{A}\)[38], \(\text{{{val}}}^{(t_{\text{s1}})}\) is the number of blocks in \(TC\) and \(\text{{{non}}}^{(t_{\text{s1}})}\) is the random value closest to the nearest the timestamp \(t_{\text{s1}}\). Due to the unpredictability and non-repudiation of \(\text{{{val}}}^{(t_{\text{s1}})}\) and \(\text{{{non}}}^{(t_{\text{s1}})}\), the challenge \(\text{{{chal}}}^{(t_{\text{s1}})}\) which is undeniable, can be constructed by _AC_. * _AC_ sends the challenge \(\text{{{chal}}}^{(t_{\text{s1}})}\) to _SC_ and _TC_. * Upon receiving the challenge \(\text{{{chal}}}\) from _AC_, _TC_ selects a secret random value \(r^{(t_{\text{s1}})}\in\mathcal{Z}_{N}\) and generates a storage proof: \[\text{{{proof}}}_{TC}=\{\zeta^{(t_{\text{s1}})},\mu^{(t_{\text{s1}})},g^{(t_{ \text{s1}})},u^{(t_{\text{s1}})}\},\] where \(\zeta^{(t_{\text{s1}})}=\prod_{\varphi\in[1,c]}\zeta_{\lambda_{\varphi}^{(t_ {\text{s1}})}}^{\lambda_{\varphi}^{(t_{\text{s1}})}}\) (\(\text{{{mod}}}N\)), \(\mu^{(t_{\text{s1}})}=r^{(t_{\text{s1}})}+\sum_{\varphi\in[1,c]}\Lambda_{ \varphi}^{(t_{\text{s1}})}\cdot m_{\lambda_{\varphi}^{(t_{\text{s1}})}}\), \(g^{(t_{\text{s1}})}=g^{r^{(t_{\text{s1}})}}\), \(u^{(t_{\text{s1}})}=g_{u}\sum_{\varphi\in[1,c]}\Lambda_{\varphi}^{(t_{\text{s1 }})}\cdot m_{\lambda_{\varphi}}^{(t_{\text{s1}})}\text{{{mod}}}N\), and \(g_{u}=g^{u}\). * _TC_ sends the proof \(\text{{{proof}}}_{TC}\) and its signature \(pk_{D_{OT}}\) used to provide non-repudiation to _AC_ for consistency verification. * _SC_ generates an audit proof and sends the proof \(\text{{{proof}}}_{SC}\) with its signature \(pk_{DOS}\) to _AC_ for consistency verification. \[\text{{{proof}}}_{SC}=\{AVF_{c\times t},h_{\text{{{root}}}}^{(t_{\text{s1}})}, \{h_{\lambda_{\varphi}}^{(t_{\text{s1}})}\}_{\varphi\in[1,c]}\}\]
* Upon receiving the proof from _SC_ and _TC_. _AC_ calculates the verification information \(\Omega^{(t_{\text{s1}})}\) based on the \(\text{{{proof}}}_{SC}\): \[\Omega^{(t_{\text{s1}})}=\prod_{\varphi\in[1,c]}g^{\Lambda_{\varphi}^{(t_{ \text{s1}})},\lambda_{\varphi}^{(t_{\text{s1}})}}\text{{{mod}}}N.\]
* AC checks the signature of \(pk_{DOS}\) and \(pk_{D_{OT}}\), then verifies the correctness of \(\text{{{proof}}}_{TC}\) with Equation (4).