pool/clientdb
Wilmer Paulino 4021b2919c multi: tweak trader key with shared secret and per-batch key
In this commit, we overhaul the keys used in the multi-sig construction
of an account to prevent script reuse and provide plausible deniability
between account outputs to third parties. This is done by tweaking the
trader's key with two new components:

1. A per-batch key, which is obtained from the auctioneer during account
creation. Every time the account is modified or participates in a
cleared batch within the system, the per-batch key is incremented by the
curve's base point, resulting in a different key used in the account
script.

2. A shared secret derived using Diffie-Hellman between the trader's and
auctioneer's base keys. By using this secret, we provide plausible
deniability to third parties with knowledge of the base keys and
per-batch key.

The resulting tweaked key for the trader is then used as the tweak for
the auctioneer's base key.
2020-01-29 13:23:15 -08:00
..
account.go multi: tweak trader key with shared secret and per-batch key 2020-01-29 13:23:15 -08:00
account_test.go multi: tweak trader key with shared secret and per-batch key 2020-01-29 13:23:15 -08:00
codec.go multi: tweak trader key with shared secret and per-batch key 2020-01-29 13:23:15 -08:00
db.go client+order: store order 2020-01-17 17:41:25 +01:00
log.go multi: add persistent bolt storage 2019-12-11 18:59:58 -08:00
metadata.go multi: add persistent bolt storage 2019-12-11 18:59:58 -08:00
order.go client+order: store order 2020-01-17 17:41:25 +01:00
order_test.go multi: use btcec.PublicKey instead of [33]byte 2020-01-24 13:45:48 -08:00