Threshold ECDSA¶
The ECDSA directory contains the code used for the benchmarks by Dalskov
et al. *-ecdsa-party.cpp
contains the high-level programs while the two phases are implemented
in preprocessing.hpp and sign.hpp, respectively.
Compilation¶
Compile the binaries:
make -j8 ecdsaOr compile the static binaries:
make -j8 ecdsa-static
Running¶
The following binaries are available, of which the first few have been used for the paper:
Protocol |
Binary |
|---|---|
MASCOT |
|
Semi-honest OT |
|
Malicious Shamir |
|
Semi-honest Shamir |
|
Malicious replicated |
|
Semi-honest replicated |
|
— |
— |
ATLAS |
|
SPDZ-wise replicated |
|
Rep4 |
|
All binaries offer the same interface. With MASCOT for example, run the following:
./mascot-ecdsa-party.x -p 0 [-N <number of parties>] [-h <host of party 0>] [-D] [<number of prep tuples>]
./mascot-ecdsa-party.x -p 1 [-N <number of parties>] [-h <host of party 0>] [-D] [<number of prep tuples>]
...
-D activates delayed multiplication, deferring usage of the secret
key until signing.
The number of parties defaults to 2 for OT-based protocols and to 3 for honest-majority protocols.
In addition, there is fake-spdz-ecsda-party.x, which runs only the
online phase of SPDZ. You will need to run Fake-ECDSA.x beforehands
and then distribute Player-Data/ECSDA to all parties.