Skip to content

3.3 ZF FROST in a Nutshell

The previous chapters demonstrated a few different ways to create shares and to create signatures. Following are some diagrams and discussions of how they work.

Share Creation

Creating signing shares is the first step in FROST.

TDG Creation

TDG share creation requires a centralized, trusted authority, who unilaterally splits a secret and shards it out to participants.

See §2.2 for more.

DKG by Hand

DKG is in contrast trustless, but also more complex, as most trustless protocols are. When managing DKG by hand, each member has to communicate with every other member. (They do one broadcast each for round 1, then send an individual message to each other paricipant for round 2. This is the heart of how FROST share creation works.)

See §3.1 for more.

DKG with Server

A server can take care of that communication, and greatly simplify things, and it doesn't have to be trusted, offering the best-of-both-worlds.

See §3.2 for more info.

Signing

Once shares have been created, members of a FROST group can sign whenever they want.

TDG Signing

ZF FROST manages TDG signing by running a coordinator server than the signers all connect with using their participant client.

See §2.3 for more.

DKG Signing with Hand-Created Shares

The exact same process can be used for signing with hand-created shares under ZZF FROST.

DKG Signing with Server-Created Shares

The signing process for shares created with ZF FROST is a stacked affair. The same frostd server that managed communication during share creation now runs a signing coordinator.

See §3.2 for more info.

Summary: ZF FROST in a Nutshell

ZF FROST offers a number of different ways to create shares and sign with them. This section lays them out graphically, in part for clarity, and in part to suggest models that other developers might use.

What's Next

Though it's not available in the ZF FROST tools, we want to overview one other advanced FROST capability in §3.4: Refreshing FROST Shares