Assume Bob knows the filename of some encrypted data, filename.
// retrieve ciphertext loc, relation, and intent
cidˉ=IntentStore.Get(filename){(R,t),cid}=Storage.Get(cidˉ)
// this needs work...
S=DeriveStatement(R)
Generate a witness w s.t. (w,s)∈R
// collect partial decs
{pd1,...,pdk} for some k≥tbi←PartVerify(pdi)∀i∈[k]
if any bi==0 then reject the share.
// fetch ct
ct=Storage.Get(cid)
// TODO: we should probably just store this somewhere
// it could even be embedded in the ciphertext itself
// we should keep contract storage as small as possible
(ek,ak)←Preprocess(CRS,U,{hinti,pki}i∈[U])m=DecAggr(CRS,ak,ct,{pd1,...,pdk})