Skip to main content

Table 2 SLVP Protocol

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

 
  1. Assume bitwise exclusive-or ⊕ to have a higher priority than concatenation ||. #(x) is the number of the block in which record x is located, and α(x) is the record’s unique ID (address). The sequence of block numbers is in strictly increasing order: i0<i1<i2<...