A trusted setup generates public and secret parameters for the protocol:
$pp = (pp_{LVC}, pp_{HF})$
$pk_1, ..., pk_𝑛$
$sk_1, ..., sk_𝑛$
To commit a data block B
:
B
as an L × 𝑘
matrix 𝑼
.$(ℎ_1, ..., ℎ_𝑘)$
for each column of 𝑼
using VC
.$CRHF_𝑠 (ℎ_1∥...∥ℎ_𝑘)$
. (CRHF: Collision Resistant Hash Function)To disperse a data block B
:
𝑼
and commitments $(ℎ_1, ..., ℎ_𝑘)$
as in the Commit step.𝑼
row-wise using the MDS code to obtain coded matrix 𝑪
.$(ℎ_1, ..., ℎ_𝑘)$
and the respective coded chunk $𝒄_𝑖$
to each storage node 𝑖
.$(ℎ_1, ..., ℎ_𝑘)$
, $𝒄_𝑖$
, and the commitment $𝐶$
.$𝜎_𝑖 ≜ Sig.Sign(sk_𝑖, (ack, 𝐶))$
to the client. (ack: acknowledges receipt of chunk)𝑃
.