multi-party-ecdsa icon indicating copy to clipboard operation
multi-party-ecdsa copied to clipboard

Make the {2,2} protocol state machine

Open omershlo opened this issue 6 years ago • 5 comments

First Step take the hash of the public key to be a token. save to local storage (cache):

  1. id for token
  2. next for next function for this token

place a test at the beginning of every function for party_one,party_two such that only if :

  1. the token id is registered in the storage
  2. the function that is being called is next

Then execute the function and update next, otherwise abort.

After the last function of the protocol has been called - clean the id from storage

Second Step make a token that will connect between key generation and signing so that the signing parties in case they run Key Generation multiple times will know which private key to use for signing. suggestion: use the local public keys (H(secret_share * G)) to identify keys. This should be saved to permanent storage.

omershlo avatar Jul 17 '18 15:07 omershlo

The storage layer must be abstracted (DAO: https://en.wikipedia.org/wiki/Data_access_object).

gbenattar avatar Jul 17 '18 17:07 gbenattar

In the original issue:

save to local storage (cache)

The storage can't be local because the server will be a fleet of stateless machine. When a request is issued it is distributed via the load balancer.

Options: low latency no SQL ddb such as DynamoDB.

gbenattar avatar Jul 26 '18 06:07 gbenattar

We are having a discussion for using token for state validation.

gbenattar avatar Jul 26 '18 08:07 gbenattar

After our meeting, here is what we agreed on:

  • The state machine API should be the only public APIs to prevent any security risks of using functions directly.
  • Because of the item above, state machine API will be added to this package (and not abstracted it to a different one).
  • We need to investigate in a token validation.

Assigning to @romanz.

gbenattar avatar Jul 26 '18 10:07 gbenattar

can #35 help ?

omershlo avatar Jul 27 '18 10:07 omershlo