Gustavo Frederico
1e02560e7e
Merging the branch that has CGGMP21 Oct changes onto the master branch. Resolving conflicts (listed below). In general, file versions of CGGMP21 Oct were chosen and security patches or small recent improvements from the master branch were copied over.
...
Merge branch 'master' into feature/cggmp21oct-tss-lib-tmp-merge
# Conflicts:
# .github/workflows/test.yml
# Makefile
# README.md
# crypto/ckd/child_key_derivation.go
# crypto/ecpoint.go
# crypto/mta/proofs.go
# crypto/mta/range_proof.go
# crypto/mta/share_protocol.go
# crypto/mta/share_protocol_test.go
# crypto/paillier/paillier.go
# crypto/vss/feldman_vss.go
# ecdsa/keygen/ecdsa-keygen.pb.go
# ecdsa/keygen/local_party.go
# ecdsa/keygen/local_party_test.go
# ecdsa/keygen/messages.go
# ecdsa/keygen/prepare.go
# ecdsa/keygen/round_1.go
# ecdsa/keygen/round_2.go
# ecdsa/keygen/round_3.go
# ecdsa/keygen/round_4.go
# ecdsa/keygen/save_data.go
# ecdsa/resharing/ecdsa-resharing.pb.go
# ecdsa/resharing/local_party_test.go
# ecdsa/resharing/messages.go
# ecdsa/resharing/round_1_old_step_1.go
# ecdsa/resharing/round_4_new_step_2.go
# ecdsa/signing/ecdsa-signing.pb.go
# ecdsa/signing/finalize.go
# ecdsa/signing/key_derivation_util.go
# ecdsa/signing/local_party.go
# ecdsa/signing/local_party_test.go
# ecdsa/signing/messages.go
# ecdsa/signing/prepare.go
# ecdsa/signing/round_1.go
# ecdsa/signing/round_2.go
# ecdsa/signing/round_3.go
# ecdsa/signing/round_4.go
# ecdsa/signing/round_5.go
# ecdsa/signing/round_6.go
# ecdsa/signing/round_7.go
# ecdsa/signing/rounds.go
# eddsa/keygen/eddsa-keygen.pb.go
# eddsa/keygen/local_party.go
# eddsa/keygen/local_party_test.go
# eddsa/keygen/messages.go
# eddsa/keygen/round_1.go
# eddsa/keygen/round_2.go
# eddsa/keygen/round_3.go
# eddsa/keygen/save_data.go
# eddsa/keygen/test_utils.go
# eddsa/resharing/eddsa-resharing.pb.go
# eddsa/resharing/local_party.go
# eddsa/resharing/local_party_test.go
# eddsa/resharing/messages.go
# eddsa/resharing/round_1_old_step_1.go
# eddsa/resharing/round_4_new_step_2.go
# eddsa/signing/eddsa-signing.pb.go
# eddsa/signing/finalize.go
# eddsa/signing/local_party.go
# eddsa/signing/local_party_test.go
# eddsa/signing/messages.go
# eddsa/signing/prepare.go
# eddsa/signing/round_1.go
# eddsa/signing/round_2.go
# eddsa/signing/round_3.go
# eddsa/signing/rounds.go
# eddsa/signing/utils.go
# go.mod
# go.sum
# protob/ecdsa-keygen.proto
# protob/ecdsa-resharing.proto
# protob/ecdsa-signing.proto
# protob/eddsa-keygen.proto
# protob/eddsa-resharing.proto
# protob/eddsa-signing.proto
# protob/message.proto
# protob/signature.proto
# test/_ecdsa_fixtures/keygen_data_0.json
# test/_ecdsa_fixtures/keygen_data_1.json
# test/_ecdsa_fixtures/keygen_data_2.json
# test/_ecdsa_fixtures/keygen_data_3.json
# test/_ecdsa_fixtures/keygen_data_4.json
# test/_eddsa_fixtures/keygen_data_0.json
# test/_eddsa_fixtures/keygen_data_1.json
# test/_eddsa_fixtures/keygen_data_2.json
# test/_eddsa_fixtures/keygen_data_3.json
# test/_eddsa_fixtures/keygen_data_4.json
# test/config.go
# tss/message.pb.go
# tss/params.go
# tss/party.go
# tss/wire.go
2021-12-17 16:03:49 -05:00
Gustavo Frederico
f81d9700a2
Adding identification of abort for ECDSA signing.
2021-11-22 19:08:19 -05:00
Gustavo Frederico
36573fc6ee
Initial updates of the October version of the CGGMP21 paper. Work in progress.
2021-11-15 21:38:27 -05:00
Gustavo Frederico
ac1d2cc9a0
Identification of aborts with unit test.
2021-10-26 23:39:42 -04:00
Gustavo Frederico
4397af0043
keygen: adding a Schnorr proof in round 1. Adding missing ridi and rid. Adding Xi and Ai to the hashes and messages. Adding Schnorr zkp in round 3. Adding proof verifications in round 4.
2021-10-18 18:39:19 -04:00
ycen
ac37ece47f
ecdsa-keygen parallization and code clean
2021-09-30 18:00:10 +08:00
ycen
06fd3376c8
Fix ecdsa/keygen E2E test not run
2021-09-27 15:04:43 +08:00
ycen
356a99831b
Fix broken eddsa caused by change of zkp/sch
2021-09-23 14:17:39 +08:00
ycen
1ff2f61744
Update ecdsa-keygen protol
2021-09-23 13:49:11 +08:00
ycen
07d80fc111
Rename round name to presign/sign
2021-09-09 20:09:39 +08:00
ycen
18a04094ef
Parallized processing proof generation and verify
2021-09-09 16:06:54 +08:00
Patrick Cen
97d9fe472b
CGGMP protocol update.
...
One round signing and thre round presign protocol according to the CGGMP
paper.
2021-09-09 00:53:33 +08:00
Fitz
856d77b7fb
Curve as parameter ( #137 )
...
* move curve into tss.Parameters
* regen proto with full package name
* pass curve through parameter
* add curve name in ecpoint json serialization
2021-07-06 11:51:20 +08:00
creamwhip
9ed01e22ed
remove unused VoidMessage and update protoc to v3.17.3 and protoc-gen-go to v1.27.1
2021-06-29 18:44:54 +08:00
Gustavo Frederico
d92727e29c
Adding a void message to support peer visibility / sync at the client. This void message does not affect the functionality of any protocol.
2021-06-29 18:44:54 +08:00
Gustavo Frederico
f3dab69047
Matching binance-chain tss-lib commit c318b67738db63fc6d2b3455dfc7a4da34421eda.
...
Removing the witness in signing as the verifier only trusts its own Ntilde,h1,h2.
2021-05-06 20:40:12 -04:00
Gustavo Frederico
f0e216cf60
Resharing identifiable abort - adding certain proofs and verifications that are also in keygen, for more security
2021-02-24 19:04:55 -05:00
Gustavo Frederico
4f6b24d703
Resharing identifiable abort - adding more unit tests, some refactoring to share code with keygen
2021-02-24 12:59:24 -05:00
Gustavo Frederico
508bebc60f
Identifiable abort - initial changes - work in progress
2021-02-18 21:53:09 -05:00
Gustavo Frederico
3bc0bdfee3
Identifiable aborts in resharing - initial changes - work in progress
2021-02-12 07:29:56 -05:00
Gustavo Frederico
09bd254909
Adding identification of aborts per section 4.1 of the paper. A pair of ECDSA keys is created in round 1 for player authentication. It signs the Paillier public key first. It then signs the shares in round 2. In case the Feldman check fails in round 3, evidence is broadcasted. Round 4 is now split into normal logic and handling an abort. When handling the abort, an independent player (not the plaintiff, not the accused one) will re-verify the signature of the share and re-check the Feldman shares. The outcome of the abort identification may indeed blame the accused party if the Feldman check fails, or else it may blame the plaintiff for trying to frame the accused party.
2020-12-11 12:52:24 -05:00
cong
9d8889d446
Internal mobile wrapper eddsa ( #124 )
...
* [R4R] Add eddsa (#88 )
* [R4R] Add eddsa keygen and signing (#3 )
* add eddsa signing and keygen
* contruct extended element from x,y
* update dep
* fix test
* fix bug
* delete unused code
* add resharing
* fix comments
* refactor RejectionSampl;e
* rename variable (#4 )
* delete printf
* update dependency
* resolve conflict
* Update readme about EdDSA (#91 )
* update readme about eddsa
* minor fix
* S in eddsa signature is not encoded correctly
* fix msg in eddsa hasn't to be a int.
* fix unit test
* register DGRound4Message for eddsa resharing (#99 )
Co-authored-by: yutianwu <wzxingbupt@gmail.com >
Co-authored-by: dylenfu <dylenfu@126.com >
2020-12-08 16:50:06 +08:00
Gustavo Frederico
e1c437d493
keygen ECDSA: changes to support the identification of aborts. Work in progress.
2020-11-30 07:17:14 -05:00
Gustavo Frederico
fdfaeb0e80
keygen: adding two proofs of section 3.1 Phase 3: that N_i is square-free and that the player knows x_i using Schnorr's protocol.
2020-11-25 08:57:56 -05:00
Luke Plaster
b06239d7fa
ecdsa/signing: rename UIJ to MuIJ in protobuf structs
2020-11-15 16:25:25 +08:00
Luke Plaster
eafa3ee947
ecdsa/signing: type 7 abort done
2020-11-15 16:25:25 +08:00
Luke Plaster
6ab828b4aa
ecdsa/signing: type 7 abort almost done
2020-11-15 16:24:46 +08:00
Luke Plaster
431b61fbc2
ecdsa/signing: include signature for C2 ciphertext in r2 msg for type 7 aborts
2020-11-15 16:24:46 +08:00
Luke Plaster
b18b0dc602
protob: minor edit to comment for ECPoint
2020-11-15 16:24:46 +08:00
Luke Plaster
44002c7423
ecdsa/signing: remove unused k_i_randomness in round 6 abort msg
2020-11-15 16:24:46 +08:00
Luke Plaster
6dab731e4d
ecdsa, eddsa: pbufs finishing touches, green tests
2020-11-15 16:24:46 +08:00
Luke Plaster
641739359b
ECPoint message migration in protobufs
2020-11-15 16:24:46 +08:00
Luke Plaster
7935d1ca99
ecdsa/signing: implement 'type 7' identified abort (blame), use google.golang.org/protobuf v1.24.0
2020-11-15 16:24:46 +08:00
Luke Plaster
8a04ef0a60
ecdsa/signing: implement 'type 5' identified abort (blame)
2020-11-15 16:24:46 +08:00
Luke Plaster
5ecf8d3e67
protob/eddsa-resharing: minor fix for eddsa protobuf name when regenerated
2020-11-15 16:24:46 +08:00
Luke Plaster
b3d748f4a0
ecdsa/signing: simplify, use rSigmaI in FinalizeGetOurSigShare
2020-11-15 16:24:46 +08:00
Luke Plaster
b6b577da8d
eddsa/signing: add identifable abort for phase 7
2020-11-15 16:24:46 +08:00
Luke Plaster
ded99ead3d
ecdsa/signing: add the one-round signing API
2020-11-15 16:24:10 +08:00
Luke Plaster
0853e024a7
ecdsa/signing: populate and save the one-round state struct
2020-11-15 16:24:10 +08:00
Luke Plaster
b8a5c29282
ecdsa/signing: implement round 5 ZKP of consistency between Rdash_i and E_i(k_i)
...
ported from the kzen impl: https://git.io/Jf69a
2020-11-15 16:23:52 +08:00
Luke Plaster
31714eb366
ecdsa/signing: implement the remaining rounds for gg20
2020-11-15 16:23:52 +08:00
Luke Plaster
754085f87b
ecdsa/signing: implement gg20 round 3
2020-11-15 16:23:52 +08:00
Luke Plaster
74cf79fdef
protob: update message defs for gg20
2020-11-15 16:21:48 +08:00
Luke Plaster
faa5e228dd
ecdsa/signing: rename 'theta' to 'delta' for correctness
2020-11-15 16:21:34 +08:00
Luke Plaster
da6040f736
protob: fix go package of signature protobuf source
2020-03-30 17:50:25 +08:00
yutianwu
abd66f8884
[R4R] Add eddsa ( #88 )
...
* [R4R] Add eddsa keygen and signing (#3 )
* add eddsa signing and keygen
* contruct extended element from x,y
* update dep
* fix test
* fix bug
* delete unused code
* add resharing
* fix comments
* refactor RejectionSampl;e
* rename variable (#4 )
* delete printf
* update dependency
* resolve conflict
2020-03-06 11:34:06 +08:00
Luke Plaster
769ccf744f
[security] ecdsa: add proof of discrete log to prove that the two elements h_1, h_2 generate the same group mod N
2020-03-05 12:05:16 +08:00
Luke Plaster
1e5e2dd5ed
[security] resharing: wait for final acks from the new committee before ending ( #75 )
...
This is the fix for a vulnerability reported by Omer Shlomovits of KZen Networks (ZenGo).
It adds a final ack round to the re-sharing protocol where the new committee sends acks to members of both the old and new committees before they save any data to disk.
Other Changes:
* readme: mention the UpdateFromBytes bool arg changes, misc edits
* resharing: edit a comment in round 4
* remove the confusing to committee bools
* resharing: remove a redundant line in round 5
2019-11-12 15:24:18 +08:00
Luke Plaster
570cd35f9e
protob: add copyright headers
2019-10-24 16:52:27 +08:00
Luke Plaster
641f146b15
add SignatureData protobuf message to replace LocalSignData
...
and use it in the mobile interface
2019-10-24 16:48:08 +08:00