Optional
applicationsApplications is a map of nodes that wish to form the new committee.
Candidates are expected to generate a random bivariate polynomial, construct a verification matrix, compute its checksum, and submit an application one epoch in advance of the next scheduled handoff. Subsequently, upon the arrival of the handoff epoch, nodes must execute the handoff protocol and confirm the reconstruction of its share.
Optional
checksumThe hash of the verification matrix from the last successfully completed handoff.
Optional
committeeCommittee is a vector of nodes holding a share of the secret in the active handoff.
A client needs to obtain more than a threshold number of key shares from the nodes in this vector to construct the key.
ExtraShares represents the minimum number of shares that can be lost to render the secret unrecoverable.
If t and e represent the threshold and extra shares, respectively, then the minimum size of the committee is t+e+1.
Handoff is the epoch of the last successfully completed handoff.
The zero value indicates that no handoffs have been completed so far. Note that the first handoff is special and is called the dealer phase, in which nodes do not reshare or randomize shares but instead construct the secret and shares.
HandoffInterval is the time interval in epochs between handoffs.
A zero value disables handoffs.
ID is a unique CHURP identifier within the key manager runtime.
Optional
next_NextChecksum is the hash of the verification matrix from the current handoff.
The first candidate to confirm share reconstruction is the source of truth for the checksum. All other candidates need to confirm with the same checksum; otherwise, the applications will be annulled, and the nodes will need to apply for the new committee again.
NextHandoff defines the epoch in which the next handoff will occur.
If an insufficient number of applications is received, the next handoff will be delayed by one epoch.
Policy is a signed SGX access control policy.
RuntimeID is the identifier of the key manager runtime.
SuiteID is the identifier of a cipher suite used for verifiable secret sharing and key derivation.
Threshold represents the degree of the secret-sharing polynomial.
In a (t,n) secret-sharing scheme, where t represents the threshold, any combination of t+1 or more shares can reconstruct the secret, while losing n-t or fewer shares still allows the secret to be recovered.
Status represents the current state of a CHURP instance.