Indices:
i
: dealer in 0,...,n-1 contrary to paper!l
: index of the first-level of sharing of the secrets[i]
of the dealeri
. Match next holding committee memberj
.j
: verification committee memberk
: resolution committee member
Contrary to the paper, the indices of the committee members start at 0 and not at 1.
At the level of the protocol:
n
: number of parties per committeet
: maximum number of malicious parties
n = 2t+1
However, for VSS / Secret Sharing, t
usually represents the reconstruction threshold, which is degree d
+ 1.
And d = t
from the protocol.
- Dealing (
step1_dealing.go
) performed by each dealer - Verification = Accusation (
step2_verification.go
) performed by each verifier - Resolution = Response (
step3_resolution.go
) performed by each resolution committee member/responder - Refreshing = two parts:
- For all users = disqualification (include
step4_resolution.go
and part ofstep4_refreshing.go
) and refreshing of the commitments - For new holding committee members = refreshing of the shares
- For all users = disqualification (include
Main files:
-
protocol.go
: the actual protocol -
protocol_test.go
: test of the full protocol -
protocol_bench_test.go
: test for benchmarking performances. See below. -
step*.go
: for each round/step of the protocol. Step 4 is split in two parts files.
Pieces of the protocol:
nizk_*.go
: for the internal NIZKverifier_proof.go
: for the proof made by the verifier V_jeps.go
: for things related to the future broadcast/resolution encryption
Other tools:
codecgen.go
: used to have faster encoding/decoding. Generategen-codecgen.go
inputs.go
: structure of the public and private inputsreceive.go
: generategen-receive.go
test_tools*.go
: tools for testing
For large values n/t, simulating the whole protocol is too slow, so we use TestResharingProtocolBenchmarkManualParty0
:
YOSO_BENCH_TEST_T=32 go test -timeout=2h -bench -v -run TestResharingProtocolBenchmarkManualParty0