From: A PLS blockchain for IoT applications: protocols and architecture
Block | Transmit | Verification | BC Action |
---|---|---|---|
i_{0} | P_{1}=H(N_{1}) | Out of Band (Enrolment) | |
i_{1} | \(\phantom {\dot {i}\!}S_{1}=\mathbf {E}_{N_{1}} (H(M_{1})\oplus H(N_{2}))\) | ||
i_{2} | L_{1}||V_{1}=H(N_{2})⊕N_{1} || H(H(N_{2})||N_{1}) | ||
... | ... | ... | ... |
i_{n} | P_{k}=H(N_{k}) | ... | post P_{k} |
i_{n+1} | \(\phantom {\dot {i}\!}S_{k}=\mathbf {E}_{N_{k}} (H(M_{k})\oplus H(N_{k+1}))\) | ||
i_{n+2} | L_{k}||V_{k}=H(N_{k+1})⊕N_{k} || H(H(N_{k+1})||N_{k}) | ||
i_{n+3} | P_{k+1}=H(N_{k+1}) | Fetch latest P=P_{k} from block B=i_{n} | |
Set failed=true | |||
for LV: B<#(LV)<i_{n+3} | |||
if H(L⊕P_{k+1})≠P, continue | |||
set N=L⊕P_{k+1} | |||
if H(P_{k+1}||N)=V | |||
failed=false; break | |||
if failed, exit | ignore P_{k+1} | ||
for L^{′}V^{′}: B<#(L^{′}V^{′})<#(LV) | |||
if V^{′}=H(L^{′}⊕N||N), exit | ignore P_{k+1} | ||
for all S: B<#(S)<#(LV) | |||
determine H_{M}=D_{N} S⊕P_{k+1} | |||
send to CAS: (k,UID,H_{M},α(LV),α(S)) | post P_{k+1} | ||
exit |