For the sake of simplicity, we use a simpler key generation and triple protocol as ideal functionalities, to isolate the analysis of our presignature and signature protocols.

Presigning

Definition (Presignatures):

The functionalities we use here are perfect, in essence. The idea behind the presignature functionality is relatively simple. One triple is used to help multiply and , and the other contains itself, which we use to help invert for the signature formula.

For convenience, we make it so that the presignature gives us and (secret shared).

Another convention is that the same key is used for an arbitrary number of signatures, hence instances. We use as index to denote this instances.

Definition (Ideal Presignatures):

The ideal functionality basically spits out presignatures at will, all under the same key. We also get access to and , in addition to . is actually something you learn from a signature anyhow, once it’s completed.

Lemma: For a negligible , and up to malicious corruptions, we have:

Proof:

First, we note that , which modifies to consolidate message sending:

A sketch of the simulator here would be to delay sending messages from malicious to honest parties until all three bundles have been sent, and to detect failures early to make all aborts look the same.

From , we can jump to directly.

The idea behind the simulator is that you generate random values for the messages you’re going to receive, and then use those to reverse engineer what the large values like should be.

Signing

Signatures are pretty straightforward once you have presignatures.

Definition (Signing):

We assume that there’s a separate functionality which provides consensus on the message to sign in each instance.

Definition (Ideal Signing):

The ideal functionality unfortunately has to reflect the round timing of the protocol itself.

Lemma:

For a negligible , and up to malicious corruptions, we have:

Proof:

First, we can replace with .

From there, we can use a similar simulator as last time:

The strategy is the same as other simulators in this section, where we use the fact that only the sum has to verify correctly, in order to give junk values up until the last moment.

The security of using presignatures

Here, we’ve limited ourselves to showing that our protocol implements “ECDSA with presignatures”, as far as the security of “ECDSA with presignatures” as a threshold signature scheme, see Groth & Shoup 2021.