From: A PLS blockchain for IoT applications: protocols and architecture
Block | Transmit | Verification | BC Action |
---|---|---|---|
i0 | P1=H(N1) | Out of Band (Enrolment) | |
i1 | \(\phantom {\dot {i}\!}S_{1}=\mathbf {E}_{N_{1}} (H(M_{1})\oplus H(N_{2}))\) | ||
i2 | L1||V1=H(N2)⊕N1 || H(H(N2)||N1) | ||
... | ... | ... | ... |
in | Pk=H(Nk) | ... | post Pk |
in+1 | \(\phantom {\dot {i}\!}S_{k}=\mathbf {E}_{N_{k}} (H(M_{k})\oplus H(N_{k+1}))\) | ||
in+2 | Lk||Vk=H(Nk+1)⊕Nk || H(H(Nk+1)||Nk) | ||
in+3 | Pk+1=H(Nk+1) | Fetch latest P=Pk from block B=in | |
Set failed=true | |||
for LV: B<#(LV)<in+3 | |||
if H(L⊕Pk+1)≠P, continue | |||
set N=L⊕Pk+1 | |||
if H(Pk+1||N)=V | |||
failed=false; break | |||
if failed, exit | ignore Pk+1 | ||
for L′V′: B<#(L′V′)<#(LV) | |||
if V′=H(L′⊕N||N), exit | ignore Pk+1 | ||
for all S: B<#(S)<#(LV) | |||
determine HM=DN S⊕Pk+1 | |||
send to CAS: (k,UID,HM,α(LV),α(S)) | post Pk+1 | ||
exit |