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 ecdsa
Or 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.